首頁 > 後端開發 > Golang > 為什麼我的 Go 程式碼不斷產生相同的隨機數?

為什麼我的 Go 程式碼不斷產生相同的隨機數?

Linda Hamilton
發布: 2024-10-26 12:43:29
原創
789 人瀏覽過

Why Does My Go Code Keep Generating the Same Random Number?

解Go 中的重複隨機數產生問題

Go 中,rand.Intn(n int) int 函數傳回一個偽隨機整數在[0, n) 範圍內。但是,您遇到了一個問題,即它始終列印相同的數字。

文件建議 rand.Intn 使用預設 Source,它會產生確定性的值序列。要自訂行為並確保隨機性,您必須正確播種隨機數產生。

要為隨機數產生器播種,請呼叫 rand.Seed(seed int64) 函式。此函數使用種子值初始化預設 Source。常見的做法是使用目前的 Unix 時間戳記:

<code class="go">rand.Seed(time.Now().UnixNano())</code>
登入後複製

透過為生成器播種,您可以確保程式的每次運行都會產生不同的隨機數。

如果 rand.Seed()不被調用,生成器的行為就好像以 1 為種子,導致觀察到的重複。

以上是為什麼我的 Go 程式碼不斷產生相同的隨機數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板