⑴ python裡面如何生成隨機數
import
random
testlist
=
[1,3,4,5]
a,b
=
1,5
random.random()
生成0至1之間的隨機浮點數,結果大於等於0.0,小於1.0
random.randint(a,b)
生成1至5之間的隨機整數,結果大於等於1,小於等於5,a必須小於等於b
random.choice(testlist)從testlist中隨機挑選一個數,也可以是元組、字元串
⑵ python中生成隨機整數
python 中有生成0-1以內隨機數的函數random.random(),然後乘以一個倍數,再取整int就可以了。
⑶ python如何生成隨機數、隨機字元、隨機字元串
import random
import string
# 返回給定數量的隨機數列表
lst = random.sample(source, n)
參數source:從source中隨機選擇,n為數量
下面字元串可供選擇
問題簡單了
【生成n個隨機數】
numlst = [int(i) for i in random.sample(string.digits, n)]
numlst為隨機數整形列表
【生成n個隨機字元】
strlst = [i for i in random.sample(string.ascii_letters, n)]
返回一個隨機字元列表strlst。
strlst = [i for i in random.sample(string.ascii_letters, n)]
把隨機字元連接起來就可以了
print(''.join(strlst))
如果需要生成的隨機字元、字元串帶有符號,則使用string.printable作為參數source傳遞給random.sample(source, n)中即可。
望採納!
⑷ python用生成隨機數的方法
import random
random.randint(1,10) #取1~10之間隨機數。
⑸ python 如何生成和為固定值的N個隨機數
很簡單,不用那麼蠢的代碼。
如果你不需要最終產生的隨機數是整數的話,只需要隨機產生10個隨機數,然後計算它們的合是多少,然後算下這個合和60之間的比例,把所有的隨機數乘以一個比例就可以了。給你兩個方法參考,都是可以的。見方法1,方法2的代碼。
如果你需要最終產生整數的話,那就隨機產生9個隨機數,在算比例的時候變一下分母分子,然後最後用原list除以比例的時候用整除就可以了。這樣9個數全是整數,然後算一下這九個數和60的差值,把差值補充進去做為第十個數就可以了。見方法1'和方法2』。
import numpy as np
#方法1:產生0-1的10個隨機浮點數,然後乘以比例達到最終合為60
x0=np.random.rand(10)
ratio=60/sum(x0)
x1=x0*ratio
#方法2:產生10個0-60之間的10個隨機整數,然後乘以比例達到最終合為60
y0=np.random.randint(60,size=10)
ratio=60/sum(y0)
y1=y0*ratio
#方法1':產生0-1的9個隨機浮點數,然後除以比例達到9個數為整數,最後補充一個60和這個
#list的和的差值,就可以了。
x0=np.random.rand(9)
ratio=sum(x0)/60
x1=x0//ratio
x1=x1.tolist()
x1.append(60-sum(x1))
#方法2':產生10個0-60之間的隨機整數,然後除以比例達到9個數為整數,最後補充一個60和這個
#list的和的差值,就可以了。
y0=np.random.randint(60,size=9)
ratio=sum(y0)/60
y1=y0//ratio
y1=y1.tolist()
y1.append(60-sum(y1))
⑹ 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編寫函數,接收一個參量n,生成n個兩位的隨機整數
def rang(n):
for i in range(0, n): #生成N個。
print(random.randint(10, 99)) #生成兩位隨機整數
⑼ python 隨機數生成的代碼的詳細分析
python 隨機數生成的代碼的詳細分析
如果你對python隨機數生成的實際應用有不解之處,你就可以通過以下的內容對其進行了解,以下十九相關內容的介紹
以下的文章主要是以介紹python隨機數生成的代碼來介紹Python隨機數生成在實際操作過程中的具體應用,如果你對其的相關內容感興趣的話,你就可以點擊以下的文章。希望你會對它有所收獲。
Python中的random模塊用於生成隨機數。下面介紹一下random模塊中最常用的幾個函數。
代碼如下:
random.randomrandom.random()
用於生成一個0到1的隨機符點數:
代碼如下:
0 <= n < 1.0random.uniformrandom.uniform
的函數原型為:
代碼如下:
random.uniform(a, b)
用於生成一個指定范圍內的隨機符點數,兩個參數其中一個是上限,一個是下限。如果a > b,則生成的隨機數n: a <= n <= b。如果 a <b, 則
代碼如下:
b <= n <= a print random.uniform(10, 20) print random.uniform(20, 10)
結果(不同機器上的結果不一樣)
18.7356606526 #12.5798298022 random.randintrandom.randint()
的函數原型為:
代碼如下:
random.randint(a, b)
用於生成一個指定范圍內的整數。其中參數a是下限,參數b是上限,python隨機數生成
代碼如下:
n: a <= n <= bprint random.randint(12, 20)
生成的隨機數
n: 12 <= n <= 20 print random.randint(20, 20)
結果永遠是
代碼如下:
20 #print random.randint(20, 10)
該語句是錯誤的。下限必須小於上限。 以上的內容就是對python隨機數生成的實際操作的部分介紹。
⑽ 用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