C ++ 11标准是否保证跨实现的相同种子的相同随机数?

时间:2012-11-27 16:58:33

标签: c++ random c++11 standards

例如,如果我在GCC和MSVC下使用完全相同的种子和参数实例化std::mt19937,我应该得到相同的随机数序列吗?如果是这样的话,我认为这个属性通常适用于mersenne_twister_engine,因为mt19937只是一个具有特定参数的属性。对于C中的rand(),情况并非如此。看起来标准文档是根据特定代码应用的转换,所以我怀疑它应该始终是相同的,但是魔鬼在细节中......

1 个答案:

答案 0 :(得分:22)

对于新的随机数引擎,是的,对于相同的种子和参数,您将在所有平台上获得相同的值序列。对于rand(),没有。您也没有随机数分布的保证,即使它们被输入相同的输入值序列。