package batteries
Install
Dune Dependency
Authors
Maintainers
Sources
md5=ea26b5c72e6731e59d856626049cca4d
sha512=55975b62c26f6db77433a3ac31f97af609fc6789bb62ac38b267249c78fd44ff37fe81901f1cf560857b9493a6046dd37b0d1c0234c66bd59e52843aac3ce6cb
doc/batteries.unthreaded/BatRandom/index.html
Module BatRandom
Source
Pseudo-random number generators (PRNG).
This module extends Stdlib's Random module, go there for documentation on the rest of the functions and types.
@documents Random
Basic functions
Initialize the generator, using the argument as a seed. The same seed will always yield the same sequence of numbers.
Same as Random.init
but takes more data as seed.
Initialize the generator with a more-or-less random seed chosen in a system-dependent way.
Return 30 random bits in a nonnegative integer.
Random.int bound
returns a random integer between 0 (inclusive) and bound
(exclusive). bound
must be greater than 0 and less than 230.
Random.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, Random.full_int bound
is equal to Random.int
bound
. If bound
is greater than 230 (on 64-bit systems or non-standard environments, such as JavaScript), Random.full_int
returns a value, where Random.int
raises Invalid_argument
.
Random.int32 bound
returns a random integer between 0 (inclusive) and bound
(exclusive). bound
must be greater than 0.
Random.nativeint bound
returns a random integer between 0 (inclusive) and bound
(exclusive). bound
must be greater than 0.
Random.int64 bound
returns a random integer between 0 (inclusive) and bound
(exclusive). bound
must be greater than 0.
Random.float bound
returns a random floating-point number between 0 (inclusive) and bound
(exclusive). If bound
is negative, the result is negative or zero. If bound
is 0, the result is 0.
Random.bool ()
returns true
or false
with probability 0.5 each.
Return a random Latin-1 character.
full_range_int ()
returns the maximum entropy possible in a single int: 31 bits on 32-bit platforms and 63 bits on 64-bit platforms. Intentionally gives different results on different platforms, so is not portable.
Enumerations of random values.
Working with data structures.
multi_choice n e
returns an enumeration of n
randomly-chosen elements of e
.
shuffle e
returns a new array, containing the same set of elements as e
, but in a random order.
Shuffling is implemented using the Fisher-Yates algorithm and works in O(n), where n is the number of elements of e
.
This function only works on finite enumerations with less than 230 elements.
Random.bits32 ()
returns 32 random bits as an integer between Int32.min_int
and Int32.max_int
.
Random.bits64 ()
returns 64 random bits as an integer between Int64.min_int
and Int64.max_int
.
Random.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
.
Advanced functions
Return the current state of the generator used by the basic functions.
Draw a fresh PRNG state from the current state of the domain-local generator used by the default functions. (The state of the domain-local generator is modified.) See Random.State.split
.