我正在玩PRNGs(如Mersenne Twister和stdlib的rand()
函數),我想要一個很好的測試來幫助我確定PRNG產生的隨機數據的質量。 我已經計算出使用的的PRNG產生隨機數的Pi的價值,我覺得rand()
和梅森難題非常接近提供一個區別(我需要經過10個小數點審議?)。測試PRNG的質量
我對蒙特卡洛模擬沒有太多的想法;請讓我知道一些算法/應用程序(可能簡單但可以提供很好的推論),這將幫助我在質量方面區分它們。
編輯1:我沒注意過,但有一個類似的線程:How to test random numbers?
編輯2:我不能interprete NIST的結果,正如上文其中一條評論。我得到了這個想法,從random.org直觀地解釋模式(如果有的話),並且因爲它很簡單,所以我遵循這一點。我會很高興,如果有人能在我的測試過程中發表評論:
- 生成[0,1]使用蘭特()和MT1997
- 如果
(round(genrand_real1()/rand_0_1()))
然後紅色像素,否則黑 ñ隨機量
據我所知,這不是一個非常精確的解決方案,但如果這提供了一個合理的估計,那麼我可以用這個在當下生活。
我不太確定從**僞隨機數發生器**獲得任何**隨機數據** - 但我想你可以實現http://en.wikipedia.org/wiki/Fair_coin#Fair_results_from_a_biased_coin .. – Aprillion 2012-03-20 01:36:48
你是說因爲PRNG產生的價值是可以預測的嗎?謝謝 – Sayan 2012-03-20 01:40:54
是的,這就是區別 - 它只是提醒您檢查一下PRNG是否足夠適合您的應用程序,並且您不需要像[random.org]這樣的TRNG(http://random.org ) – Aprillion 2012-03-20 11:14:03