日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python random包含尾部吗_你真的了解Python的random模块吗?

發(fā)布時(shí)間:2023/12/19 python 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python random包含尾部吗_你真的了解Python的random模块吗? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

用于生成偽隨機(jī)數(shù)

源碼位置: Lib/random.py(看看就好,千萬(wàn)別隨便修改)

真正意義上的隨機(jī)數(shù)(或者隨機(jī)事件)在某次產(chǎn)生過(guò)程中是按照實(shí)驗(yàn)過(guò)程中表現(xiàn)的分布概率隨機(jī)產(chǎn)生的,其結(jié)果是不可預(yù)測(cè)的,是不可見(jiàn)的。而計(jì)算機(jī)中的隨機(jī)函數(shù)是按照一定算法模擬產(chǎn)生的,其結(jié)果是確定的,是可見(jiàn)的。我們可以這樣認(rèn)為這個(gè)可預(yù)見(jiàn)的結(jié)果其出現(xiàn)的概率是100%。所以用計(jì)算機(jī)隨機(jī)函數(shù)所產(chǎn)生的“隨機(jī)數(shù)”并不隨機(jī),是偽隨機(jī)數(shù)。

計(jì)算機(jī)的偽隨機(jī)數(shù)是由隨機(jī)種子根據(jù)一定的計(jì)算方法計(jì)算出來(lái)的數(shù)值。所以,只要計(jì)算方法一定,隨機(jī)種子一定,那么產(chǎn)生的隨機(jī)數(shù)就是固定的。

只要用戶或第三方不設(shè)置隨機(jī)種子,那么在默認(rèn)情況下隨機(jī)種子來(lái)自系統(tǒng)時(shí)鐘。

Python的這個(gè)庫(kù)在底層使用通用的算法,經(jīng)過(guò)長(zhǎng)久的考驗(yàn),可靠性沒(méi)得說(shuō),但絕對(duì)不能用于密碼相關(guān)的功能。

一、基本方法

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

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

random.getstate()

返回一個(gè)當(dāng)前生成器的內(nèi)部狀態(tài)的對(duì)象

random.setstate(state)

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

random.getrandbits(k)

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

二、針對(duì)整數(shù)的方法

random.randrange(stop)

random.randrange(start, stop[, step])

等同于choice(range(start, stop, step)),但并不實(shí)際創(chuàng)建range對(duì)象。

random.randint(a, b)

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

三、針對(duì)序列類結(jié)構(gòu)的方法

random.choice(seq)

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

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

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

random.shuffle(x[, random])

隨機(jī)打亂序列x內(nèi)元素的排列順序。只能針對(duì)可變的序列,對(duì)于不可變序列,請(qǐng)使用下面的sample()方法。

random.sample(population, k)

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

四、真值分布

random模塊最高端的功能其實(shí)在這里。

random.random()

返回一個(gè)介于左閉右開(kāi)[0.0, 1.0)區(qū)間的浮點(diǎn)數(shù)

random.uniform(a, b)

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

random.triangular(low, high, mode)

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

random.betavariate(alpha, beta)

β分布。返回的結(jié)果在0~1之間

random.expovariate(lambd)

指數(shù)分布

random.gammavariate(alpha, beta)

伽馬分布

random.gauss(mu, sigma)

高斯分布

random.lognormvariate(mu, sigma)

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

random.normalvariate(mu, sigma)

正態(tài)分布

random.vonmisesvariate(mu, kappa)

卡帕分布

random.paretovariate(alpha)

帕累托分布

random.weibullvariate(alpha, beta)

五、可選擇的生成器

class random.SystemRandom([seed])

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

六、典型的例子

下面是生成一個(gè)包含大寫(xiě)字母A-Z和數(shù)字0-9的隨機(jī)4位驗(yàn)證碼的程序

下面是生成指定長(zhǎng)度字母數(shù)字隨機(jī)序列的代碼:

總結(jié)

以上就是本文關(guān)于你真的了解Python的random模塊的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

原文鏈接:http://www.cnblogs.com/feixuelove1009/p/6863153.html

總結(jié)

以上是生活随笔為你收集整理的python random包含尾部吗_你真的了解Python的random模块吗?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。