我一直想知道在32位变种中使用mt19937_64(例如在boost或c ++ 11中)的优势是什么?
感谢。
答案 0 :(得分:2)
它有一个更大的种子,允许更多不同的伪随机序列。从本质上讲,这意味着您可以添加更多随机性。它会产生64位数字,因此您可以一次获得更多伪随机数。并且,它是使用64位操作实现的,因此在64位计算机上可能会更快,而在32位计算机上则会更慢。
两者都包含相同数量的总状态,64×312 = 19968位,因此序列在这个意义上是同样可预测的。如果您想要更多状态,可以使用std::mersenne_twister_engine
自行参数化。