为什么 std::uniform_int_distribution 在不同系统上没有给出相同的答案?

2023-12-12

代码示例:

#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(使用前将#替换为@)

为什么 std::uniform_int_distribution 在不同系统上没有给出相同的答案? 的相关文章

随机推荐