偽隨機數是什麼?偽隨機數生成方法有哪些?
在密碼學中,隨機數是非常重要的存在,而隨機數又被分為了偽隨機數和真隨機數,那麼偽隨機數是什麼意思?生成方法有哪些?以下是詳細的內容介紹。
偽隨機數是什麼意思?
偽隨機數是用確定性的演算法計算出來自[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 () 生成的是偽隨機數隨機
- 偽隨機數 pseudo random number隨機random
- C語言中的例子--偽隨機數C語言隨機
- matlab中的偽隨機數原理Matlab隨機
- 偽隨機數C語言程式設計隨機C語言程式設計
- 生成隨機整數方法隨機
- 生成隨機數隨機
- 幾種生成隨機數方法隨機
- python生成隨機數、隨機字串Python隨機字串
- [隨機數詳解]生成一個隨機數,生成指定範圍的隨機數及隨機陣列去重隨機陣列
- JavaScript 生成隨機數JavaScript隨機
- mysql生成隨機數MySql隨機
- python生成隨機數的方法Python隨機
- Python隨機數生成方法Python隨機
- 利用偽隨機碼降低EMI隨機
- Linux Shell 生成隨機數和隨機字串Linux隨機字串
- 隨機數生成器隨機
- java隨機數生成原理Java隨機
- python 隨機數生成Python隨機
- C++生成隨機數C++隨機
- numpy各種生成隨機數的方法隨機
- C# 生成隨機數,呼叫Random方法C#隨機random
- CSS中如何實現偽隨機?CSS隨機
- 怎麼用Python生成隨機數Python隨機
- Matlab 隨機生成兩個數值之間的隨機數Matlab隨機
- 用C語言的rand()和srand()產生偽隨機數的方法總結C語言隨機
- 微信小程式生成隨機數微信小程式隨機
- 更安全的隨機數生成隨機
- 使用Math類生成隨機數隨機
- matlab 生成隨機數序列Matlab隨機
- 無重複隨機數生成隨機
- PHP 生成更好的隨機數PHP隨機
- 在oracle 中生成隨機數Oracle隨機
- 隨機數隨機
- Python如何隨機生成1到100的隨機數?Python隨機
- iOS生成最大最小數之間隨機數iOS隨機
- Golang生成區間隨機整數Golang隨機
- Python生成隨機數random模組Python隨機random