Когда я запускаю свою функцию, значения x
и y
остаются неизменными при каждом запуске. Я не уверен, что неправильно использую default_random_engine или нет. Как я могу получить значения x
и y
с использованием dist(engine)
для рандомизации и не получения одинакового результата каждый раз, когда программа выполняется?default_random_engine не является случайным значением для меня
ответ
«Семя» - это нечто, обеспечивающее генератор псевдослучай, с его «случайностью». Если вы инициализируете его одним и тем же семенем, вы получите тот же «случайный» шаблон.
Здесь вы, вероятно, все время проходите одно и то же семя.
Может быть, вы должны определить свою функцию, как это вместо:
long double fn(long reps, default_random_engine & engine)
Объявите один экземпляр вашего генератора случайных чисел при запуске программы, и семя его раз со значением, которое всегда будет отличаться когда запускается ваша программа (например системное время). Затем передайте генератор в любые функции, требующие генерации случайных чисел.
Итак, если бы я хотел передать семена 1-10 через генератор, как бы я это сделал? – Tyler
Возможно, я неправильно понял ваш вопрос? Первоначально он выглядел так, будто вы * не хотели того же семени. Вы говорите, что получаете одну и ту же последовательность независимо от того, какое семя вы используете? Или вы просто хотите использовать 10 разных семян, но чтобы они были разными при каждом запуске программы? – paddy
Извините, может быть, неясно. Я хочу использовать 10 разных семян, в частности 1-10. – Tyler
Забыть о 'default_random_engine', его включение в стандарт было ошибкой. Вместо этого используйте 'mt19937' или' mt19937_64'. –
Показать код. Без этого невозможно сказать, неправильно ли вы используете default_random_engine или нет. –