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つのスポットで0〜9のすべての組み合わせが得られます(1000000 === Math.pow(10, 6))。

于 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 に答える