###

###

###

###

###

###

###

###

###

    RAND(3)             Linux Programmer's Manual             RAND(3)

    NAME
           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,  1990 (1st ed, p. 207)), the following comments are
           made:
                  "If you want to generate a random integer between 1
                  and 10, you should always do it by

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

                  and never by anything resembling

                         j=1+((int) (1000000.0*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
           issues in Chapter 7 (Random Numbers).

    GNU                        18 May 1995                          1

    RAND(3)             Linux Programmer's Manual             RAND(3)

           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, srandom, initstate, setstate,

###

    GNU                        18 May 1995                          2

Top | Master Index | Keywords | Functions

This manual page was brought to you by mjl_man V-2.0