initstate

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
RANDOM(3)		  Linux Programmer’s Manual		    RANDOM(3)



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 num-
       ber 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	auto-
       matically 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	init-
       state()	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() 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	init-
	      state().

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				  2000-08-20			    RANDOM(3)