Функция srand в C ++
Этот код
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ()
{
printf ("First number: %d\n", rand() % 100);
srand ( time(NULL) );
printf ("Random number: %d\n", rand() % 100);
srand ( 1 );
printf ("Again the first number: %d\n", rand() %100);
return 0;
}
имеет следующий вывод:
First number: 41
Random number: 13
Again the first number: 41
Существует также следующее правило:
Две разные инициализации с одним и тем же начальным числом дают команду псевдослучайному генератору генерировать одинаковую последовательность результатов для последующих вызовов rand в обоих случаях.
Я понимаю слова, но я просто не понимаю сам метод. Почему он вернул 41 снова? Является ли это случайным или должен возвращать один и тот же результат в каждом случае в соответствии с этим кодом?