Генерация рандомных чисел в C++
Здорова ребята.Я по поводу генерации рандомно случайных чисел.Мой вопрос заключается в этом:
#include<iostream>
#include<random>
using namespace std;
default_random_engine numbers;
uniform_int_distribution<int>distribution(0,100)
int main(){
int arr[10]
for(int i=0;i<10;i++){
arr[i]=distribution(numbers)
}
for(int i=0;i<10;i++){
cout<<arr[i]<<"\t";
}
return 0;
}
вроде бы все норм он у меня выводит рандомные числа, но есть одна проблема.Он у меня каждый раз выводит одинаковые числа, например при первой компиляции он у меня выводил допустим 22 13 99 45 23 66 90 91 9 2,при второй компиляции тоже выводит те же самые числа 22 13 99 45 23 66 90 91 9 2.Как это исправить?
Ответы (1 шт):
Автор решения: user7860670
→ Ссылка
Одни и те же числа выводятся так как используется одно и то же начальное состояние движка. Вместо этого следует инициализировать его каждый раз новым затравочным значением:
::std::random_device device{};
::std::default_random_engine engine{device()};