如果你已經(jīng)了解偽隨機(jī)數(shù)(psudo-randomnumber)的原理,那么你可以使用如下:
random.seed(x)
來(lái)改變隨機(jī)數(shù)生成器的種子seed。如果你不了解其原理,你不必特別去設(shè)定seed,Python會(huì)幫你選擇seed。
1)隨機(jī)挑選和排序
random.choice(seq)#從序列的元素中隨機(jī)挑選一個(gè)元素,比如random.choice(range(10)),從0到9中隨機(jī)挑選一個(gè)整數(shù)。
random.sample(seq,k)#從序列中隨機(jī)挑選k個(gè)元素
random.shuffle(seq)#將序列的所有元素隨機(jī)排序
2)隨機(jī)生成實(shí)數(shù)
下面生成的實(shí)數(shù)符合均勻分布(uniformdistribution),意味著某個(gè)范圍內(nèi)的每個(gè)數(shù)字出現(xiàn)的概率相等:
random.random()#隨機(jī)生成下一個(gè)實(shí)數(shù),它在[0,1)范圍內(nèi)。
random.uniform(a,b)#隨機(jī)生成下一個(gè)實(shí)數(shù),它在[a,b]范圍內(nèi)。
下面生成的實(shí)數(shù)符合其它的分布(你可以參考一些統(tǒng)計(jì)方面的書(shū)籍來(lái)了解這些分布):
random.gauss(mu,sigma)#隨機(jī)生成符合高斯分布的隨機(jī)數(shù),mu,sigma為高斯分布的兩個(gè)參數(shù)。
random.expovariate(lambd)#隨機(jī)生成符合指數(shù)分布的隨機(jī)數(shù),lambd為指數(shù)分布的參數(shù)。
此外還有對(duì)數(shù)分布,正態(tài)分布,Pareto分布,Weibull分布,可參考下面鏈接:
http://docs.python.org/library/random.html
假設(shè)我們有一群人參加舞蹈比賽,為了公平起見(jiàn),我們要隨機(jī)排列他們的出場(chǎng)順序。我們下面利用random包實(shí)現(xiàn):
importrandom
all_people=['Tom','Vivian','Paul','Liya','Manu','Daniel','Shawn']
random.shuffle(all_people)
fori,nameinenumerate(all_people):
print(i,':'+name)
以上內(nèi)容為大家介紹了Python中的random包,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。