setstate.3.gz

RANDOM

NAME

random, srandom, initstate, setstate - random number generator

SYNOPSIS

#include <stdlib.h>
 long int random(void);

I void srandom(unsigned int seed );
I char *initstate(unsigned int seed , char * state , size_t n );
I char *setstate(char * state );

DESCRIPTION

The R 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 R srandom () function sets its argument as the seed for a new sequence of pseudo-random integers to be returned by R random (). These sequences are repeatable by calling R srandom () with the same seed value. If no seed value is provided, the R random () function is automatically seeded with a value of 1.
The R initstate () function allows a state array state to be initialized for use by R random (). The size of the state array n is used by R 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 R setstate () function changes the state array used by the R random () function. The state array state is used for random number generation until the next call to R initstate () or R setstate (). state must first have been initialized using R initstate () or be the result of a previous call of R setstate ().

RETURN VALUE

The R random () function returns a value between 0 and R RAND_MAX . The R srandom () function returns no value. The R initstate () and R 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 R initstate ().

CONFORMING TO

4.3BSD, POSIX.1-2001.

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.

SEE ALSO

rand(3), srand(3)