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

Может ли кто-нибудь указать, что на самом деле идет не так в моей программе, и как небольшие изменения помогли мне получить лучший результат?

Ответы на вопрос(2)

Ваш ответ на вопрос