在一個循環中,足以將種子設置一次以獲得隨機數序列。函數rand如何僅基於一個種子生成很多隨機數?rand()如何從單個種子生成一個隨機數序列?
0
A
回答
2
您只需要一種算法將一個數字轉換爲兩個數字。一個數字成爲你的下一個輸出,另一個成爲你的下一個種子。這樣的算法非常簡單。例如,可以將數字乘以兩個不同的素數,然後減少每個模態65536.這將從單個輸入產生兩個輸出。
另一種方法是更簡單:
1)置換的種子通過由一個數乘以它並加入第二個數字。 (例如,seed = seed * 214013 + 2531011;
。)
2)僅輸出新種子的一部分。 (例如,return (seed >> 16) &0x7ffff;
。)
0
它實際上是Pseudorandom,數字顯示爲隨機但不是,它們是確定性的,因爲它們可以由算法預測。真正的隨機數字無法預測。使用相同的種子將產生相同的序列。該標準規定了算法,但所用的actual algorithm取決於實現。
相關問題
- 1. rand()和一個種子的隨機數
- 2. C++爲psudo隨機數生成器生成一個很好的隨機種子
- 3. 生成一個隨機數得到一個隨機列表項
- 4. C++:如何從一個數組中生成一個隨機數
- 5. 如何從一個種子生成一個密碼強的隨機字節序列?
- 6. 如何在Haskell中隨機生成一個隨機生成的數字列表
- 7. 在rand之間生成一個1-7之間的隨機數rand(5)
- 8. 如何生成一個隨機數
- 9. 隨機種子生成
- 10. Swift rand不生成隨機數
- 11. 如何隨機生成6個數字的1000個序列
- 12. 如何從陣列生成隨機數
- 13. 如何製作隨機種子/散列讓Rand實際上是隨機的?
- 14. 如何從一個數組中生成3個隨機值
- 15. 隨機數與種子生成
- 16. 生成隨機數字:更新種子
- 17. 在種子內生成隨機數
- 18. 隨機數生成器和種子
- 19. 隨機生成一個子集?
- 20. 隨機種子來產生隨機數
- 21. 生成下一個僞隨機值,給定種子和偏移
- 22. 如何爲隨機生成器生成良好的隨機種子?
- 23. 生成一個隨機數,但每個隨機數在LUA/Love2d
- 24. 隨機生成一個隨機布爾
- 25. 如何生成一個隨機對象?
- 26. 如何隨機生成一個關卡?
- 27. 如何使用Rand函數生成一個長度範圍爲3到9個字符的隨機單詞?
- 28. 一個簡單的隨機生成器
- 29. 兩個不同的種子產生相同的「隨機」序列
- 30. 生成一個隨機值
相關:[rand()如何工作?它有一定的傾向嗎?有什麼更好的使用?](http://stackoverflow.com/questions/3539398/how-does-rand-work-does-it-have-certain-tendencies-is-there-something-better) – user4581301
如何做斐波那契從1開始產生很多數字?從繼承中的一個元素到下一個元素有一條簡單的規則;而在「蘭特」的情況下,數字*看起來非常隨機(對於偶然的觀察者和根據一些基本的統計測試)。 –
你總是從rngs得到一個序列,實際上它是rngs的一個重要特徵,即它們總是以相同的種子產生相同的序列。畢竟他們不是隨機的 – user463035818