Python編程實現(xiàn)生成特定范圍內(nèi)不重復(fù)多個隨機數(shù)的2種方法
本文實例講述了Python編程實現(xiàn)生成特定范圍內(nèi)不重復(fù)多個隨機數(shù)的2種方法。分享給大家供大家參考,具體如下:
在近期進行的一個實驗中,需要將數(shù)據(jù)按一定比例隨機分割為兩個部分。這一問題的核心其實就是產(chǎn)生不重復(fù)隨機數(shù)的問題。首先想到的遞歸的方法,然后才發(fā)現(xiàn)Python中居然已經(jīng)提供了此方法的函數(shù),可以直接使用。具體代碼如下:
#生成某區(qū)間內(nèi)不重復(fù)的N個隨機數(shù)的方法 import random; #1、利用遞歸生成 resultList=[];#用于存放結(jié)果的List A=1; #最小隨機數(shù) B=10 #最大隨機數(shù) COUNT=10 #生成隨機數(shù)的遞歸數(shù)學(xué),參數(shù)counter表示當(dāng)前準(zhǔn)備要生成的第幾個有效隨機數(shù) def generateRand(counter): tempInt=random.randint(A,B); # 生成一個范圍內(nèi)的臨時隨機數(shù), if(counter<=COUNT): # 先看隨機數(shù)的總個數(shù)是不是夠了,如果不夠 if(tempInt not in resultList): # 再檢查當(dāng)前已經(jīng)生成的臨時隨機數(shù)是不是已經(jīng)存在,如果不存在 resultList.append(tempInt); #則將其追加到結(jié)果List中 counter+=1;# 然后將表示有效結(jié)果的個數(shù)加1. 請注意這里,如果臨時隨機數(shù)已經(jīng)存在,則此if不成立,那么將直接執(zhí)行16行,counter不用再加1 generateRand(counter); # 不管上面的if是否成立,都要遞歸。如果上面的臨時隨機數(shù)有效,則這里的conter會加1,如果上面的臨時隨機數(shù)已經(jīng)存在了,則需要重新再生成一次隨機數(shù),counter不能變化 generateRand(1);#調(diào)用遞歸函數(shù),并給當(dāng)前要生成的有效隨機數(shù)的個序號置為1,因為要從第一個開始嘛 print(resultList)# 打印結(jié)果 #2、利用Python中的randomw.sample()函數(shù)實現(xiàn) resultList=random.sample(range(A,B+1),COUNT); # sample(x,y)函數(shù)的作用是從序列x中,隨機選擇y個不重復(fù)的元素。上面的方法寫了那么多,其實Python一句話就完成了。 print(resultList)# 打印結(jié)果
結(jié)果:
PS:這里再為大家提供兩款相關(guān)在線工具供大家參考使用:
在線隨機數(shù)字/字符串生成工具:
http://tools.jb51.net/aideddesign/suijishu
高強度密碼生成器:
http://tools.jb51.net/password/CreateStrongPassword
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計有所幫助。
相關(guān)文章
Pandas中DataFrame數(shù)據(jù)刪除詳情
這篇文章主要以介紹的是Pandas中DataFrame的數(shù)據(jù)刪除的相關(guān)資料,主要使用drop、del方式,需要的朋友可以參考下面文章的具體內(nèi)容2021-09-09pytorch中的model=model.to(device)使用說明
這篇文章主要介紹了pytorch中的model=model.to(device)使用說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05Python實現(xiàn)設(shè)置windows桌面壁紙代碼分享
這篇文章主要介紹了Python實現(xiàn)設(shè)置windows桌面壁紙,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下2015-03-03利用Python程序讀取Excel創(chuàng)建折線圖
這篇文章主要介紹了利用Python程序讀取Excel創(chuàng)建折線圖,文章通過圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09Python判斷一個list中是否包含另一個list全部元素的方法分析
這篇文章主要介紹了Python判斷一個list中是否包含另一個list全部元素的方法,結(jié)合實例形式對比分析了Python針對列表list元素包含關(guān)系的相關(guān)轉(zhuǎn)換、判斷操作技巧,需要的朋友可以參考下2018-12-12