代码示例:
#include <iostream>
#include <random>
using namespace std;
int main()
{
mt19937 generator(0);
uniform_int_distribution<int> distr(0, 100);
for(auto i = 0; i < 10; ++i)
{
cout << distr(generator) << "\n";
}
}
此代码在 Mac 和 Windows 上产生不同的数字,但替换uniform_int_distribution
with uniform_real_distribution
修复了该问题,并且生成的序列在两个平台上都是相同的。
为什么会出现这种情况?
未指定分布算法,不同的实现可能会产生不同的结果。
(该标准唯一指定的是原始随机位引擎;those产生可预测的结果。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)