是否有人使用Javascript代码生成重复的所有变体?
重复变化的示例:
(size=3, input=A,B)
AAA, AAB, ABA, BAA, ABB, BAB, BBA, BBB
我需要做的是对0到9之间的数字作为输入和6位长度作为大小(根据我的例子)。
要知道,我使用Java和基于此项目的.NET代码(检查链接)。我需要重复的所有变化都会产生1000000个值。
http://www.codeproject.com/KB/recipes/Combinatorics.aspx
是否可以在Javascript中执行此操作?没问题,如果jQuery可以提供帮助。
提前致谢。
答案 0 :(得分:3)
你从组合学中选择了最简单的案例......
var i, n = 1000000;
for (i = 0; i < n; i++)
console.log(('' + (i + n)).substring(1));
将为您提供6个点中的0-9的所有组合(1000000 === Math.pow(10, 6)
)。
答案 1 :(得分:0)
我刚刚写了它,它可能需要更多的测试和优化,但这应该让你开始:
var input = "ABCD";
var size = 3;
var results = [];
function solve(i, elt) {
if(elt.length == size) {
results.push(elt);
return;
}
for(var j = 0; j < input.length; j++) {
solve(j, elt+input[j]);
}
}
solve(0, "");
console.log(results);