Я только что на собственном опыте выяснил, что 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