Python__random庫基本介紹
random庫是使用隨機數的Python標準庫
從概率論角度來說,隨機數是隨機產生的數據(比如拋硬幣),但時計算機是不可能產生隨機值,真正的隨機數也是在特定條件下產生的確定值,只不過這些條件我們沒有理解,或者超出了我們的理解範圍。計算機不能產生真正的隨機數,那麽偽隨機數也就被稱為隨機數
--偽隨機數:計算機中通過采用梅森旋轉算法生成的(偽)隨機序列元素
python中用於生成偽隨機數的函數庫是random
因為是標準庫,使用時候只需要import random
random庫包含兩類函數,常用的共8個
--基本隨機函數: seed(), random()
--擴展隨機函數:randint(), getrandbits(), uniform(), randrange(), choice(), shuffle()
基本隨機數
Python中產生隨機數使用隨機數種子來產生 (只要種子相同,產生的隨機序列,無論是每一個數,還是數與數之間的關系都是確定的,所以隨機數種子確定了隨機序列的產生)
隨機數種子 梅森旋轉算法 隨機序列
10 0.5714025946899135
隨機序列中的每一個數就是隨機數
函數 |
描述 |
seed(a=None) |
初始化給定的隨機數種子,默認為當前系統時間 >>>random.seed(10) #產生種子10對應的序列 |
random() |
生成一個[0.0,1.0)之間的隨機小數 >>>random.random() 0.5714025946899135 #隨機數產生與種子有關,如果種子是1哦,第一個數必定是這個 |
使用隨機數種子的好處是可以復現有隨機數的程序
擴展隨機數函數
在random庫中,最基本的是seed 和random 函數,但時功能比較單一,為此產生了6個擴展隨機數函數
函數 | 描述 |
randint(a,b) |
生成一個[a,b]之間的整數 >>>random.randint(10,100) |
randrange(m,n[,k]) |
生成一個[m,n)之間以k為步長的隨機整數 >>>random.randrange(10,100,10) |
getrandbits(k) |
生成一個k比特長的隨機整數 >>>random.getrandbits(16) 37885 |
uniform(a,b) |
生成一個[a,b]之間的隨機小數 >>>random.uniform(10,100) 16.848041210321334 |
choice(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) [9, 4, 6, 3, 5, 2, 8, 7, 1] |
隨機數函數的使用要點:
--能夠利用隨機數種子產生“確定”偽隨機數 seed生成種子,random函數產生隨機數
--能夠產生隨機整數
--能對序列類型進行隨機操作
Python__random庫基本介紹