使用mt19937_64比其32位变体有什么优势?

时间:2014-03-21 13:05:59

标签: c++11 prng

我一直想知道在32位变种中使用mt19937_64(例如在boost或c ++ 11中)的优势是什么?

感谢。

1 个答案:

答案 0 :(得分:2)

它有一个更大的种子,允许更多不同的伪随机序列。从本质上讲,这意味着您可以添加更多随机性。它会产生64位数字,因此您可以一次获得更多伪随机数。并且,它是使用64位操作实现的,因此在64位计算机上可能会更快,而在32位计算机上则会更慢。

两者都包含相同数量的总状态,64×312 = 19968位,因此序列在这个意义上是同样可预测的。如果您想要更多状态,可以使用std::mersenne_twister_engine自行参数化。