The functions from module State
manipulate the current state of the random generator
explicitly. This allows using one or several deterministic PRNGs, even in a
multi-threaded program, without interference from other parts of the program.
Obtaining multiple generators with good independence properties is nontrivial; see
Splittable_random
.
val default : t
val make_self_init : ?allow_in_tests:bool ‑> unit ‑> t
Create a new state and initialize it with a system-dependent low-entropy seed.
val bits : t ‑> int
These functions are the same as the basic functions, except that they use (and update) the given PRNG state instead of the default one.
val int : t ‑> int ‑> int
val int32 : t ‑> int32 ‑> int32
val nativeint : t ‑> nativeint ‑> nativeint
val int64 : t ‑> int64 ‑> int64
val float : t ‑> float ‑> float
val bool : t ‑> bool