python不重復的隨機數
Ⅰ python中怎麼設置隨機產生數字
題主你好,
python中random模塊的randint函數可以產生隨機函數:
希望可以幫到題主,歡迎追問.
Ⅱ python不重復隨機數數列
不一定是最合適的,不過應該能滿足你的要求。
import random as rd
n=int(input())#產生多少個隨機數
ls=[]
while len(ls)<n:
縮進a=rd.randint(0,100)
縮進if not(a in ls):ls.append(a)
print(ls)
Ⅲ 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生成隨機的且不重復的整數
v假如你排列的是個數組{1,2,3,4,5}
列數假如也是5 也就是5*5的矩陣
然後讓5個數組都隨機生成 然後排序
如果兩個臨近數據相同或相近 這兩個數據就是挨著的好像這樣:
0:{1,2,3,4,5}
1:{2,3,4,5,1}
2:{2,3,5,1,4}
3:{2,3,5,1,4}
4:{2,3,5,4,1}
那麼生成完之後就可以經過一次遍歷 把鄰近兩個進行比較
如果相同就重新生成一個 或者先標記 之後再去
Ⅳ 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 生成100個介於0~999之間的隨機數,提取序列中所有不重復元素
Ⅶ 如何用python生成滿足以下條件的隨機數
import random
r1, r2 = [], []
for i in range(50):
r1.append(random.randint(1, 10))
r2.append(random.randint(1, 10))
這個是2組50個,范圍1-10,你指定的范圍後面沒顯示出來。
如果你要的是沒有重復的:
import random
r1 = random.sample(range(1, 101), 50)
r2 = random.sample(range(1, 101), 50)
這個是2組50個,范圍1-100,沒有重復的。
Ⅷ python如何一次性取出多個隨機數
Python內置的函數一次只能生成一個隨機數,然而你可以方便地使用表理解(list comprehension)一次性生成多個隨機數。示例的代碼如下:
importrandom
[random.randint(0,100)for_inrange(10)]
#[57,93,22,55,41,64,47,32,93,61]
range函數輸入不同的值,可以設置需要生成隨機數的個數,上面的例子中生成了10個隨機數。
Ⅸ 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如何隨機選取n個不同的數字
python隨機選取n個不同的數字的方法:
1、使用「import random」導入random包
2、通過for語句循環執行n次「random.randint()」語句獲取n個隨機數並將隨機數輸入到列表中
n=10示例如下:
3、用set函數去重就可以了
完整代碼:
更多Python知識,請關註:Python自學網!!