[英]How to test PRNG?
最近我為64位integer
(或long
integer
)實現了MersenneTwister。 是否有指南或如何測試PRNG的示例,以便我可以知道我的實現是否是足夠好的解決方案。 我特別感興趣的是如何驗證我的實現是否具有足夠好的均勻分布。
更具體地說,這與MersenneTwister相關聯的越多越好。
你不需要測試Mersenne Twister 算法 - 那些真正知道他們正在做什么的人一遍又一遍地做 - 你只需要測試你是否正確地實現了算法。
您可以訪問Mersenne Twister網站並獲取他們的測試結果 。 如果您生成與它們相同的輸出序列,則可能正確實現了算法。
請注意,MT站點具有專門用於64位計算機的鏈接以及用於32位和64位版本的不同測試輸出。
PRNG的標准測試電池是Diehard測試 。
最簡單的方法(如果它是真正的通用MT)將它與具有相同種子的已知良好的MT庫進行比較。
阿羅哈!
正如其他人所說 - 使用已知的答案測試向量進行算法。 如果您符合測試向量,您可以合理地確定您的發電機是否正常工作。
如果你真的想測試發電機。 使用Dieharder工具實現的DIEHARD測試++:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.