2012-07-15 81 views
2

有人可以解釋種子在模塊隨機模塊中做什麼的方法嗎?提前致謝。python隨機模塊種子方法

random.seed(42) #same connections each time for easier debugging 
+2

下面是關於你正在詢問的函數的python文檔的鏈接:[link](http://docs.python.org/library/random.html?highlight=random.seed#random.seed)。如果我想知道關於python的東西,我總是會去看文檔,這非常有用。 – thedoctar 2012-07-15 05:26:10

+0

您也可以查看[隨機模塊的Python源代碼](http://hg.python.org/cpython/file/c6880edaf6f3/Lib/random.py)。 – Chris 2012-07-15 15:47:52

回答

4

隨機函數是僞隨機的,不是真正的隨機函數。它會從種子值中產生看似隨機的值,通常由種子值通過系統時鐘或其他更有意義的值來設置,但如果隨機函數採用相同的靜態值(本例中爲42),則隨機函數的輸出在每個程序執行時都是完全相同的,因此可以預測,這對調試代碼很有用。

4

任何基於軟件的隨機數生成器都不是真正的隨機數生成器,除非它從硬件來源提取隨機數據。

播種隨機數發生器(RNG)爲它提供初始值。 RNG對這個值做了一些魔術,併產生一個新的值,再次將其輸入(通常),然後產生另一個值。這一直持續發生,以創造一大堆非常隨意的數字。真正的RNG並不那麼簡單,但你明白了。由於RNG實際上並不是隨機的(它實際上是一個PRNG,其中P代表僞),因此每次給它兩次相同的種子值會給你相同的隨機數字流。這隻對調試很有用,因爲您知道「隨機」數字是什麼。