Pseudo-random number generators (PRNG).
val init : int -> unit
Initialize the generator, using the argument as a seed. The same seed will always yield the same sequence of numbers.
val self_init : unit -> unit
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).
val bits : unit -> int
Return 30 random bits in a nonnegative integer.
val int : int -> int
Random.int bound
returns a random integer between 0 (inclusive)
and bound
(exclusive). bound
must be greater than 0 and less
than 230.
val int32 : Stdlib.Int32.t -> Stdlib.Int32.t
Random.int32 bound
returns a random integer between 0 (inclusive)
and bound
(exclusive). bound
must be greater than 0.
val nativeint : Stdlib.Nativeint.t -> Stdlib.Nativeint.t
Random.nativeint bound
returns a random integer between 0 (inclusive)
and bound
(exclusive). bound
must be greater than 0.
val int64 : Stdlib.Int64.t -> Stdlib.Int64.t
Random.int64 bound
returns a random integer between 0 (inclusive)
and bound
(exclusive). bound
must be greater than 0.
val float : float -> float
Random.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.
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.