Numerical Functions Numbers Implementation Parameters
This package also provides an implementation of the Common Lisp random number generator. It uses its own additive-congruential algorithm, which is much more likely to give statistically clean random numbers than the simple generators supplied by many operating systems.
random-stateobject which holds the state of the random number generator. The function modifies this state object as a side effect. If state is omitted, it defaults to the variable
*random-state*, which contains a pre-initialized
random-stateobject, used for calls to
random*that do not specify an alternative state object. Since any number of programs in the Emacs process may be accessing
*random-state*in interleaved fashion, the sequence generated from this variable will be irreproducible for all intents and purposes.
random-stateobject. If state is omitted or
nil, it returns a new copy of
*random-state*. This is a copy in the sense that future sequences of calls to
(random* n s)(where s is the new random-state object) will return identical sequences of random numbers.
If state is a
random-state object, this function
returns a copy of that object. If state is
function returns a new
random-state object seeded from the
date and time. As an extension to Common Lisp, state may also
be an integer in which case the new object is seeded from that
integer; each different integer seed will result in a completely
different sequence of random numbers.
It is legal to print a
random-state object to a buffer or
file and later read it back with
read. If a program wishes
to use a sequence of pseudo-random numbers which can be reproduced
later for debugging, it can call
(make-random-state t) to
get a new sequence, then print this sequence to a file. When the
program is later rerun, it can read the original run's random-state
from the file.
tif object is a