В чем разница между srand (1) и srand (0)

Я только что на собственном опыте выяснил, что srand (1) сбрасывает PRNG C (++) в состояние перед любым вызовом srand (как определено в ссылке ). Однако начальное значение 0 кажется чтобы сделать то же самое, или состояние перед любым вызовом srand , похоже, использует начальное число 0. В чем разница между этими двумя вызовами или по какой причине они делают одно и то же?

Например, этот код ( выполняется на Ideone )

#include 
#include 

int main() {
    for (int seed = 0; seed < 4; seed++ ) {
        printf( "Seed %d:", seed);
        srand( seed );
        for(int i = 0; i < 5; i++ )
            printf( "    %10d", rand() );
        printf( "\n");
    }
    return 0;
}

возвращает

Seed 0:    1804289383     846930886    1681692777    1714636915    1957747793
Seed 1:    1804289383     846930886    1681692777    1714636915    1957747793
Seed 2:    1505335290    1738766719     190686788     260874575     747983061
Seed 3:    1205554746     483147985     844158168     953350440     612121425

18
задан Yu Hao 10 February 2014 в 07:14
поделиться