Python random.seed() 方法



Python random.seed() 方法用於生成隨機數。它藉助偽隨機數生成器,透過對給定值執行某些操作來實現。random 模組使用種子值作為基礎在 Python 中建立隨機數。

偽隨機數生成器在播種時獲取其第一個“前一個”值。對於特定的隨機數生成器,每個種子值將對應於生成的一系列值。換句話說,如果您兩次使用相同的種子,您將兩次獲得相同的數字集。

注意 - 此函式無法直接訪問,因此我們需要匯入 random 模組,然後需要使用 random 靜態物件呼叫此函式。

語法

以下是Python random.seed()方法的語法 -

random.seed(x, version)

引數

  • x(可選) - 這是下一個隨機數的種子。如果省略,則它採用系統時間生成下一個隨機數。如果 x 為 None,則預設使用當前系統時間。

  • version - 這是一個整數值。它描述瞭如何將引數x轉換為整數值。它的預設值為 2。

返回值

此方法不返回值。它僅修復隨機數生成。

示例 1

以下示例顯示了 Python random.seed() 方法的使用。在這裡,我們還使用了另一個稱為 random() 的 random 模組方法。它生成位於指定範圍“10”內的隨機數。

import random
random.seed( 10 )
print ("Random number with seed 10 : ", random.random())
# It will generate same random number
random.seed(10)
print ("Random number with seed 10 : ", random.random())
# It will generate same random number
random.seed(10)
print ("Random number with seed 10 : ", random.random())

當我們執行以上程式時,它會產生以下結果 -

Random number with seed 10 :  0.57140259469
Random number with seed 10 :  0.57140259469
Random number with seed 10 :  0.57140259469

示例 2

如果我們兩次使用相同的種子,我們將兩次獲得相同的隨機數集。

在下面給出的示例中,相同的種子值“98”被提供給 random.seed() 方法。因此,獲得了相同的隨機數。這是因為為隨機數生成器指定了第一個前一個值(種子)。因此,在每次執行中,生成器都會生成相同的數字。

# import the random module
import random
# set the seed with the value 98
x = random.seed(98)
# generate the random number between 1-100
print("The random number generated is:", random.random()*100)
# again set the seed with the value of 98
x = random.seed(98)
# generate the random number between 1-100
print("The random number generated is:", random.random()*100)

在執行上述程式碼時,我們得到以下輸出 -

The random number generated is: 35.639820676272215
The random number generated is: 35.639820676272215

示例 3

在這裡,我們在呼叫 random 模組之前傳遞不同的種子值。因此,我們獲得不同的隨機數。

# import the random module
import random
# set the seed with the value 98
x = random.seed(30)
# generate the random number between 1-100
print("The random number generated is:", random.random()*100)
# again set the seed with the value of 60
x = random.seed(60)
# generate the random number
print("The random number generated is:", random.random())

以下是上述程式碼的輸出 -

The random number generated is: 53.90815646058106
The random number generated is: 0.3078067547337774

示例 4

以下是使用 for 迴圈的 seed() 方法的另一個示例。在這裡,我們看到重複的輸出 4 次。

import random
for i in range(4):
   # random number with seed 9
   random.seed(9)
   for i in range(3):
      print('The random number with seed 9 is:',random.random())
   print('The random number generated is:')

上述程式碼的輸出如下 -

The random number with seed 9 is: 0.46300735781502145
The random number with seed 9 is: 0.37331193139504204
The random number with seed 9 is: 0.13853941251445523
The random number generated is:
The random number with seed 9 is: 0.46300735781502145
The random number with seed 9 is: 0.37331193139504204
The random number with seed 9 is: 0.13853941251445523
The random number generated is:
The random number with seed 9 is: 0.46300735781502145
The random number with seed 9 is: 0.37331193139504204
The random number with seed 9 is: 0.13853941251445523
The random number generated is:
The random number with seed 9 is: 0.46300735781502145
The random number with seed 9 is: 0.37331193139504204
The random number with seed 9 is: 0.13853941251445523
The random number generated is:
python_modules.htm
廣告