【发布时间】:2014-02-22 02:18:34
【问题描述】:
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 位平台上获得好的随机数?还是没关系?
【问题讨论】:
-
您在 64 位平台上运行,但您需要 64 位 randoms 吗?如果不是(您将它们用于一些有限模数,这本身就是一个错误,因为您应该使用分发类来代替),那么就不需要带大锤来驱动图钉。
-
我将 mt19937 包装在分发类中。这是否意味着无关紧要?
-
仅仅因为您在 64 位平台上并不意味着您所做的一切都需要 64 位。这完全取决于您在这种情况下是否需要 64 位。如果您需要 64 位随机性,请继续使用 64 位版本。如果不这样做,请使用 32 位版本。忘记您的计算机是 32 位还是 64 位。
-
@SideshowBob 如果 mt19937 的结果为您正在使用的发行版提供了适当的随机数,则无需使用 64 位版本。同样,只有在需要 64 位随机数(0...9223372036854775807 中的数字)时才需要它。
-
鉴于 boost 推荐 docs 默认情况下推荐使用 mt19937,那么我只能假设它适用于它的所有分发类。