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

У меня есть цикл for , который выполняется 15 раз, с dh.setDoors () на каждой итерации.

setDoors вызывает srand (time (0)) , а затем всякий раз, когда требуется случайное число, он будет использовать, например, carSetter = rand ( )% 3 + 1 . В качестве альтернативы можно использовать decider = rand ()% 2 + 1 .

Обычно decider и carSetter используются по-разному, но я заподозрил проблему и распечатал carSetter и decider на каждой итерации. Вот что получилось:

Door 1 has car
Decider is 2
Door 1 has car
Decider is 2
Door 1 has car
Decider is 2
Door 1 has car
Decider is 2
Door 1 has car
Decider is 2
etc...

Значения «1» и «2» меняются, когда я запускаю его несколько раз, но остаются неизменными на протяжении 15 раз.

Поскольку цикл выполняется 15 раз, не должны ли carSetter и decider распечатывать разные случайные числа на каждой итерации?

Когда у меня нет ] srand (time (0)) , он работает, как ожидалось, но начального числа нет, поэтому каждый раз используется одна и та же последовательность «случайных» чисел, так что, вероятно, проблема с начальным значением?

5
задан Chris 12 February 2012 в 17:59
поделиться