python獲取隨機數
『壹』 如何用python編寫一個從隨機數表1~100中抽取三個樣本的隨機數程序
#導入隨機數模塊
import random
#定義一個空的數組,用作取樣表
reList = []
#為取樣表賦值,1~100
for i in range(1,101):
reList.append(i)
#使用sample方法,取3個隨機數
res = random.sample(reList,k=3)
print("三個隨機數是:{}".format(res))
『貳』 怎麼用python生成隨機數
在Python中,random模塊用於生成隨機數。下面介紹下random模塊中常用的幾個函數
- 01
打開我們python的ide
- 02
在打開的shell中,首先需要導入random庫,才可以使用random中的方法,首先介紹下應用最多的函數,random.random(),可以生成一個0到1的隨機符點數
- 03
random.uniform(a,b)函數,生成指定范圍內的隨機符點數,如下圖
- 04
random.randint(a,b)函數,生成一個指定范圍內的整數,如下圖
- 05
random.choice(sqe)函數,從sqe序列中得到一個隨機元素,如下圖,序列元素可以包含很多種類,集合,列表,甚至元組都可以作為參數進行傳遞
『叄』 python如何隨機選取n個不同的數字
python隨機選取n個不同的數字的方法:
1、使用「import random」導入random包
2、通過for語句循環執行n次「random.randint()」語句獲取n個隨機數並將隨機數輸入到列表中
n=10示例如下:
3、用set函數去重就可以了
完整代碼:
更多Python知識,請關註:Python自學網!!
『肆』 python產生1到100的隨機數是多少
python產生1到100的隨機數是機的「提示」可以簡單地從一系列預制提示中隨機選擇,如果有5個預制提示,則可以在1-5之間選擇一個隨機數。
如果是為了得到隨機的單個數,多考慮random模塊;如果是為了得到隨機小數或者整數的矩陣,就多考慮numpy中的random函數,對於random模塊的函數調用方法的記憶,可以多從它本身的英譯出發。
數據分析
1、返回a與b之間的隨機浮點數N,范圍為[a,b]如果a的值小於b的值,則生成的隨機浮點數N的取值范圍為a<=N<=b;如果a的值大於b的值,則生成的隨機浮點數N的取值范圍為b<=N<=a。
2、返回一個隨機的整數N,N的取值范圍為a<=N<=b。需要注意的是,a和b的取值必須為整數,並且a的值一定要小於b的值。
『伍』 python中的隨機數是怎麼實現的
PYTHON中的偽隨機數發生器用的是梅森旋轉演算法。
梅森旋轉演算法(Mersenne twister)是一個偽隨機數發生演算法。由松本真和西村拓士在1997年開發,基於有限二進制欄位上的矩陣線性遞歸。可以快速產生高質量的偽隨機數,修正了古典隨機數發生演算法的很多缺陷。
梅森旋轉演算法是R、Python、Ruby、IDL、Free Pascal、PHP、Maple、Matlab、GNU多重精度運算庫和GSL的默認偽隨機數產生器。從C++11開始,C++也可以使用這種演算法。
整個演算法主要分為三個階段:獲得基礎的梅森旋轉鏈;對於旋轉鏈進行旋轉演算法;對於旋轉演算法所得的結果進行處理。
演算法實現的過程中,參數的選取取決於梅森素數,故此得名。
梅森素數由梅森數而來。所謂梅森數,是指形如2↑p-1的一類數,其中指數p是素數,常記為Mp 。如果梅森數是素數,就稱為梅森素數。
例如4-1=3,8-1=7,16-1=15(不是素數),32-1=31,64-1=63(不是素數)等等。
『陸』 用python生成隨機數的幾種方法
1 從給定參數的正態分布中生成隨機數
當考慮從正態分布中生成隨機數時,應當首先知道正態分布的均值和方差(標准差),有了這些,就可以調用python中現有的模塊和函數來生成隨機數了。這里調用了Numpy模塊中的random.normal函數,由於邏輯非參簡單,所有直接貼上代碼如下:
import numpy as np# 定義從正態分布中獲取隨機數的函數def get_normal_random_number(loc, scale): """ :param loc: 正態分布的均值 :param scale: 正態分布的標准差 :return:從正態分布中產生的隨機數 """ # 正態分布中的隨機數生成 number = np.random.normal(loc=loc, scale=scale) # 返回值 return number# 主模塊if __name__ == "__main__": # 函數調用 n = get_normal_random_number(loc=2, scale=2) # 列印結果 print(n) # 結果:3.275192443463058
2 從給定參數的均勻分布中獲取隨機數的函數
考慮從均勻分布中獲取隨機數的時候,要事先知道均勻分布的下界和上界,然後調用Numpy模塊的random.uniform函數生成隨機數。
import numpy as np# 定義從均勻分布中獲取隨機數的函數def get_uniform_random_number(low, high): """ :param low: 均勻分布的下界 :param high: 均勻分布的上界 :return: 從均勻分布中產生的隨機數 """ # 均勻分布的隨機數生成 number = np.random.uniform(low, high) # 返回值 return number# 主模塊if __name__ == "__main__": # 函數調用 n = get_uniform_random_number(low=2, high=4) # 列印結果 print(n) # 結果:2.4462417140153114
3 按照指定概率生成隨機數
有時候我們需要按照指定的概率生成隨機數,比如已知盒子中每種顏色的球的比例,猜測下一次取出的球的顏色。在這里介紹的問題和上面的例子相似,要求給定一個概率列表,從列表對應的數字列表或區間列表中生成隨機數,分兩部分討論。
3.1 按照指定概率從數字列表中隨機抽取數字
假設給定一個數字列表和一個與之對應的概率列表,兩個列表對應位置的元素組成的元組即表示該數字在數字列表中以多大的概率出現,那麼如何根據這些已知條件從數字列表中按概率抽取隨機數呢?在這里我們考慮用均勻分布來模擬概率,代碼如下:
import numpy as npimport random# 定義從均勻分布中獲取隨機數的函數def get_uniform_random_number(low, high): """ :param low: 均勻分布的下界 :param high: 均勻分布的上界 :return: 從均勻分布中產生的隨機數 """ # 均勻分布的隨機數生成 number = np.random.uniform(low, high) # 返回值 return number# 定義從一個數字列表中以一定的概率取出對應區間中數字的函數def get_number_by_pro(number_list, pro_list): """ :param number_list:數字列表 :param pro_list:數字對應的概率列表 :return:按概率從數字列表中抽取的數字 """ # 用均勻分布中的樣本值來模擬概率 x = random.uniform(0, 1) # 累積概率 cum_pro = 0.0 # 將可迭代對象打包成元組列表 for number, number_pro in zip(number_list, pro_list): cum_pro += number_pro if x < cum_pro: # 返回值 return number# 主模塊if __name__ == "__main__": # 數字列表 num_list = [1, 2, 3, 4, 5] # 對應的概率列表 pr_list = [0.1, 0.3, 0.1, 0.4, 0.1] # 函數調用 n = get_number_by_pro(number_list=num_list, pro_list=pr_list) # 列印結果 print(n) # 結果:1
3.2 按照指定概率從區間列表中的某個區間內生成隨機數
給定一個區間列表和一個與之對應的概率列表,兩個列表相應位置的元素組成的元組即表示某數字出現在某區間內的概率是多少,已知這些,我們如何生成隨機數呢?這里我們通過兩次使用均勻分布達到目的,代碼如下:
import numpy as npimport random# 定義從均勻分布中獲取隨機數的函數def get_uniform_random_number(low, high): """ :param low: 均勻分布的下界 :param high: 均勻分布的上界 :return: 從均勻分布中產生的隨機數 """ # 均勻分布的隨機數生成 number = np.random.uniform(low, high) # 返回值 return number# 定義從一個數字列表中以一定的概率取出對應區間中數字的函數def get_number_by_pro(number_list, pro_list): """ :param number_list:數字列表 :param pro_list:數字對應的概率列表 :return:按概率從數字列表中抽取的數字 """ # 用均勻分布中的樣本值來模擬概率 x = random.uniform(0, 1) # 累積概率 cum_pro = 0.0 # 將可迭代對象打包成元組列表 for number, number_pro in zip(number_list, pro_list): cum_pro += number_pro if x < cum_pro: # 從區間[number. number - 1]上隨機抽取一個值 num = get_uniform_random_number(number, number - 1) # 返回值 return num# 主模塊if __name__ == "__main__": # 數字列表 num_list = [1, 2, 3, 4, 5] # 對應的概率列表 pr_list = [0.1, 0.3, 0.1, 0.4, 0.1] # 函數調用 n = get_number_by_pro(number_list=num_list, pro_list=pr_list) # 列印結果 print(n) # 結果:3.49683787011193
『柒』 randint在python中的意思
python中的randint用來生成隨機數,在使用randint之前,需要調用random庫。其表達是為random.randint(x,y),參數x和y代表生成隨機數的區間范圍。
random() 函數命名來源於英文單詞random(隨機)。randint是random + integer拼接簡寫而成,代表隨機一個整數。
Python標准庫中的random函數,可以生成隨機浮點數、整數、字元串,甚至幫助你隨機選擇列表序列中的一個元素,打亂一組數據等。
函數randint的使用
1、OUT = RANDINT
產生一個「 0 」或「 1 」等概率。
2、OUT = RANDINT(M)
生成的M 矩陣的隨機二進制數字,「 0 」和「 1 」出現的概率均等。
3、OUT = RANDINT(M,N)
生成的(M,N) 矩陣的隨機二進制數字,「 0 」和「 1 」出現的概率均等。
4、OUT = RANDINT(M,N,RANGE)
生成的(M,N) 矩陣的隨機二進制數字,RANGE范圍可以是標量或向量。
標量:為正的話,取值為[0,RANGE-1] ,為負的話,取值為 [RANGE+1, 0]。
向量:取值為[RANGE(1), RANGE(2)]。
5、OUT = RANDINT(M,N,RANGE,STATE)
resets the state of RAND to STATE。
『捌』 python 怎麼從集合中隨機數
舉例說明:從集合中隨機獲得10個數
1、定義一個列表集合iRandom = []
2、向iRandom中插入1-60,共60個數字
3、打亂列表順序
4、截取列表前10個數,即為隨機獲取到的列表集合隨機數
importrandom
iRandom=[]#定義隨機數列表
listRandom=list(range(1,61))#生成整數型1-60的列表組合
random.shuffle(listRandom)#打亂列表順序
iRandom=listRandom[0:10]#截取打亂後的前10個值,賦值給新列表iRandom
print('隨機列表組合:',iRandom)
『玖』 python如何一次性取出多個隨機數
Python內置的函數一次只能生成一個隨機數,然而你可以方便地使用表理解(list comprehension)一次性生成多個隨機數。示例的代碼如下:
importrandom
[random.randint(0,100)for_inrange(10)]
#[57,93,22,55,41,64,47,32,93,61]
range函數輸入不同的值,可以設置需要生成隨機數的個數,上面的例子中生成了10個隨機數。