Обычно единственная причина, по которой вы получаете повторяющиеся числа, заключается в том, что вы используете srand
в цикле с тем же начальным значением (а time(0)
даст одинаковое значение в плотной петле).
Конечно, последовательность истинных случайных чисел может дать вам повторяющиеся числа. Даже тот, кто этого не делает, может дать вам один и тот же номер несколько раз, если вы плохо им манипулируете.
Например, rand() / 100000
может быть не очень хорошей вещью, если алгоритм склоняется к изменениям в нижнем конце возвращаемого значения, поскольку последовательность rand()
из 100000, 164534, 186410, 199999
даст вам 1, 1, 1, 1
(rand() % 100000
вполне может быть лучшим выбором в этом случае, если вы цените изменения между последовательным номером).
Конечно, не видя ваш реальный код, такие предположения, вероятно, лучшее, что мы можем сделать. Ваш лучший выбор, как и в большинстве отчетов о проблемах, это предоставить небольшой полный образец, который показывает проблему.