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, size_t 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() or be the result of a previous
       call of setstate().


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, or NULL on error.


ERRORS

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

       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)


Man(1) output converted with man2html