Функция 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 снова? Является ли это случайным или должен возвращать один и тот же результат в каждом случае в соответствии с этим кодом?

Ответы на вопрос(6)

Ваш ответ на вопрос