我必须处理一名已经退休的员工生产的代码,而且我还涉及一些与随机数有关的怪异事物。在某些时候,他将PRNG返回的值向右移了10位,然后对该值使用掩码。
我已经在互联网上看到一些PRNG的随机性较差,并且它们生成的位数有点像最后一个,只是在1和0之间交替出现,但是我已经搜索了是否存在乱抛垃圾的现象Mersenne Twister,但我还没有找到。有人知道吗?
通常,任何位都应该是随机的,这是梅森捻线机的属性。
但是(我不太了解MT)您可能在某些位之间存在长期依赖性。建议使用库函数来设置整数范围,而不是自己安排位,否则您永远都不知道它可能获得的复杂属性。
如果使用c ++ 11标准库,只需将std :: mt19937与std :: uniform_int_distribution一起使用
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句