Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 产生相同结果的随机数发生器_C++_Random - Fatal编程技术网

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))