python中如何實(shí)現(xiàn)簡(jiǎn)單的洗牌算法
在我們玩的牌類游戲中,通過(guò)洗牌算法的設(shè)計(jì),落在數(shù)組某個(gè)位置上的概率是相等的,那你知道如何使用python設(shè)計(jì)一個(gè)簡(jiǎn)單的洗牌算法嗎?其實(shí)實(shí)現(xiàn)很簡(jiǎn)單,使用random模塊shuffle方法即可實(shí)現(xiàn)洗牌算法,本文小編帶領(lǐng)大家設(shè)計(jì)一個(gè)簡(jiǎn)單的洗牌算法。
1、洗牌算法
算法思想就是從原始數(shù)組中隨機(jī)抽取一個(gè)新的數(shù)字到新數(shù)組中,其本質(zhì)是對(duì)數(shù)組元素進(jìn)行隨機(jī)重排。
數(shù)組中每個(gè)元素經(jīng)過(guò)洗牌算法后落在數(shù)組某個(gè)位置上的概率是相等的,洗牌算法在牌類游戲中非常有用。
2、洗牌算法的簡(jiǎn)單實(shí)現(xiàn)
random模塊shuffle方法實(shí)現(xiàn)洗牌算法
shuffle()方法:將列表的所有元素隨機(jī)排列
importrandom
defshuffel(lst):
l=len(lst)
ifl<=1:
returnlst
i=0
whilel>1:
p=int(random.random()*l)
lst[i],lst[i+p]=lst[i+p],lst[i]
i+=1
l-=1
returnlst
print(shuffel([1,2,2,3,3,4,5,10]))
以上就是python中使用random模塊shuffle方法實(shí)現(xiàn)洗牌算法的代碼操作,需要注意的是習(xí)方法返回空值,會(huì)影響原數(shù)組哦~更多Python學(xué)習(xí)教程請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。