C ++ генерирует случайные числа в цикле, используя default_random_engine
Недавно я пробовал программу для генерации случайных чисел в C ++ с использованиемrandom engines
определяется в#include<random>
, Моя программа выглядит следующим образом:
#include <iostream>
#include <random>
#include <chrono>
using namespace std;
int random (int lim)
{
default_random_engine dre (chrono::steady_clock::now().time_since_epoch().count());
uniform_int_distribution<> uid(1,lim);
return uid(dre);
}
int main()
{
for (int i=0;i<10;++i)
cout<<random(100)<<" ";
return 0;
}
Просто, определенно! Но когда я попробовал вывод, числа были менее случайными, как эти: -
66 95 95 96 96 96 96 96 97 97
Когда я немного изменил свою программу и объявилdefault_random_engine
какstatic
или сделал этоglobal
тогда мой вывод был правильным, как этот:
62 53 21 38 7 51 46 40 86 12
Может ли кто-нибудь указать, что на самом деле идет не так в моей программе, и как небольшие изменения помогли мне получить лучший результат?