偽隨機數是什麼?偽隨機數生成方法有哪些?
在密碼學中,隨機數是非常重要的存在,而隨機數又被分為了偽隨機數和真隨機數,那麼偽隨機數是什麼意思?生成方法有哪些?以下是詳細的內容介紹。
偽隨機數是什麼意思?
偽隨機數是用確定性的演算法計算出來自[0.1]均勻分佈的隨機數序列。並不真正的隨機,但具有類似於隨機數的統計特徵,如均勻性、獨立性等。在計算偽隨機數時,若使用的初值不變,那麼偽隨機數的數序也不變。偽隨機數可以用計算機大量生成,在模擬研究中為了提高模擬效率,一般採用偽隨機數代替真正的隨機數。模擬中使用的一般是迴圈週期極長並能透過隨機數檢驗的偽隨機數,以保證計算結果的隨機性。
偽隨機數生成方法有幾種?
1、直接法,根據分佈函式的物理意義生成。缺點是僅適用於某些具有特殊分佈的隨機數,如二項式分佈、泊松分佈。
2、逆轉法,假設U服從[0.1]區間上的均勻分佈,令X=F-1(U),則X的累計分佈函式(CDF)為F。該方法原理簡單、程式設計方便、適用性廣。
3、接受拒絕法,假設希望生成的隨機數的機率密度函式為f,則首先找到一個PDF為g的隨機數發生器與常數c,使得f(x)≤cg(x),然後根據接收拒絕演算法求解。由於演算法平均運算c次才能得到一個希望生成的隨機數,因此c的取值必須儘可能小。顯然,該演算法的缺點是較難確定g與c。
因此,偽隨機數生成器一般採用逆轉法,其基礎是均勻分佈,均勻分佈PRNG的優劣決定了整個隨機數體系的優劣。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2924988/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 預設的 rand.Intn () 生成的是偽隨機數隨機
- 偽隨機數C語言程式設計隨機C語言程式設計
- python生成隨機數、隨機字串Python隨機字串
- 幾種生成隨機數方法隨機
- JavaScript 生成隨機數JavaScript隨機
- 利用偽隨機碼降低EMI隨機
- Linux Shell 生成隨機數和隨機字串Linux隨機字串
- 怎麼用Python生成隨機數Python隨機
- numpy各種生成隨機數的方法隨機
- C# 生成隨機數,呼叫Random方法C#隨機random
- CSS中如何實現偽隨機?CSS隨機
- Matlab 隨機生成兩個數值之間的隨機數Matlab隨機
- matlab 生成隨機數序列Matlab隨機
- C++生成隨機數C++隨機
- 隨機數生成器隨機
- java隨機數生成原理Java隨機
- Python如何隨機生成1到100的隨機數?Python隨機
- 普林斯頓計算機教授炮轟“偽AI”:精心炮製的隨機數生成器罷了計算機AI隨機
- Python中如何生成隨機數?Python隨機
- 使用Math類生成隨機數隨機
- 更安全的隨機數生成隨機
- 隨機數隨機
- Python生成隨機數random模組Python隨機random
- Golang生成區間隨機整數Golang隨機
- 微信小程式生成隨機數微信小程式隨機
- 巧用物件,生成不重複隨機數物件隨機
- 當一個數不是數字時:隨機測試生成器有哪些好處?隨機
- 在指定範圍內生成隨機數隨機
- Solidity陷阱:以太坊的隨機數生成Solid隨機
- 如何生成指定分佈的隨機數隨機
- 生成真隨機數(綜合轉載)隨機
- C++11 隨機數生成器C++隨機
- 【java】隨機生成6位的數字Java隨機
- 一文搞懂Java隨機數生成Java隨機
- 生成指定區間的隨機小數隨機
- Java如何生成隨機數 - Random、ThreadLocalRandom、SecureRandomJava隨機randomthread
- 生成某個範圍的隨機數隨機
- 策劃解讀:關於“暴擊”的誤解與數值的“偽隨機”隨機