我正在開發一個項目,需要從給定的範圍內生成兩個隨機數(他們兩個在同一時間,一個接一個),並檢查它們是否彼此相等 - 如果是,則繼續執行其他代碼;如果它們不是 - 再次生成數字。現在我的問題是,如果我們有一個範圍[0; 10],並且第一個隨機生成的數字結果爲5,那麼第二個數字的概率也是5,與其他數字一樣好?具體來說,如果Math.random()被連續調用兩次,是否有任何「防禦」來產生相同的數字?或者「嘗試」不生成相同的號碼?Java Math.random()它有多隨意?
1
A
回答
7
連續兩次在[0,10]範圍內生成相同的數字對任何隨機數生成器都是完全有效的。如果它採取了任何措施來防止它不是隨機的。
在任何調用中,選擇任何單個數字的機會應該是1:11,並且每個選擇應該獨立於先前的選擇,因此一對中第二個數字與第一個數字匹配的機會是11中的1。
至於如何隨機Math.random()
是,它是僞隨機,這意味着它使用算法來生成一系列以「種子」值開始的均勻分佈的數字。它不適用於密碼學,但非常適合模擬和其他非加密用途。
+0
「..每個選擇應該獨立於以前的選擇..」總結它適合我。 – user2864740
+0
謝謝。只是想確定。 – astralmaster
相關問題
- 1. 在Java中隨機種子Math.random
- 2. Java Math.random while while循環中不隨機
- 3. Java「fake」math.random()
- 4. Java Math.random()考慮
- 5. Java Math.random期間
- 6. Java中的Math.random()
- 7. 的Math.random在Java
- 8. Math.Random()挑選隨機數組
- 9. Math.random()的隨機性如何?
- 10. static Math.random更改java
- 11. Math.random()比它應該高於?
- 12. 如何使用java中的math.random()從1到6的隨機int?
- 13. java中的Math.random()方法是否真的是隨機的?
- 14. 使用math.random在java中生成一定數量的隨機數
- 15. 我想用的Math.random(返回有意義的數字)
- 16. monads的「ap」實現有多隨意?
- 17. Math.random vs其他隨機算法
- 18. 問題與Java中的「Math.random()」
- 19. java Math.random()從-N到N
- 20. 的Math.random意外符號錯誤
- 21. Math.random()沒有正確返回
- 22. JS Math.random沒有得到-9-
- 23. Math.random()只有兩個數字
- 24. 的Math.random()解釋
- 25. Javascript Math.random()
- 26. 從math.random
- 27. Java - ScriptEngineManager nashorn Math.random不起作用
- 28. 的Math.random功能
- 29. 已棄用Java HttpClient - 它有多難?
- 30. 如何使用Math.random
你可以做一個for循環,並在1-6之間生成60000個隨機數,然後自己看看。它分佈非常均勻。實現細節,我現在不記得,但可能在維基百科上。 (僞隨機) – Mazyod
Math.random相當不錯,但它不是*高級PRNG(我相信這是一個簡單的LCG實現)。 – user2864740
表觀模式與隨機模式一樣。這裏有一些非隨機的例子http://vanillajava.blogspot.co.uk/2011/10/randomly-no-so-random.html –