了解循環中的隨機數生成問題
問題:
在循環中使用Random.Next
生成隨機數時,會出現一個常見的問題。 如果為每次迭代創建一個新的Random
對象,則通常會觀察到重複或可預測的“隨機”數字。在快速循環中尤其如此。
>說明:
根本原因在於Random
>對象的初始化。 每個實例都使用系統時鐘播種。 如果在非常短的時間範圍內創建多個實例(通常是在循環中發生),則它們會收到相同的種子價值。 這導致每個Random
的對象產生相同的偽隨機數。 Random
分辨率:
解決方案很簡單:創建循環外部的單Random
對象,並將其重複使用循環中的所有隨機數世代。這樣可以確保生成一致但不可預測的隨機數序列。 根據需要將此單個Random
的實例傳遞給需要隨機數的任何方法。
以上是為什麼隨機次數會在循環中產生重複值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!