«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему мои случайные числа одинаковы в пределах итераций цикла?

Почему мои случайные числа одинаковы в пределах итераций цикла?

Опубликовано 12 ноября 2024 г.
Просматривать:278

Why are My Random Numbers the Same Within Loop Iterations?

Одинаковые случайные числа в итерациях цикла

В вашем цикле, который выполняется 15 раз, вы вызывали dh.setDoors() на каждой итерации. Внутри этой функции вызывается srand(time(0)) для инициации генерации псевдослучайных чисел. Однако последующие вызовы rand() внутри цикла приводят к постоянным значениям carSetter и решателя на протяжении всех 15 итераций.

Такое поведение происходит потому, что srand(time(0)) устанавливает начальное значение для генератора случайных чисел на основе в настоящее время. Поскольку цикл выполняется быстро, time(0) каждый раз возвращает одно и то же значение, что приводит к одной и той же последовательности псевдослучайных чисел.

Чтобы решить эту проблему, рекомендуется вызывать только srand(time(0) )) один раз в начале программы, обычно после такого процесса:

srand(time(0));

for (int i = 0; i 

Выполняя эту инициализацию только один раз, генератор псевдослучайных чисел будет генерировать уникальную последовательность чисел для каждой итерации цикла, давая ожидаемое изменение значений carSetter и решателя.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3