我正在使用Math.random()方法將3個位圖中的一個分配給多個對象,因此當它們通過調用隨機數出現在屏幕上時,它們都會看起來不同,然後根據位於0之間的位置分配位圖每個對象有1個,但是我一直看到像連續多次出現的相同位圖一樣的圖案,這只是我尋找沒有的圖案嗎?有沒有更好的方法來隨機化這樣的事情?java中的Math.random()方法是否真的是隨機的?
1
A
回答
1
它不是「真正」隨機的,但它是「足夠隨機」的。真正的隨機來源很少,例如大氣噪音。也許你用來創建位圖的方法自然會創建類似的模式。
0
JDK1.7 doc說:返回值是從該範圍內以近似均勻分佈僞隨機選擇的。
1
我想你可能需要使用種子,以便每次生成不同的序列。見(https://docs.oracle.com/javase/7/docs/api/java/util/Random.html)
如果隨機的兩個實例使用相同的種子創建,並且方法相同的調用序列由對於每個,它們將生成並返回的數字相同的序列。爲了保證此屬性,特定算法爲類隨機
隨着可以產生相同的結果的種子,並通過使用不同的種子指定,可以保證不同數量的序列將被生成。
2
如果你想要的東西比標準的Java RNG「更隨機」,那麼你需要使用加密的RNG。由於RNG需要各種內部系統輸入以及您提供的任何種子,因此這將會變慢並且您將無法通過設置種子來重複相同的隨機序列。詳細信息請參見java.security.SecureRandom
。
相關問題
- 1. 修訂是否真的是隨機的
- 2. 隨機數字在Java中是否真的無法預知?
- 3. Java隨機類不是真正的隨機?
- 4. 的Math.random是不是讓我創建一個隨機數
- 5. Math.random()的隨機性如何?
- 6. 在Java中隨機種子Math.random
- 7. Java Math.random while while循環中不隨機
- 8. 活動記錄是否爲真隨機?
- 9. HashMap中元素的檢索順序是否真的隨機化?
- 10. 在Safari中,我認爲IE7和8 Math.random()不是隨機的嗎?
- 11. Java隨機數不是隨機的嗎?
- 12. Math.random()是否統一生成僞隨機數?
- 13. 的Lua 5.1.4的Math.random實際上不是隨機
- 14. 如何使用java中的math.random()從1到6的隨機int?
- 15. 隨機序列的子集是否也是隨機的?
- 16. 爲什麼rand()不是真的隨機?
- 17. C++隨機引擎不是真的隨機
- 18. 使用math.random在java中生成一定數量的隨機數
- 19. 如何「檢查」函數是否真的給出隨機結果?
- 20. Java中的Math.random()
- 21. Math.random vs其他隨機算法
- 22. 什麼是Java中的隨機種子?
- 23. Java加密ivSpec是否隨機?
- 24. Math.Random()挑選隨機數組
- 25. Java Math.random()它有多隨意?
- 26. 隨機數是不是真的均勻分佈
- 27. Java中的方法參數是否是線程安全的?
- 28. Java是否真的面向對象?
- 29. Java內核是否真的存在?
- 30. 的Java:隨機數是一切
'「......這只是我尋找的模式沒有?」 - - 很可能。 'Math.random()'永遠不可能是「真正的隨機」,但它應該是隨機*足夠*以滿足該(和大多數)程序的需求。 –
你如何完成作業?這三個位圖中的任何一個真的有相同的概率嗎? –