【发布时间】:2012-02-01 23:54:17
【问题描述】:
我正在尝试找到一个 RNG 来生成伪随机位流。我发现 Mersenne Twister (MT19937) 是一种广泛使用的 RNG,可以生成良好的 32 位无符号整数,并且已经完成实现以生成明显良好的双精度浮点数(生成 53 位整数)。但我似乎没有找到任何关于它在某些方面表现良好的参考。
Marsaglia 表达了对 Mersenne Twister 随机性的一些担忧,这让我怀疑使用它。
有人知道 Mersenne Twister 是否有用于生成伪随机位的显着偏差吗?如果是这样,有没有人知道一个好的伪随机位生成器?
【问题讨论】:
-
如果没有播种或抓取数字等外部资源,这可能没问题。它的计算速度也非常快,这是一个奖励。我工作过的公司一直在使用它,所以也有你的认可。你为什么担心它的随机性?
-
IIRC,它不应该用于统计/高安全性的东西,但对于大多数用途来说足够快且相当随机。 (虽然,显然有 better PRNGs 更快,根据维基百科文章... IIRC。)它的初始值更接近 0,但经过一堆迭代后,它是相当随机的。
-
@muntoo MWC 对位有偏见,所以我不能使用它。
-
@MitchWheat 对于蒙特卡洛来说,什么是好的 RNG?
-
我想修改我的评论:梅森捻线机不适合加密目的,但适合蒙特卡洛。