random庫用于生成随機數
- 基本随機數函數:
,seed()
random()
- 擴充随機數函數:
randint()
getrandbits()
uniform()
randrange()
choice()
shuffle()
-
seed(a=None)
初始化給定的随機數種子,預設為目前系統時間
random.seed(10) #産生種子10對應的序列
-
random()
生成一個[0.0, 1.0)之間的随機小數
random.random()
- 常用的 經過擴充的 random()方法
函數 | 描述 |
---|---|
randint(a, b) | 生成一個[a, b]之間的整數 |
randrange(m, n[, k]) | 生成一個[m, n)之間以k為步長的随機整數 |
getrandbits(k) | 生成一個k比特長的随機整數 |
uniform(a, b) | 生成一個[a, b]之間的随機小數 |
choice(seq) | 從序列seq中随機選擇一個元素 |
shuffle(seq) | 将序列seq中元素随機排列,傳回打亂後的序列 |
random.randint(10, 100)
64
random.randrange(10, 100, 10)
80
random.getrandbits(16)
37885
random.uniform(10, 100)
13.096321648808136
random.choice([1,2,3,4,5,6,7,8,9])
8
s=[1,2,3,4,5,6,7,8,9];random.shuffle(s);print(s)
[3, 5, 8, 9, 6, 1, 2, 7, 4]
- random是如何生成随機數的呢? 請注意圖二中,左邊的代碼,産生了兩個随機數,而那兩個随機數恰好就是 圖一中 序列的前兩個;而右邊的代碼則是生成完全相同的兩個随機數
是以 seed(10) 生成一個随機數序列,之後random()會按照順序一次取出這個随機數序列中的随機數
-
我們什麼時候會使用seed()函數呢?直接預設的用系統目前時間豈不是更好?
當我們的程式希望 生成的随機數能夠 複現 的時候,那麼設定 seed()函數 就會很好了,因為他生成的随機數是固定的