1. 程式人生 > >Python__random庫基本介紹

Python__random庫基本介紹

隨機 span rand 默認 函數庫 標準庫 .sh bits 硬幣

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庫基本介紹