Library
Module
Module type
Parameter
Class
Class type
Pseudo-random number generators (PRNG).
Initialize the generator, using the argument as a seed. The same seed will always yield the same sequence of numbers.
Same as Random4.init
but takes more data as seed.
Initialize the generator with a random seed chosen in a system-dependent way. If /dev/urandom
is available on the host machine, it is used to provide a highly random initial seed. Otherwise, a less random seed is computed from system parameters (current time, process IDs).
Random4.int bound
returns a random integer between 0 (inclusive) and bound
(exclusive). bound
must be greater than 0 and less than 230.
Random4.full_int bound
returns a random integer between 0 (inclusive) and bound
(exclusive). bound
may be any positive integer.
If bound
is less than 230, Random4.full_int bound
is equal to Random4.int
bound
. If bound
is greater than 230 (on 64-bit systems or non-standard environments, such as JavaScript), Random4.full_int
returns a value, where Random4.int
raises Invalid_argument
.
Random4.int32 bound
returns a random integer between 0 (inclusive) and bound
(exclusive). bound
must be greater than 0.
Random4.nativeint bound
returns a random integer between 0 (inclusive) and bound
(exclusive). bound
must be greater than 0.
Random4.int64 bound
returns a random integer between 0 (inclusive) and bound
(exclusive). bound
must be greater than 0.
Random4.float bound
returns a random floating-point number between 0 and bound
(inclusive). If bound
is negative, the result is negative or zero. If bound
is 0, the result is 0.
Random4.bits32 ()
returns 32 random bits as an integer between Int32.min_int
and Int32.max_int
.
Random4.bits64 ()
returns 64 random bits as an integer between Int64.min_int
and Int64.max_int
.
Random4.nativebits ()
returns 32 or 64 random bits (depending on the bit width of the platform) as an integer between Nativeint.min_int
and Nativeint.max_int
.
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.
module State : sig ... end
val get_state : unit -> State.t
Return the current state of the generator used by the basic functions.
val set_state : State.t -> unit
Set the state of the generator used by the basic functions.