Python中的隨機數不是真的隨機數

Python中的隨機數不是真的隨機數


計算機中的隨機函數是按照一定算法模擬產生的,其結果是確定的,是可預見的,並不是真的隨機。

Python中生成隨機數需要導入模塊random。

import random

random模塊常用的幾個函數

1、random()方法

#隨機生成[0,1)之間的浮點數
>>> import random
>>> random.random()
0.842087374592028

2、random.uniform(a, b)

#獲取指定範圍內隨機浮點數

#兩個參數其中一個是上限,一個是下限。如果a > b,則生成的隨機數n: a <= n <= b。如果 a >>> random.uniform(1,10)
3.563210711167122
>>> random.uniform(10,1)
2.9816474779151774

3、random.randint(a, b)

#生成指定範圍的隨機整數
#其中參數a是下限,參數b是上限,生成的隨機數n: a <= n <= b
>>> random.randint(1,10)
3
>>> random.randint(10,1)
Traceback (most recent call last):
File "<pyshell>", line 1, in <module>
random.randint(10,1)
File "D:\Python37\lib\random.py", line 222, in randint
return self.randrange(a, b+1)
File "D:\Python37\lib\random.py", line 200, in randrange
raise ValueError("empty range for randrange() (%d,%d, %d)" % (istart, istop, width))
ValueError: empty range for randrange() (10,2, -8)
/<module>/<pyshell>

4、random.randrange([start],stop[,step])

#獲取指定範圍內、按指定基數遞增的隨機的整數。
#start -- 指定範圍內的開始值,包含在範圍內。
#stop -- 指定範圍內的結束值,不包含在範圍內。
#step -- 指定遞增基數,默認是1。
>>> random.randrange(1,100,3)
58
>>> random.randrange(1,100)
44
>>> random.randrange(100)
77

5、random.choice(sequence)

#從序列中隨機獲取一個元素,參數sequence表示一個有序類型。 

>>> random.choice('abcdefghijk')
'k'
>>> random.choice(['Python','Java','C++','Ruby','JSP'])
'Java'
>>> colors = ['red','yellow','blue','white','black']
>>> random.choice(colors)
'blue'

6、random.shuffle(x[,random])

#將一個可變序列中的元素打亂
>>> items = [1,2,3,4,5,6,7]
>>> random.shuffle(items)
>>> items
[6, 3, 5, 1, 4, 7, 2]
>>> s = ['Python','is','very','simple','!']
>>> random.shuffle(s)
>>> s
['simple', 'is', 'Python', '!', 'very']
>>> colors = ['red','yellow','bule','white','black']
>>> random.shuffle(colors)
>>> colors
['bule', 'white', 'black', 'yellow', 'red']

7、random.sample(sequence,k)

#從指定的序列中隨機獲取指定長度的片段,原序列不變。
>>> random.sample([1,2,3,4,5,6,7],3)
[1, 2, 6]
>>> colors = ['red','yellow','bule','white','black']
>>> random.sample(colors,2)
['black', 'white']
>>> random.sample(colors,2)
['yellow', 'bule']

以上是對random模塊的一些總結,歡迎大家指正。^_^


分享到:


相關文章: