欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁講述Python隨機數(shù)如何生成模塊random

2017-12-20 10:10:39 1932瀏覽

        相信我們大家都看過不同的Python隨機數(shù)如何生成模塊random的方式,每個Python開發(fā)工程師都耳熟能詳,但是具體的是什么?今天就讓我們扣丁學堂為你詳細講解。



       一、概述

       random模塊用于生成偽隨機數(shù)之所以稱之為偽隨機數(shù),是因為真正意義上的隨機數(shù)(或者隨機事件)在某次產(chǎn)生過程中是按照實驗過程中表現(xiàn)的分布概率隨機產(chǎn)生的,其結果是不可預測的,是不可見的。而計算機中的隨機函數(shù)是按照一定算法模擬產(chǎn)生的,其結果是確定的,是可見的。我們可以這樣認為這個可預見的結果其出現(xiàn)的概率是100%。所以用計算機隨機函數(shù)所產(chǎn)生的“隨機數(shù)”并不隨機,是偽隨機數(shù)。計算機的偽隨機數(shù)是由隨機種子根據(jù)一定的計算方法計算出來的數(shù)值。所以,只要計算方法一定,隨機種子一定,那么產(chǎn)生的隨機數(shù)就是固定的。只要用戶或第三方不設置隨機種子,那么在默認情況下隨機種子來自系統(tǒng)時鐘。

   

       Python的這個庫在底層使用通用的算法,經(jīng)過長久的考驗,可靠性沒得說,但絕對不能用于密碼相關的功能。


       二、基本方法

       random.seed(a=None,version=2)

初始化偽隨機數(shù)生成器。如果未提供a或者a=None,則使用系統(tǒng)時間為種子。如果a是一個整數(shù),則作為種子。

       random.getstate()

返回一個當前生成器的內部狀態(tài)的對象

      random.setstate(state)

傳入一個先前利用getstate方法獲得的狀態(tài)對象,使得生成器恢復到這個狀態(tài)。

       random.getrandbits(k)

返回一個不大于K位的Python整數(shù)(十進制),比如k=10,則結果在0~2^10之間的整數(shù)。

      三、針對整數(shù)的方法

      random.randrange(stop)

      random.randrange(start,stop[,step])等同于choice(range(start,stop,step)),但并不實際創(chuàng)建range對象。

      random.randint(a,b)

返回一個a<=N<=b的隨機整數(shù)N。等同于randrange(a,b+1)

       四、針對序列類結構的方法

      random.choice(seq)

從非空序列seq中隨機選取一個元素。如果seq為空則彈出IndexError異常。

      random.choices(population,weights=None,*,cum_weights=None,k=1)

3.6版本新增。從population集群中隨機抽取K個元素。weights是相對權重列表,cum_weights是累計權重,兩個參數(shù)不能同時存在。

      random.shuffle(x[,random])

隨機打亂序列x內元素的排列順序。只能針對可變的序列,對于不可變序列,請使用下面的sample()方法。

      random.sample(population,k)

從population樣本或集合中隨機抽取K個不重復的元素形成新的序列。常用于不重復的隨機抽樣。返回的是一個新的序列,不會破壞原有序列。要從一個整數(shù)區(qū)間隨機抽取一定數(shù)量的整數(shù),請使用sample(range(10000000),k=60)類似的方法,這非常有效和節(jié)省空間。如果k大于population的長度,則彈出ValueError異常。

       五、真值分布

       random模塊最高端的功能其實在這里。

       random.random()

返回一個介于左閉右開[0.0,1.0)區(qū)間的浮點數(shù)

       random.uniform(a,b)

返回一個介于a和b之間的浮點數(shù)。如果a>b,則是b到a之間的浮點數(shù)。這里的a和b都有可能出現(xiàn)在結果中。

       random.triangular(low,high,mode)

返回一個low<=N<=high的三角形分布的隨機數(shù)。參數(shù)mode指明眾數(shù)出現(xiàn)位置。

      random.betavariate(alpha,beta)

β分布。返回的結果在0~1之間

      random.expovariate(lambd)

指數(shù)分布

      random.gammavariate(alpha,beta)

伽馬分布

      random.gauss(mu,sigma)

高斯分布

      random.lognormvariate(mu,sigma)

對數(shù)正態(tài)分布

      random.normalvariate(mu,sigma)

正態(tài)分布

       random.vonmisesvariate(mu,kappa)

卡帕分布

       random.paretovariate(alpha)

帕累托分布

       random.weibullvariate(alpha,beta)

      六、可選擇的生成器

      classrandom.SystemRandom([seed])

使用os.urandom()方法生成隨機數(shù)的類,由操作系統(tǒng)提供源碼,不一定所有系統(tǒng)都支持

       想要學習熱門語言Python一定要選擇專業(yè)的培訓機構,扣丁學堂成立多年,一直秉承用良心做教育的理念,不僅有專業(yè)的老師和與時俱進的課程體系,還有大量的Python視頻教程供學員觀看學習,想要在2018獲得高薪的小伙伴們抓緊時間行動吧??鄱W堂Python技術交流群:279521237。


扣丁學堂微信公眾號


【關注微信公眾號獲取更多學習資料】


查看更多關于“Python開發(fā)資訊的相關文章>>

標簽: python培訓 Python視頻教程 Python開發(fā)工程師

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部