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函數產生隨機數

--能夠產生隨機整數

--能對序列類型進行隨機操作

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM