理解Python 中random.seed() 的作用
在Python 中,random.seed() 初始化偽隨機數的內部狀態-隨機模組使用的隨機數產生器(PRNG)。如果您希望在 Python 程式中有效地利用它,理解這一點至關重要。
random.seed() 如何運作?
PRNG 透過構造序列來發揮作用基於稱為「種子」的初始值的數字。每個後續數字都是使用序列中的前一個數字來計算的。當您第一次使用 random 模組時,會產生預設種子,但您可以使用 random.seed() 指定特定種子值,使您能夠一致地重現隨機數序列。
範例:
以下Python 程式碼片段示範了播種如何影響random.randint() 產生的隨機數序列:
import random # Seed the random number generator with the value 9001 random.seed(9001) # Generate five random numbers between 1 and 10 print(random.randint(1, 10)) print(random.randint(1, 10)) print(random.randint(1, 10)) print(random.randint(1, 10)) print(random.randint(1, 10))
輸出:
1 3 6 6 7
在此範例中,使用9001 作為PRNG 的種子可確保後續隨機整數始終產生為[1, 3, 6, 6, 7]。每次使用相同的種子值運行程式碼時都會重現此特定序列。
為什麼要用 random.seed()?
用於可預測的隨機數序列,例如產生一組一致的測試數據,random.seed() 很有用。此外,它還允許您在多個程式運行中重現特定結果以進行偵錯。
一般來說,建議設定一個隨每次程序執行而變化的種子值(例如當前時間),以產生真正隨機的結果順序。這可確保每次執行程式碼時,PRNG 都會使用唯一的種子進行初始化。
以上是random.seed() 如何確保 Python 中的可預測隨機性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!