Python Random隨機數,pythonrandom隨機數
Python產生隨機數的功能在random模組中實現,實現了各種分布的偽隨機數產生器
該模組可以產生0到1的浮點隨機數,也可以在一個序列中進行隨機播放,產生的隨機數可以是均勻分布,高斯分布,對數常態分佈,負指數分布以及alpha,beta分布,但是呢,這些隨機數不適合使用在以加密為目的的應用中
你也可以自己派生一個Random類的子類,自己去實現子類中的random(),seed(),getstate(),setstate()函數,一個新的產生器可以提供一個getrandbits()方法,這允許randrange()產生任意範圍的隨機數
警告:
這個模組中的隨機數是偽隨機數,不能應用於安全加密,如果你需要一個真正的密碼安全隨機數,你需要使用os.urandom()或者random模組中的SystemRandom類來實現
參考官方文檔,random模組的常用函數如下:
1、random.random()
用於產生一個0到1的隨機浮點數:0<= n < 1.0
2、random.uniform(a,b)
用於產生一個指定範圍內的隨機浮點數,兩個參數其中一個是上限,一個是下限。如果a > b,則產生的隨機數n: a <= n <= b。如果 a <b,則 b <= n <= a。
3、random.randint(a,b)
用於產生一個指定範圍內的整數。其中參數a是下限,參數b是上限,產生的隨機整數數n:a <= n <= b
4、random.choice(seq)
從序列中擷取一個隨機元素。參數seqe表示一個有序類型,可以是list,tuple,array,str等
5、random.randrange([start,] stop[, step])
從指定範圍內,按指定基數遞增的集合中 擷取一個隨機數。如:random.randrange(10,100, 2),結果相當於從[10, 12, 14, 16, ... 96, 98]序列中擷取一個隨機數。random.randrange(10,100, 2)在結果上與 random.choice(range(10, 100, 2) 等效。
6、random.shuffle(x[,random])
用於將一個列表中的元素打亂,可以用這個函數寫一個洗牌的程式
7、random.sample(seq,k)
從指定序列中隨機擷取指定長度的片斷,sample函數不會修改原有序列,如果k大於seq元素個數的話會報錯。
>>> random.random() # Random float x, 0.0 <= x < 1.00.37444887175646646>>> random.uniform(1, 10) # Random float x, 1.0 <= x < 10.01.1800146073117523>>> random.randrange(10) # Integer from 0 to 97>>> random.randrange(0, 101, 2) # Even integer from 0 to 10026>>> random.choice('abcdefghij') # Single random element'c'>>> items = [1, 2, 3, 4, 5, 6, 7]>>> random.shuffle(items)>>> items[7, 3, 2, 5, 6, 4, 1]>>> random.sample([1, 2, 3, 4, 5], 3) # Three samples without replacement[4, 1, 5]
對於Python中的隨機數產生步驟與隨機數品質
>>> random.random() # Random float x, 0.0 <= x < 1.00.37444887175646646>>> random.uniform(1, 10) # Random float x, 1.0 <= x < 10.01.1800146073117523>>> random.randint(1, 10) # Integer from 1 to 10, endpoints included7>>> random.randrange(0, 101, 2) # Even integer from 0 to 10026>>> random.choice('abcdefghij') # Choose a random element'c'>>> items = [1, 2, 3, 4, 5, 6, 7]>>> random.shuffle(items)>>> items[7, 3, 2, 5, 6, 4, 1]>>> random.sample([1, 2, 3, 4, 5], 3) # Choose 3 elements[4, 1, 5]測試隨機數品質一般是用以下幾種測試:
Birthday spacings
Overlapping permutations
Ranks of matrices
Monkey tests
Count the 1s
Parking lot test
Minimum distance test
Random spheres test
The squeeze test
Overlapping sums test
Runs test
The craps test
在python中,怎用random()獲得區間[-1,1)的隨機數
import random
random.uniform(-1,1)
這是用random模組
import random
num=-1+2*random .random()
這是用random函數