Provided by: manpages-pt-dev_20040726-4_all bug

NAME

       random, srandom, initstate, setstate - random number generator.

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 numbers 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 srandom() with the same seed value.  If no
       seed value is provided, 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  provides  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 initstate() or setstate().  state must first
       have been initialized 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)