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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python 标准库学习】伪随机数生成库 — random

發布時間:2023/12/10 python 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python 标准库学习】伪随机数生成库 — random 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

歡迎加入 Python 官方文檔翻譯團隊:https://www.transifex.com/python-doc/


隨機函數在很多科學計算中都會用到,比如生成一系列隨機數來計算平均值、高斯分布、伽馬分布、貝塔分布、對數正態分布等。

幾乎所有模塊函數都依賴于基本函數 random() ,它在半開放區間 [0.0,1.0) 內均勻生成隨機浮點數。 Python 使用 Mersenne Twister 作為核心生成器。 它產生 53 位精度浮點數,周期為 219937-1 ,其在 C 中的底層實現既快又線程安全。 Mersenne Twister 是現存最廣泛測試的隨機數發生器之一。 但是,因為完全確定性,它不適用于所有目的,并且完全不適合加密目的。

random 模塊官方文檔:https://docs.python.org/3/library/random.html

random 模塊部分常用函數:

函數功能
random()返回一個在 [0.0, 1.0) 范圍內的隨機浮點數
uniform(a, b)在指定范圍 [a, b] 內返回一個隨機浮點數
randint(a, b)在指定范圍 [a, b] 內返回一個隨機整數
choice(seq)從非空序列 seq 中返回一個隨機元素
sample(population, k)返回在多個字符中(population)生成指定數量(k)的隨機字符
randrange(start, stop[, step])在指定范圍(start, stop) 內返回一個間隔為 step 的隨機整數,step 為可選參數
shuffle(x)將序列 x 隨機打亂位置
triangular(low, high, mode)返回三角形分布的隨機數,low、high 為返回值的上下限,mode 為中值
betavariate(alpha, beta)求 Beta 分布的隨機數,其中 alpha > 0、beta > 0,返回值的范圍介于 0 和 1 之間
expovariate(lambd)指數分布,lambd 是 1.0 除以所需的平均值,它應該是非零的
如果 lambd 為正,則返回值的范圍為 0 到正無窮大
如果 lambd 為負,則返回值的范圍為負無窮大到 0
gammavariate(alpha, beta)Gamma 分布,參數的條件是 alpha > 0 和 beta > 0
gauss(mu, sigma)高斯分布,mu 是平均值,sigma 是標準差
lognormvariate(mu, sigma)對數正態分布,mu 是平均值,sigma 是標準差,mu 可以是任何值,sigma 必須大于零
normalvariate(mu, sigma)正態分布,mu 是平均值,sigma 是標準差
vonmisesvariate(mu, kappa)馮·米塞斯分布(von Mises),mu 是平均角度,以弧度表示,介于 0 和 2 * pi 之間
kappa 是濃度參數,必須大于或等于零
如果 kappa 等于零,則該分布在 0 到 2 * pi 的范圍內減小到均勻的隨機角度
paretovariate(alpha)帕累托分布,alpha 是形狀參數
weibullvariate(alpha, beta)威布爾分布,alpha 是比例參數,beta 是形狀參數

常見函數應用舉例:

random.random()

生成一個在 0.0 <= x < 1.0 之間的浮點數

>>> import random # 導入 random 模塊 >>> random.random() # 調用 random() 方法 0.7811493181713127 # 隨機生成一個大于等于 0,小于 1 的浮點數

random.uniform(a, b)

在指定范圍 [a, b] 內獲取隨機浮點數

>>> import random >>> random.uniform(-5, 5) -4.117969777026395 >>> random.uniform(-10, -5) -8.257739458506384 >>> random.uniform(1.8, 9.2) 8.129467781976114

random.randint(a, b)

在指定范圍 [a, b] 內獲取隨機整數

>>> import random >>> random.randint(1, 20) 8

random.choice(seq)

從非空序列 seq 中返回一個隨機元素

>>> import random >>> random.choice('tomorrow') 'o' >>> random.choice(['python', 'c++', 'java']) 'java'

random.sample(population, k)

返回在多個字符中(population)生成指定數量(k)的隨機字符

>>> import random >>> random.sample('dsabkl2498sjdsa8asd7f0',5) ['f', '2', 'a', 's', 's']

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

在指定范圍內 (start, stop) 返回一個間隔為 step 的隨機整數,step 為可選參數

>>> import random >>> print(random.randrange(0, 10, 5)) 5 >>> print(random.randrange(0, 11, 5)) 10 >>> print(random.randrange(0, 10)) 7

random.shuffle(x)

將序列 x 隨機打亂位置

>>> a = [1, 2, 3, 4, 5] >>> random.shuffle(a) >>> a [2, 5, 4, 1, 3]

random.triangular(low, high, mode)

返回三角形分布的隨機數,返回的隨機浮點數 N 滿足 low <= N <= high,并且在這些邊界之間指定 mode,low 和 high 默認值為 0 和 1,mode 參數默認為邊界之間的中點,持續使用該函數,可以得到以 mode 為對稱點的隨機分布數據集(在圖上體現為一個三角形分布)

>>> import random >>> random.triangular() 0.3604089623206311 >>> random.triangular(0,10) 7.215758147092778 >>> random.triangular(0,10,15) 10.965963151355984

random.betavariate(alpha, beta)

求 Beta 分布,參數條件:alpha > 0,beta > 0,返回值介于 0 ~ 1 之間

>>> import random >>> random.betavariate(4, 9) 0.13445358577865857

總結

以上是生活随笔為你收集整理的【Python 标准库学习】伪随机数生成库 — random的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。