random man page on Xenix

Man page or keyword search:  
man Server   1130 pages
apropos Keyword Search (all sections)
Output format
Xenix logo
[printable version]

RANDOM(3)							     RANDOM(3)

NAME
       random,	srandom, initstate, setstate - better random number generator;
       routines for changing generators

SYNOPSIS
       long random()

       srandom(seed)
       int seed;

       char *initstate(seed, state, n)
       unsigned seed;
       char *state;
       int n;

       char *setstate(state)
       char *state;

DESCRIPTION
       Random 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 (2**31)−1.	The period  of
       this   random   number	generator   is	 very	large,	 approximately
       16*((2**31)−1).

       Random/srandom have (almost) the same calling sequence and  initializa‐
       tion properties as rand/srand.  The difference is that rand(3) produces
       a much less random sequence — in fact, the low dozen bits generated  by
       rand go through a cyclic pattern.  All the bits generated by random are
       usable.	For example, ``random()&01''  will  produce  a	random	binary
       value.

       Unlike srand, srandom does not return the old seed; the reason for this
       is that the amount of state information used is much more than a single
       word.   (Two other routines are provided to deal with restarting/chang‐
       ing random number generators).  Like rand(3), however, random  will  by
       default produce a sequence of numbers that can be duplicated by calling
       srandom with 1 as the seed.

       The initstate routine allows a state array, passed in as	 an  argument,
       to  be  initialized  for	 future	 use.  The size of the state array (in
       bytes) is used by initstate to decide how sophisticated a random number
       generator  it  should use -- the more state, the better the random num‐
       bers will be.  (Current "optimal" values for the amount of state infor‐
       mation 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).  The seed for the initialization (which specifies a starting
       point for the random number sequence, and provides  for	restarting  at
       the  same  point)  is also an argument.	Initstate returns a pointer to
       the previous state information array.

       Once a state has been initialized, the setstate	routine	 provides  for
       rapid switching between states.	Setstate returns a pointer to the pre‐
       vious state array; its argument state array is used for further	random
       number generation until the next call to initstate or setstate.

       Once  a state array has been initialized, it may be restarted at a dif‐
       ferent point either by calling initstate (with the  desired  seed,  the
       state  array, and its size) or by calling both setstate (with the state
       array) and srandom (with the desired seed).  The advantage  of  calling
       both  setstate and srandom is that the size of the state array does not
       have to be remembered after it is initialized.

       With 256 bytes of state information, the period of  the	random	number
       generator  is  greater  than  2**69 which should be sufficient for most
       purposes.

AUTHOR
       Earl T. Cohen

DIAGNOSTICS
       If initstate is called with less than 8 bytes of state information,  or
       if  setstate detects that the state information has been garbled, error
       messages are printed on the standard error output.

SEE ALSO
       rand(3)

BUGS
       About 2/3 the speed of rand(3C).

4.2 Berkeley Distribution	 June 23, 1990			     RANDOM(3)
[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server Xenix

List of man pages available for Xenix

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net