隨機數生成不一致:相同 Random.Next
輸出
本文解決了 C# 中的一個常見問題,即一個類的多個實例(每個實例都使用 Random.Next()
)生成相同的隨機數序列。 當多個 Random
對象快速連續實例化時,就會出現這種看似矛盾的行為。
根本原因是Random
類的默認播種機制。 它使用系統時鐘作為種子。 如果在很短的時間內創建多個 Random
對象,它們會收到幾乎相同的種子值,從而產生相同的“隨機”數字序列。
解決方案很簡單:不要為每個實例創建一個新的 Random
對象,而是創建一個 Random
對象並在所有實例中重用它。 該單個實例將生成唯一的隨機數序列,解決相同輸出的問題。 將此共享 Random
對像作為參數傳遞給類的構造函數。
以上是為什麼隨機返回不同實例的相同值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!