从Mersenne Twister获得的数字中只取几位是否安全?

卢浮宫

我必须处理一名已经退休的员工生产的代码,而且我还涉及一些与随机数有关的怪异事物。在某些时候,他将PRNG返回的值向右移了10位,然后对该值使用掩码。

我已经在互联网上看到一些PRNG的随机性较差,并且它们生成的位数有点像最后一个,只是在1和0之间交替出现,但是我已经搜索了是否存在乱抛垃圾的现象Mersenne Twister,但我还没有找到。有人知道吗?

加利内特

通常,任何位都应该是随机的,这是梅森捻线机的属性。

但是(我不太了解MT)您可能在某些位之间存在长期依赖性。建议使用库函数来设置整数范围,而不是自己安排位,否则您永远都不知道它可能获得的复杂属性。

如果使用c ++ 11标准库,只需将std :: mt19937与std :: uniform_int_distribution一起使用

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章