我有一個關於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)將有所幫助。或[這一個](http://stackoverflow.com/questions/2380019/generate-8-unique-random-numbers-between-1-and-100)。 – user113716 2011-01-14 15:16:56
@patrick dw:這是我的同樣的解決方案,遞歸;) – stecb 2011-01-14 15:18:35