Одинаковые случайные числа в итерациях цикла
В вашем цикле, который выполняется 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