rand, srand - random number generator.


SYNOPSIS

       #include <stdlib.h>

       int rand(void);

       void srand(unsigned int seed);


DESCRIPTION

       The   rand()  function  returns  a  pseudo-random  integer
       between 0 and RAND_MAX.

       The srand() function sets its argument as the seed  for  a
       new  sequence  of pseudo-random integers to be returned by
       rand().  These sequences are repeatable by calling srand()
       with the same seed value.

       If no seed value is provided, the rand() function is auto­
       matically seeded with a value of 1.


RETURN VALUE

       The  rand()  function  returns  a  value  between  0   and
       RAND_MAX.  The srand() returns no value.


NOTES

       The  versions of rand() and srand() in the Linux C Library
       use the same random number generator as random() and sran­
       dom(),  so the lower-order bits should be as random as the
       higher-order bits.  However, on older  rand()  implementa­
       tions,  the lower-order bits are much less random than the
       higher-order bits.

       In Numerical Recipes in C: The Art of Scientific Computing
       (William  H.  Press, Brian P. Flannery, Saul A. Teukolsky,
       William T.  Vetterling;  New  York:  Cambridge  University
       Press, 1992 (2nd ed., p. 277)), the following comments are
       made:
              "If you want to generate a random integer between 1
              and 10, you should always do it by using high-order
              bits, as in

                     j=1+(int) (10.0*rand()/(RAND_MAX+1.0));

              and never by anything resembling

                     j=1+(rand() % 10);

              (which uses lower-order bits)."

       Random-number generation is a complex topic.  The  Numeri­
       cal  Recipes  in  C book (see reference above) provides an
       excellent discussion of practical random-number generation


       For  a  more theoretical discussion which also covers many
       practical issues in depth, please see  Chapter  3  (Random
       Numbers) in Donald E. Knuth's The Art of Computer Program­
       ming, volume 2 (Seminumerical Algorithms), 2nd ed.;  Read­
       ing,  Massachusetts:  Addison-Wesley  Publishing  Company,
       1981.


CONFORMING TO

       SVID 3, BSD 4.3, ISO 9899


SEE ALSO

       random(3), srandom(3), initstate(3), setstate(3)


Man(1) output converted with man2html