我有以下数组:
[1,2,3]
[I,II]
[A,B,C]
我想知道有多少种组合是可能的。例如:
[1,I], [1,A], [2,I], [2,A], [3,I], [3,A], ...
数学中有一种叫做笛卡尔积的东西,但我不知道如何实现它。
我有以下数组:
[1,2,3]
[I,II]
[A,B,C]
我想知道有多少种组合是可能的。例如:
[1,I], [1,A], [2,I], [2,A], [3,I], [3,A], ...
数学中有一种叫做笛卡尔积的东西,但我不知道如何实现它。
您可以使用乘法计算数组中元素的可能组合数。
如果您有 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。
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