C++ 产生相同结果的随机数发生器
我在使用随机头创建简单的随机数生成器时遇到问题C++ 产生相同结果的随机数发生器,c++,random,C++,Random,我在使用随机头创建简单的随机数生成器时遇到问题 #include <iostream> #include <random> using namespace std; int main() { random_device rd; //seed generator mt19937_64 generator{rd()}; //generator initialized with seed from rd uniform_int_distributio
#include <iostream>
#include <random>
using namespace std;
int main()
{
random_device rd; //seed generator
mt19937_64 generator{rd()}; //generator initialized with seed from rd
uniform_int_distribution<> dist{1, 6};
for(int i = 0; i < 15; i++)
{
int random = dist(generator);
cout << random << endl;
}
}
#包括
#包括
使用名称空间std;
int main()
{
随机_设备rd;//种子生成器
mt19937_64生成器{rd()};//已使用来自rd的种子初始化生成器
均匀分布区{1,6};
对于(int i=0;i<15;i++)
{
int random=dist(生成器);
cout以下是我最终得出的结论:
#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;
}
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
srand(时间(0));
默认随机引擎rd(rand());
mt19937_64生成器{rd()};//已使用来自rd的种子初始化生成器
均匀实分布距离{0,1};
对于(int i=0;i<15;i++)
{
双随机=距离(生成器);
cout@konaakira-头和头是不相交的,你可能会认为如果有统一的整数分布,浮点也必须有一个分布…你的问题可能是平台特定的。使用你的代码,我在Visual Studio 2017中每次都会得到不同的数。无法复制。我每次都得到不同的数。可能是重复你在这里想得太多了。只需执行mt19937\u 64生成器(时间(nullptr))
。