如何查找以下数字的总组合?

时间:2013-01-09 02:56:16

标签: javascript

我有以下阵列:

[1,2,3]
[I,II]
[A,B,C]

我想知道有多少组合是可能的。例如:

[1,I], [1,A], [2,I], [2,A], [3,I], [3,A], ...

数学中有一些叫做笛卡尔积的,但我不知道如何实现它。

2 个答案:

答案 0 :(得分:1)

您可以使用乘法计算数组中元素的可能组合数。

如果您有2个数组array1array2,则可能的组合数量为array1.length * array2.length

var array1 = ['1','2', '3'];
var array2 = ['I', 'II'];

var posibleCombinations = (array1.length * array2.length);

上例的结果是6。

使用三个数组,您可以计算每个数组之间的可能组合,然后添加每个数组的总和。

var array1 = ['1','2', '3'];
var array2 = ['I', 'II'];
var array3 = ['A','B','C'];

var posibleCombinations = (array1.length * array2.length) + (array1.length * array3.length) + (array2.length * array3.length);

上例的结果是21。

答案 1 :(得分:0)

var array1 = [1,2,3],
    array2 = ['I','II'],
    array3 = ['A','B','C'];

var count = array1.length + array2.length + array3.length;
    count = count * (count -1);
console.log(count); // 56

公式为:

n = total * (total -1) // -1 assuming that the first can't be equal to the second