Srand
srand
The pseudo-random number generator is initialized using the argument passed as seed.
For every different seed value used in a call to srand
, the pseudo-random number generator can be expected to generate a different succession of results in the subsequent calls to rand
.
Two different initializations with the same seed will generate the same succession of results in subsequent calls to rand
.
If seed is set to 1, the generator is reinitialized to its initial value and produces the same values as before any call to rand or srand
.
In order to generate random-like numbers, srand
is usually initialized to some distinctive runtime value, like the value returned by function time (declared in header <ctime>
). This is distinctive enough for most trivial randomization needs.
#include <iostream>
#include <cstdlib>
#include <ctime>
int main(int argc, const char * argv[]) {
printf ("First number: %d\n", rand()%100);
srand (time(0));
printf ("Random number: %d\n", rand()%100);
srand (1);
printf ("Again the first number: %d\n", rand()%100);
return 0;
}