999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Python五種“隨機抽獎”方法

2021-07-07 06:32:07牟曉東
電腦報 2021年16期
關鍵詞:排序

牟曉東

“隨機抽獎”例題:假設要從10000個人中隨機抽取出10人作為“中獎者”,每人對應一個0-9999中的整數,要求使用Python編程按從小到大的順序輸出中獎者數字代號。類似的“隨機抽獎”程序一般均需要先導入random(隨機)模塊,然后借助其中的randint()、shuffle()和sample()等函數進行隨機數的選取,最后使用列表或集合對數據進行存儲、排序和輸出。

法1:randint()生成隨機整數后進行in成員運算判斷

首先,通過“import random”導入random模塊(下同);接著,建立空列表“my_list1 = []”;建立while循環結構,判斷條件為“len(my_list1) <= 10”,即列表my_list1中元素的個數達到10為止(通過len()檢測列表的長度);在循環體中,第一條語句為“x = random.randint(0,9999)”,變量x取值為0-9999中的隨機某個整數(包括0和9999);條件判斷語句“if x not in my_list1”的作用是,查看生成的隨機數x是否在列表my_list1中,防止多次生成的隨機數中有重復值出現;如果不重復,則使用append()方法將x追加到列表my_list1中:“my_list1.append(x)”;當循環結束時,列表my_list1中就會保存有10個0-9999間的不重復數據。最后,通過sorted()函數對列表my_list1進行默認參數排序(升序):“my_list2 = sorted(my_list1)”,得到的列表my_list2就是從小到大順序中獎號碼,再使用print()輸出結果即可。

運行程序,得到了10個“中獎”號碼(如圖1)。

法2:randint()生成隨機整數后存入集合“去重”

與法1類似,只不過是使用集合而非列表來存儲生成的隨機數:“my_set = set()”,建立一個空集合;接著,仍然是在while循環中,通過randint生成0-9999間的某隨機數,將它追加到集合my_set中。由于集合中的元素是不可能存在重復數據的,因此不必像法1中的列表元素進行in成員運算判斷,相當于直接進行了“去重”操作。循環結束后,仍然是使用sorted()函數進行排序并保存至列表my_list中,進行print打印輸出(如圖2)。

法3:shuffle()隨機排序后進行“切片”

首先建立列表my_list1,其值為“list(range(10000))”,通過list()將0至9999共10000個數據保存至列表my_list1中;接著使用random中的shuffle(),將列表my_list1中的數據進行隨機排序:“random.shuffle(my_list1)”;然后對列表my_list1進行切片操作,任意截取出10個數據,比如“my_list1[:10]”是指從索引的第0個切至第9個(當然也可以使用“my_list2 = my_list1[99:109]”,意思是從第99個切至第109個),將它們存入列表my_list2中;仍然是使用sorted()函數進行排序并保存至第3個列表my_list3中,進行print打印輸出(如圖3)。

法4:sample()隨機多個“取樣”

Random中的sample()功能是從序列中隨機多個“取樣”。首先建立列表my_list1,其值為從0-9999中隨機抽取10個不重復的數據:“my_list1 = random.sample(range(10000),10)”;然后就可以使用sorted()函數進行排序,將結果保存至列表my_list2中,最后進行print打印輸出(如圖4)。

法5:numpy中的random.choice()隨機項提取

numpy中有個random.choice(),可以隨機從指定列表中提取若干個元素。首先,通過“import numpy as np”導入numpy;接著建立列表my_list1,存儲的數據是0-9999共10000個數據:“my_list1 = list(range(10000))”;建立列表my_list2,值為從列表my_list1中隨機提取10個不重復的數據:“my_list2 = np.random.choice(my_list1,10,replace=False)”,其中的參數“replace=False”即為控制隨機數“不重復”。最后,使用sorted()函數進行排序并保存至第3個列表my_list3中,進行print打印輸出即可(如圖5)。

小結:抽獎就是獲取不重復的隨機數的問題,要解決這個問題Python有多種函數和算法可以選擇,體會其中的區別后你可以合理運用在其他實際應用中。

猜你喜歡
排序
排排序
排序不等式
作者簡介
名家名作(2021年9期)2021-10-08 01:31:36
作者簡介
名家名作(2021年4期)2021-05-12 09:40:02
作者簡介(按文章先后排序)
名家名作(2021年3期)2021-04-07 06:42:16
恐怖排序
律句填空排序題的備考策略
節日排序
刻舟求劍
兒童繪本(2018年5期)2018-04-12 16:45:32
作者簡介(按文章先后排序)
名家名作(2017年2期)2017-08-30 01:34:24
主站蜘蛛池模板: 制服丝袜在线视频香蕉| 国产又爽又黄无遮挡免费观看| 中文字幕日韩欧美| 欧美成人手机在线视频| 久久不卡国产精品无码| 午夜免费小视频| 欧美中文字幕无线码视频| 四虎永久免费地址| 久久成人18免费| 又猛又黄又爽无遮挡的视频网站| 亚洲欧美日韩中文字幕在线一区| 91蜜芽尤物福利在线观看| 欧美另类图片视频无弹跳第一页 | 国语少妇高潮| 18禁黄无遮挡网站| 欧美狠狠干| 青青青国产视频| 一区二区偷拍美女撒尿视频| 国产高清在线观看91精品| 高清免费毛片| 国产成人免费手机在线观看视频| 东京热一区二区三区无码视频| 亚洲一区无码在线| 国产视频一二三区| 亚洲人成影视在线观看| 特级精品毛片免费观看| 久久网综合| 国产天天射| 国产高清不卡| 亚洲成人福利网站| 久久久久青草线综合超碰| 一级黄色网站在线免费看| 人妻中文久热无码丝袜| 试看120秒男女啪啪免费| 国产91小视频| 中文字幕中文字字幕码一二区| 美女高潮全身流白浆福利区| 亚洲第一区在线| 国产精品综合久久久| 亚洲国产亚综合在线区| 在线中文字幕网| 2021国产在线视频| 东京热高清无码精品| 丁香六月激情婷婷| 亚洲—日韩aV在线| 中文字幕无码中文字幕有码在线| 国产自无码视频在线观看| 亚洲成人网在线观看| www.亚洲一区| 欧美一级在线看| 国产成人91精品| 精品国产aⅴ一区二区三区| 欧美一级99在线观看国产| 欧美日韩动态图| 中文字幕调教一区二区视频| 国产高潮视频在线观看| 国产麻豆精品手机在线观看| 久久精品国产电影| 欧美一区二区人人喊爽| 日韩专区第一页| 成人伊人色一区二区三区| 国产无码性爱一区二区三区| 亚洲欧洲一区二区三区| 久久天天躁狠狠躁夜夜2020一| 性69交片免费看| 国产一区二区三区在线观看视频| 日韩精品视频久久| 91破解版在线亚洲| 亚洲人成网站色7799在线播放| 国产亚洲精品在天天在线麻豆| 国产一区自拍视频| 18禁色诱爆乳网站| 四虎影视库国产精品一区| 久久久久亚洲AV成人网站软件| 精品国产电影久久九九| 91精品国产自产91精品资源| 国内丰满少妇猛烈精品播 | 欧美日韩国产成人在线观看| 国产精品网拍在线| 国产成人91精品| 国产日韩AV高潮在线| 爱色欧美亚洲综合图区|