我在Python中做什麼random.seed()
有點困惑。例如,爲什麼下面的試驗能夠做到(一致)?random.seed():它做什麼?
>>> import random
>>> random.seed(9001)
>>> random.randint(1, 10)
1
>>> random.randint(1, 10)
3
>>> random.randint(1, 10)
6
>>> random.randint(1, 10)
6
>>> random.randint(1, 10)
7
我在這找不到很好的文檔。提前致謝!
隨機數字的生成不是真正的「隨機」。它是確定性的,它產生的序列是由你傳入「random.seed」的種子值決定的。通常你只需調用random.seed(),它使用當前時間作爲種子值,這意味着每當你運行腳本時,你將得到不同的值序列。 –
將相同的種子傳遞給隨機,然後調用它會給你相同的一組數字。這是按預期工作的,如果你希望每次你啓動一個應用程序時(例如從/ dev/random或time的輸出),每次你必須使用不同的結果,結果會不同。 –
種子是什麼送到RNG產生第一個隨機數。在那之後,他們RNG是自給自足的。由於這個原因,你並沒有看到相同的答案。如果您再次運行此腳本,您將獲得相同的「隨機」數字序列。如果您想重現結果,設置種子會很有幫助,因爲所有生成的「隨機」數字總是相同的。 – Blink