0

有没有人有 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 中做到这一点?

提前致谢。

4

2 回答 2

3

你从组合学中选择了最简单的情况......

var i, n = 1000000;
for (i = 0; i < n; i++)
  console.log(('' + (i + n)).substring(1));

将在 6 个点 (1000000 === Math.pow(10, 6)) 中为您提供 0-9 的所有组合。

于 2012-05-17T20:27:12.690 回答
1

我刚刚写了它,它需要更多的测试和优化,但这应该让你开始:

​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);​
于 2012-05-17T20:25:18.733 回答