随机数发生器产生相同的结果

时间:2018-04-15 07:15:18

标签: c++ random

我无法使用随机标头创建一个简单的随机数生成器。

impossible

每次运行程序时,此代码都会生成相同的结果。我究竟做错了什么?还有一种方法可以修改此代码,使其生成0到1之间的浮点数吗?我不认为uniform_int_distribution会让我和我无法确定要使用哪个发行版。

编辑:在我的问题下面找到了一个可能的解决方案

1 个答案:

答案 0 :(得分:0)

这是我最终想出来的:

#include <iostream>
#include <ctime>
#include <random>
using namespace std;

int main()
{


    srand(time(0));
    default_random_engine rd(rand());
    mt19937_64 generator{rd()}; //generator initialized with seed from rd
    uniform_real_distribution<double> dist{0,1};

    for(int i = 0; i < 15; i++)
    {

        double random = dist(generator);

        cout << fixed << random << endl;

    }

}

事实证明,你实际上可以将srand(time(0))与来自随机头文件的引擎结合起来,并且它们的功能组合似乎产生了比我单独管理的随机感觉数字更好。请随时指出这种安排有任何问题。