Псевдослучайный генератор, такой как rand()
, - это просто математическая функция, которая принимает входной сигнал - начальное число - и выполняет с ним некоторую обработку.Это возвращает новое значение, которое это произвело и также устанавливает это как новое семя.В следующий раз он будет использовать это новое начальное значение.
Поскольку компьютеры являются детерминированными, каждый раз, когда вы вызываете rand()
с одним и тем же начальным значением, он будет выдавать одно и то же выходное значение.Вот почему это псевдо случайно.
В вашем примере вы использовали одно и то же начальное число дважды, потому что time(0)
возвращает время в секундах, и ваши два вызова функций произошли в течение одной и той же секунды (поскольку компьютеры работают довольно быстро).
Как говорили другие комментаторы, необходимо только один раз ввести довольно случайное значение (т. Е. Текущее время).