我有以下阵列:
[1,2,3]
[I,II]
[A,B,C]
我想知道有多少组合是可能的。例如:
[1,I], [1,A], [2,I], [2,A], [3,I], [3,A], ...
数学中有一些叫做笛卡尔积的,但我不知道如何实现它。
答案 0 :(得分: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。
答案 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