我有一个 javascript 应用程序,我需要在其中运行数字 0 到 6 的每个可能组合的测试,而不复制组合中的任何数字。
所以:0123456、0123465、0123546、0123564 ...
(但是,例如,0123455,不应该包括在内,因为 5 是重复的)
我已经迭代地完成了它:
function testAllCombinations(){
for(var i = 0; i < 7; i++){
for(var j = 0; j < 7; j++){
if(j == i)
continue;
for(var k = 0; k < 7; k++){
if(k == j || k == i)
continue;
for(var l = 0; l < 7; l++){
if(l == k || l == j || l == i)
continue;
for(var m = 0; m < 7; m++){
if(m == l || m == k || m == j || m == i)
continue;
for(var n = 0; n < 7; n++){
if(n == m || n == l || n == k || n == j || n == i)
continue;
for(var o = 0; o < 7; o++){
if(o == n || o == m || o == l || o == l || o == j || o == i)
continue;
runTest(i, j, k, l, m, n, o);
}
}
}
}
}
}
}
}
它工作正常,但我想递归地做,而且我很难构建算法。
谁能给我一些方向?
提前致谢。