目錄
基本隨機數函數():
rand.seed()
random()
擴展隨機數函數():
random庫包含兩類函數:基本隨機數函數,擴展隨機數函數
基本隨機數函數:seed(),random()
擴展隨機數函數:randint,getrandbits(),uniform(),randrange(),choice(),shuffle()
基本隨機數函數():
rand.seed()
當調用random.seed()時,它會將傳入的種子作為參數,將其轉換為一個整數值。該整數值被用來設置隨機數生成器的起始狀態。隨機數生成器根據起始狀態生成隨機數序列,這些隨機數可以通過random.random()等函數獲取。
注:種子是一個起始值,它被用作生成隨機數序列的起點。隨機數生成器根據種子計算下一個隨機數,并將該數作為種子傳遞給下一個計算。
random.seed(10)#產生種子10對應的序列
#默認情況下會使用系統時間來初始化隨機數生成器的種子。?
import numpy as npnum = 0
np.random.seed(0)
while (num < 5):print(np.random.rand(1,5))num += 1print('-------------------------')
可以發現設置隨機種子后,每次運行結果隨機數都相同
如果將程序的隨機種子注釋:
import numpy as npnum = 0
#np.random.seed(0)
while (num < 5):print(np.random.rand(1,5))num += 1print('-------------------------')
那么可以發現每次執行結果隨機數都不同:
random()
生成一個[0.0,1.0)之間的隨即小數
>>>random.random()
0.5714025946899135
擴展隨機數函數():
函數 | 描述 |
randint(a, b) | ? 生成一個[a, b]之間的整數 |
? >>>random.randint(10, 100) | |
64 | |
randrange(m, n[, k]) | ? 生成一個[m, n)之間以k為步長的隨機整數 |
?>>>random.randrange(10, 100, 10) | |
80 | |
getrandbits(k) | ? 生成一個k比特長的隨機整數 |
? >>>random.getrandbits(16) | |
37885 | |
uniform(a, b) | ? 生成一個[a, b]之間的隨機小數 |
?>>>random.uniform(10, 100) | |
13.09632165 | |
choice(seq) | ? 從序列seq中隨機選擇一個元素 |
? >>>random.choice([1,2,3,4,5,6,7,8,9]) | |
8 | |
shuffle(seq) | ? 將序列seq中元素隨機排列,返回打亂后的序列 |
? >>>s=[1,2,3,4,5,6,7,8,9];random.shuffle(s);print(s) | |
?[3, 5, 8, 9, 6, 1, 2, 7, 4] |