rand

Syntax:

    #include <cstdlib>
    int rand( void );

The function rand() returns a pseudorandom integer between zero and RAND_MAX. An example:

     srand( time(NULL) );
     for( i = 0; i < 10; i++ )
       printf( "Random number #%d: %d\n", i, rand() );

Note: Do not use % (modulus) to limit the random numbers generated. The randomness is heavily reduced. Instead use this algorithm to generate a proper distribution of random numbers between 0 and another number:

    // note the float literals are important, otherwise the integers could
    // overflow when 1 is added.
    int randomNumber(int hi)  //the correct random number generator for [0,hi]
    {
       // scale in range [0,1)
       const float scale = rand()/float(RAND_MAX);
 
       // return range [0,hi]
       return int(scale*hi + 0.5); // implicit cast and truncation in return
    }

Related Topics: srand