源**:lib / random.py
該模組為各種分布實現偽隨機數生成器。
對於整數,從範圍中有統一的選擇。對於序列,存在隨機元素的統一選擇,用於生成列表的隨機排列的函式,以及用於隨機抽樣而無需替換的函式。
在實在線,有計算均勻,正態(高斯),對數正態,負指數,伽馬和貝塔分布的函式。為了生成角度分布,可以使用von mises分布。
幾乎所有模組函式都依賴於基本函式random()
,它在半開放範圍[0.0,1.0]內均勻生成隨機浮點數。python使用mersenne twister作為核心生成器。它產生53位精度浮點數,週期為2 ** 19937-1。c中的底層實現既快又執行緒安全。mersenne twister是現存最廣泛測試的隨機數發生器之一。但是,完全確定性,它不適用於所有目的,並且完全不適合加密目的。
此模組提供的函式實際上是random.random
類的隱藏例項的繫結方法。您可以例項化自己的例項random
以獲取不共享狀態的生成器。
類random
也可以,如果你想用你自己設計的不同的基本發電機子類:在這種情況下,覆蓋random()
,seed()
,getstate()
,和setstate()
方法。可選地,新生成器可以提供getrandbits()
方法 - 這允許randrange()
在任意大範圍內產生選擇。
該random
模組還提供了systemrandom
使用系統函式os.urandom()
從作業系統提供的源生成隨機數的類。
警告
此模組的偽隨機生成器不應用於安全目的。有關安全性或加密用途,請參閱該secrets
模組。
也可以看看
m. matsumoto和t. nishimura,「mersenne twister:623維等分的均勻偽隨機數發生器」,acm transactions on modeling and computer simulation vol。2023年1月8日第1期。
具有長週期和相對簡單的更新操作的相容替代隨機數發生器的互補 - 乘法攜帶配方。
random.
seed
(a =無,版本= 2 )
初始化隨機數生成器。
如果乙個被省略或none
,當前系統時間被使用。如果作業系統提供隨機源,則使用它們而不是系統時間(os.urandom()
有關可用性的詳細資訊,請參閱函式)。
如果a是int,則直接使用。
對於版本2(預設值),astr
,bytes
或bytearray
物件將轉換為aint
並使用其所有位。
與版本1(提供用於從舊版本的python再現隨機序列)時,演算法str
和bytes
產生更窄的範圍種子。
版本3.2中已更改:已移至版本2方案,該方案使用字串種子中的所有位。
random.
getstate
()
返回捕獲生成器當前內部狀態的物件。可以傳遞此物件setstate()
以恢復狀態。
random.
setstate
(狀態)
狀態應該已經從以前的呼叫獲得getstate()
,並且setstate()
恢**生器的內部狀態,這是什麼的時候getstate()
被呼叫。
random.
getrandbits
(k )
返回乙個帶有k個隨機位的python整數。此方法隨mersennetwister生成器一起提供,其他一些生成器也可以將其作為api的可選部分提供。可用時,getrandbits()
可以randrange()
處理任意大範圍。
python random隨機生成密碼
隨機生成密碼 新建乙個字元列表,這個列表中的內容從前到後依次包含小寫字母 大寫字母 數字。形如 a z a z 0 9 建議 使用 生成該字元列表。分別輸入隨機數的種子x 整型 隨機生成的密碼個數n,每個密碼長度m。每個密碼包含的m個字元是從上述字元列表中隨機抽取 注意 本題不要用sample函式,...
Python random 隨機數生成
python random 隨機數生成 python中的random模組用於生成隨機數。下面介紹一下random模組中最常用的幾個函式。random.random 用於生成乙個0到1的隨機符點數 0 n 1.0 random.uniform的函式原型為 random.uniform a,b 用於生成...
Python random 隨機數生成
python中的random模組用於生成隨機數。下面介紹一下random模組中最常用的幾個函式。random.random 用於生成乙個0到1的隨機符點數 0 n 1.0 random.uniform的函式原型為 random.uniform a,b 用於生成乙個指定範圍內的隨機符點數,兩個引數其中...