簡體   English   中英

Android SDK Random和SecureRandom返回的不是隨機值

[英]Android SDK Random and SecureRandom returning not so random values

TLDR:我有一個單身人士

Random random = new SecureRandom(); // tried with new Random() as well

我使用相同的實例來調用random.nextInt(3) ,我得到的結果如: 2,2,2,0,2,2,2,1,2,2 。很多'2',但沒有那么多' 0'或'1'。 怎么了?

長版 :我有一個游戲,敵人隨機使用3種技能之一(通過做random.nextInt(3) ),他們總是一遍又一遍地使用相同的技能。 無論是在模擬器還是在手機上。 他們很少使用不同的技能。

當然,在測試中做1000次random.nextInt(3)調用將返回看似隨機的值,但不會在我的游戲中。 我只實例化了一次Random / SecureRandom並將其用作單例。

在非常罕見的情況下,它做相反的事情:0,1,0,0,1,2,1,1,0,1,0,1,1,0,0。我不明白發生了什么或如何修理它。

編輯:在這種情況下,您可以嘗試使用此處指定的getInstanceStrong()方法,看看是否會產生您想要的結果。 從JDK8開始, getInstanceStrong()方法將返回平台上可用的最強SecureRandom實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM