2

我有以下数组:

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

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

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

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

4

2 回答 2

1

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

如果您有 2 个数组array1并且array2可能的组合数为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。

于 2013-01-09T04:39:04.027 回答
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
于 2013-01-09T03:06:46.297 回答