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函數產生隨機數
--能夠產生隨機整數
--能對序列類型進行隨機操作
?
轉載于:https://www.cnblogs.com/masked/p/8846439.html
總結
以上是生活随笔為你收集整理的Python__random库基本介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java List部分截取,获得指定长度
- 下一篇: network is unreachab