1. 程式人生 > >Python seed() 函式

Python seed() 函式

跟c/C++類似,所有標準庫提供的Random函式其實都是假Random,真正的Random函式式不需要Seed的。

所謂假Random,是指所返回的隨機數字其實是一個穩定演算法所得出的穩定結果序列,而不是真正意義上的隨機序列。 Seed就是這個演算法開始計算的第一個值。所以就會出現只要seed是一樣的,那麼後續所有“隨機”結果和順序也都是完全一致的。 通常情況下,你可以用 DateTime.Now.Millisecend() 也就是當前始終的毫秒來做Seed .因為毫秒對你來說是一個1000以內的隨即數字。 這樣可以大大改善保準庫的Random結果的隨機性。 不過這仍然算不上是完全隨機,因為重複的概率還是千分之一。

另外需要注意的是,如果一直呼叫標準庫Random,那麼在呼叫了N次以後,輸出結果就會迴圈最開始的序列了。也就是說,標準庫Random所能生成的不同結果的個數也是有限的。32位系統一般也就是幾萬次以後就會出現重複。

你可以到網上找一個真正的隨即函式,以替換標準庫Random。

使用舉例:random.seed(time.time())