(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 |
| randrange(m,n[,k]) | 生成一個[m,n)之間以k為步長的隨機整數(大於等於m,小於n)。例如: >>> import random |
| getrandbits(k) | 生成一個長度為k的二進制隨機整數。例如: >>> import random |
| uniform(a,b) | 生成一個[a,b]之間的隨機小數(大於等於a,小於等於b)。例如: >>> import random |
| choice(seq) | 從序列seq中隨機選擇一個元素。例如: >>> import random |
| shuffle(seq) | 將變量序列seq中元素隨機排序,並返回給序列的變量。例如: >>> import random |
