簡體   English   中英

Mersenne Twister 與 Mersenne Twister 64 位

[英]Mersenne Twister vs Mersenne Twister 64 bit

Boost 提供 mt19937 和 mt19937_64 http://www.boost.org/doc/libs/1_55_0/doc/html/boost_random/reference.html#boost_random.reference.generators

困惑 - 我是否必須使用 64 位版本(根據上述頁面的性能要差得多)才能在 64 位平台上獲得良好的隨機數? 還是沒關系?

這是一篇很老的帖子,但這里有一種誤解,我想澄清一下。 Mersenne Twister 內部產生整數狀態。 它產生一系列隨機整數值(可以評估整數中每個單個位的隨機性)。 通常你把這個整數輸出轉換成浮點數——隱藏這個事實。

如果 boost 提供 _64 位版本,這僅意味着內部狀態是 64 位的整數,而不是 32 位的標准整數。 這是一個重要的區別,因為在 64 位版本中必須保證兩倍位數的隨機性。 這實際上很昂貴,而且速度要慢得多。 如果您將從中受益,這在很大程度上取決於您的問題。 這是可能的——由於隨機數序列的質量差導致的問題通常被低估了很多。 Mersenne Twister 無論如何都不是一個出色的隨機數生成器。

還有其他隨機數生成器甚至具有 128、256 或 512 位內部整數。 我不知道更多,但這當然是可能的。

這里的重要說明是:這與您的硬件系統/操作系統是 32 位或 64 位(或其他任何東西)完全無關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM