Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
RANDOM.3
Upload User: jnzhq888
Upload Date: 2007-01-18
Package Size: 51694k
Code Size: 4k
Category:
OS Develop
Development Platform:
WINDOWS
- RANDOM(3) Minix Programmer's Manual RANDOM(3)
- NAME
- random, srandom, initstate, setstate - better random number generator;
- routines for changing generators
- SYNOPSIS
- #include <stdlib.h>
- long random(void)
- void srandom(unsigned seed)
- char *initstate(unsigned seed, char *state, int n)
- char *setstate(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 initialization
- 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/changing
- 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 numbers will be.
- (Current "optimal" values for the amount of state information 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
- previous state array; its argument state array is used for further random
- number generation until the next call to initstate or setstate.
- 5BSD September 29, 1985 1
- RANDOM(3) Minix Programmer's Manual RANDOM(3)
- Once a state array has been initialized, it may be restarted at a
- different 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).
- NOTES
- initstate and setstate are not declared in <stdlib.h>, programmers must
- provide their own declarations.
- BUGS
- About 2/3 the speed of rand(3).
- 5BSD September 29, 1985 2