Python基礎隨機數庫——random


(1).介紹

  Random庫Python中用於生成隨機數的一個標准庫。計算機沒有辦法產生真正的隨機數,但它可以產生偽隨機數。

  偽隨機數是計算機按照一定的運算規則產生的一些數據,只不過這些數據表現為隨機數的形式。計算機中采用梅森旋轉算法生成為隨機序列,序列中的每一個元素就是偽隨機數,由於計算機不能產生真正的隨機數,所以偽隨機數也就被稱為隨機數。

  Random庫包含兩類函數,常用的有8個:

    基本隨機函數:seed(),random()

    擴展隨機函數:randint(),getrandbits(),uniform(),randrange(),choice(),shuffle()

(2).基本隨機數函數

  Python中的隨機數使用隨機數種子來產生,隨機數種子通過梅森旋轉算法產生隨機序列,這個隨機序列是唯一並且確定的,隨機序列中的每一個數就是隨機數。換句話說,只要隨機數種子相同,那么產生的隨機序列無論是每一個數,還是數之間的關系都是相同的。

函數 描述
seed(a=None) 初始化給定的隨機數種子,默認為當前時間
random()

生成一個[0.0,1.0)之間的隨機小數(大於等於0,小於1)。

根據隨機數種子產生隨機序列,產生后第一次調用該函數,則返回序列的第0個元素;

第二次調用,則返回序列的第1個元素......以此類推。

  實例1:使用默認的隨機數種子產生隨機數

>>> import random
>>> random.seed()
>>> random.random()
0.4583742792868192
>>> random.random()
0.9905749191276231
>>> random.seed()
>>> random.random()
0.8846207230562237
>>> random.random()
0.13447072126096293

  實例2:使用固定的隨機數種子產生隨機數

>>> import random
>>> random.seed(10)
>>> random.random()
0.5714025946899135
>>> random.random()
0.4288890546751146
>>> random.seed(10)
>>> random.random()
0.5714025946899135
>>> random.random()
0.4288890546751146

(3).擴展隨機數函數

函數 描述
randint(a,b)

生成一個[a,b]之間的隨機整數(大於等於a,小於等於b)。例如:

>>> import random
>>> random.randint(1,9)
3

randrange(m,n[,k])

生成一個[m,n)之間以k為步長的隨機整數(大於等於m,小於n)。例如:

>>> import random
>>> random.randrange(10,110,10)
20

getrandbits(k)

生成一個長度為k的二進制隨機整數。例如:

>>> import random
>>> random.getrandbits(16)
17266

uniform(a,b)

生成一個[a,b]之間的隨機小數(大於等於a,小於等於b)。例如:

>>> import random
>>> random.uniform(10,20)
12.484765001518227

choice(seq)

從序列seq中隨機選擇一個元素。例如:

>>> import random
>>> random.choice((1,2,3,4,5,6,7,8))
4

shuffle(seq)

將變量序列seq中元素隨機排序,並返回給序列的變量。例如:

>>> import random
>>> seq=[1,2,3,4,5,6,7]
>>> random.shuffle(seq)
>>> print(seq)
[4, 3, 2, 1, 7, 6, 5]


免責聲明!

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



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