【发布时间】:2012-11-27 16:58:33
【问题描述】:
例如,如果我在 GCC 和 MSVC 下使用完全相同的种子和参数实例化 std::mt19937,我应该得到相同的随机数序列吗?如果是这样,我假设这个属性通常适用于 mersenne_twister_engine,因为 mt19937 只是具有特定参数的一个。这不适用于 C 中的 rand()。看起来标准记录了针对特定代码应用的转换,所以我怀疑它应该总是相同的,但魔鬼在细节中......
【问题讨论】:
-
rand的不同实现使用不同的常量,因此它们永远不会匹配。维基百科包含一个方便的列表:en.wikipedia.org/wiki/… -
@MarkRansom:允许不同的实现对 rand() 使用完全不同的算法,常量除外。
-
“允许使用”,当然。在实践中,它们似乎都是一样的。
标签: c++ random c++11 standards