私はjavascriptのMath.random()
について質問があります。Javascriptを: - ランダムな集合から要素を除外する(好奇心)が
私は(ゲームのために私が構築しています)しているランダムに指定されたセットからすべての番号を生成する(すなわち0から1000まで)、私は数値を生成する必要があるたびに、その数値がすでに生成されているかどうかをチェックする必要があります。
解決策は、生成されたセットにランダムな整数が既に存在するかどうかをチェックする簡単なアルゴリズムを考えるのは簡単です。それが見つからなくなるまで番号を生成します。 以下抜粋:
/* ... */
for(var i = 0; i<upperBound; i++){
var randN = Math.floor(Math.random()*upperBound);
while(myRandomNumbers.contains(randN)){
loops++;
randN = Math.floor(Math.random()*upperBound);
}
myRandomNumbers.push(randN);
}
/* ... */
私が知りたいのです:これは、これを達成するための最良の方法ですか?またはランダムな世代の特定のセットを除外するために「良い」数を生成するまでループするのではなく、何らかの方法がありますか?
ありがとうございます!
たぶん、[この回答] (http://stackoverflow.com/questions/3796786/random-number-generator-without-dupes-in-javascript)が役立ちます。または[この1つ](http://stackoverflow.com/questions/2380019/generate-8-unique-random-numbers-between-1-and-100)。 – user113716
@patrick dw:これは私の同じ解決策です、再帰的です; – stecb
はい、私はあまりにも速く読んでいます。 – user113716