1. 程式人生 > >random 隨機函式使用

random 隨機函式使用

random 隨機函式的使用

需要掌握的能力

  • 能夠使用隨機種子產生“確定”的隨機數
  • 能夠產生隨機整數
  • 能夠序列列表進行操作

一能夠使用隨機種子產生“確定”的隨機數

給定隨機數種子函式為random.seed()函式,當給定隨機數種子時,產生的是一個隨機數序列,在這個種子下隨機數序列也是確定的。

import random

In [2]: random.seed(10)

In [3]: random.random()
Out[3]: 0.5714025946899135

In [4]: random.random()
Out[4]: 0.4288890546751146
In [8]: random.seed(10)

In [9]: random.random()
Out[9]: 0.5714025946899135

In [10]: random.seed(10)

In [11]: random.random()
Out[11]: 0.5714025946899135

一般情況下不設頂隨機數種子時,預設是使用系統時間作為隨機數種子

二 產生隨機整數

產生整數有幾個函式random.randint(a,b)產生a到b之間的隨機整數,random.randrange(a,b,k)產生a到b之間的以k為步長的整數。

random.randrange(10,100,5)
Out[12]: 75

In [13]: random.randrange(10,100,5)
Out[13]: 85

In [14]: random.randrange(10,100,5)
Out[14]: 10

產生隨機小數
random.uniform(a,b)產生a到b之間的隨機小數。

In [15]: random.uniform(10,20)
Out[15]: 12.060982321395016

In [16]: random.uniform(10,20)
Out[16]: 18.1332125135732

三 對序列進行操作

主要有兩個函式random.choice([])從序列中隨機挑選一個,random.shuffle([])對序列進行隨機排序並返回。

In [17]: random.choice([1,2,3,5,9,8,10])
Out[17]: 10

In [18]: random.choice([1,2,3,5,9,8,10])
Out[18]: 3
In [20]: s = [1,2,3,5,6,8,9,4]

In [21]: random.shuffle(s)

In [22]: print(s)
[2, 8, 9, 4, 5, 6, 1, 3]

random.sample()函式
random.sample的函式原型為:random.sample(sequence, k),從指定序列中隨機獲取指定長度的片斷。sample函式不會修改原有序列。

In [24]: lii = random.sample(s,3)

In [25]: print(lii)
[6, 2, 4]

In [26]: print(s)
[2, 8, 9, 4, 5, 6, 1, 3]