我无法使用随机标头创建一个简单的随机数生成器。
impossible
每次运行程序时,此代码都会生成相同的结果。我究竟做错了什么?还有一种方法可以修改此代码,使其生成0到1之间的浮点数吗?我不认为uniform_int_distribution会让我和我无法确定要使用哪个发行版。
编辑:在我的问题下面找到了一个可能的解决方案
答案 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))与来自随机头文件的引擎结合起来,并且它们的功能组合似乎产生了比我单独管理的随机感觉数字更好。请随时指出这种安排有任何问题。