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

NAME
       random,  srandom, initstate, setstate - random number gen-
       erator.

SYNOPSIS
       #include <stdlib.h>

       long int random(void);
       void srandom(unsigned int seed);
       char *initstate(unsigned int seed, char *state, int n);
       char *setstate(char *state);

DESCRIPTION
       The random() function uses a non-linear additive  feedback
       random  number generator employing a default table of size
       31 long integers to return successive  pseudo-random  num-
       bers  in the range from 0 to RAND_MAX.  The period of this
       random  number  generator  is  very  large,  approximately
       16*((2**31)-1).

       The srandom() function sets its argument as the seed for a
       new sequence of pseudo-random integers to be  returned  by
       random().  These sequences are repeatable by calling sran-
       dom() with the same seed value.  If no seed value is  pro-
       vided,  the random() function is automatically seeded with
       a value of 1.

       The initstate() function allows a state array state to  be
       initialized  for  use  by random().  The size of the state
       array n is used by initstate() to decide how sophisticated
       a  random number generator it should use -- the larger the
       state array, the better the random numbers will be.   seed
       is  the  seed  for  the  initialization, which specifies a
       starting point for the random number  sequence,  and  pro-
       vides for restarting at the same point.

       The  setstate()  function  changes the state array used by
       the random() function.  The state array state is used  for
       random  number  generation  until  the  next call to init-
       state() or setstate().  state must first  have  been  ini-
       tialized using initstate().

RETURN VALUE
       The  random()  function  returns  a  value  between  0 and
       RAND_MAX.  The srandom() function returns no  value.   The
       initstate()  and  setstate() functions return a pointer to
       the previous state array.

ERRORS
       EINVAL A state array of less than 8 bytes was specified to
              initstate().

NOTES
       Current "optimal" values for the size of the state array n
       are 8, 32, 64, 128, and 256 bytes; other amounts  will  be
       rounded down to the nearest known amount.  Using less than
       8 bytes will cause an error.

CONFORMING TO
       BSD 4.3

SEE ALSO
       rand(3), srand(3)

GNU                       March 28, 1993                        1