我正在尝试找到一个 RNG 来生成伪随机位流。我发现 Mersenne Twister (MT19937) 是一种广泛使用的 RNG,它可以生成良好的 32 位无符号整数,并且已经实现了生成明显良好的 double float (生成 53 位整数)。但我似乎没有找到任何关于它在细节方面表现良好的引用。
Marsaglia表达了对 Mersenne Twister 随机性的一些担忧,这让我对使用它产生了怀疑。
有人知道 Mersenne Twister 是否有用于生成伪随机位的显着偏差吗?如果是这样,有人知道一个好的伪随机位生成器吗?
最佳答案
所有伪随机生成器都努力生成每位的高度不可预测性。目前,在您观察到 624 个值之前,无法以比随机机会更好的程度来预测梅森 Tornado 。
所有“X RNG 好不好”形式的问题都必须回答:“你用它做什么?” Meresene Twister 因其出色的频率分布而在模拟中取得了巨大成功。 在加密情况下,它完全没有任何值(value)。可以通过查看任何 624 个连续输出来识别内部状态。 Blum Blum Shub 在加密情况下非常强大,但在模拟中使用时运行速度慢得令人无法接受。
关于random - Mersenne Twister 是一个好的二元 RNG 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8720794/