Provided by: manpages-pt-dev_20040726-4_all

**NAME**

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

**SYNOPSIS**

#include<stdlib.h>longintrandom(void);voidsrandom(unsignedintseed);char*initstate(unsignedintseed,char*state,size_tn);char*setstate(char*state);

**DESCRIPTION**

Therandom()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 toRAND_MAX. The period of this random number generator is very large, approximately 16*((2**31)-1). Thesrandom()function sets its argument as the seed for a new sequence of pseudo-random integers to be returned byrandom(). These sequences are repeatable by callingsrandom()with the same seed value. If no seed value is provided, therandom()function is automatically seeded with a value of 1. Theinitstate()function allows a state arraystateto be initialized for use byrandom(). The size of the state arraynis used byinitstate()to decide how sophisticated a random number generator it should use — the larger the state array, the better the random numbers will be.seedis the seed for the initialization, which specifies a starting point for the random number sequence, and provides for restarting at the same point. Thesetstate()function changes the state array used by therandom()function. The state arraystateis used for random number generation until the next call toinitstate()orsetstate().statemust first have been initialized usinginitstate().

**RETURN** **VALUE**

Therandom()function returns a value between 0 and RAND_MAX. Thesrandom()function returns no value. Theinitstate()andsetstate()functions return a pointer to the previous state array.

**ERRORS**

EINVALA state array of less than 8 bytes was specified toinitstate().

**NOTES**

Current "optimal" values for the size of the state arraynare 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)