High-quality random number generator based on Mersenne Twister
Crystal's built-in Random class already uses a high-quality algorithm,
so we wrap it with OpenCog-specific functionality
Constructors
new(seed : UInt32 | Nil = nil)
Class methods
choose(array : Array(T)) : T forall T
randbool
Class methods using default generator
randbytes(size : Int32) : Bytes
randdouble(min : Float64, max : Float64) : Float64
randdouble(max : Float64) : Float64
randfloat(min : Float64, max : Float64) : Float64
randfloat(max : Float64) : Float64
randint(min : Int32, max : Int32) : Int32
randint(max : Int32) : Int32
randnormal(mean : Float64 = 0.0, stddev : Float64 = 1.0) : Float64
sample(array : Array(T), count : Int32) : Array(T) forall T
seed(seed : UInt32)
Seed the default generator
shuffle(array : Array(T)) : Array(T) forall T
shuffle!(array : Array(T)) : Array(T) forall T
Instance methods
choose(array : Array(T)) : T forall T
randbytes(size : Int32) : Bytes
randdouble(min : Float64, max : Float64) : Float64
randdouble(max : Float64) : Float64
randdouble
Generate random double (alias for randfloat)
randfloat(min : Float64, max : Float64) : Float64
Generate random float in range [min, max)
randfloat(max : Float64) : Float64
Generate random float in range [0.0, max)
randfloat
Generate random float in range [0.0, 1.0)
randint(min : Int32, max : Int32) : Int32
Generate random integer in range [min, max)
randint(max : Int32) : Int32
Generate random integer in range [0, max)
randnormal(mean : Float64 = 0.0, stddev : Float64 = 1.0) : Float64
Generate random number from normal distribution
Uses Box-Muller transform
sample(array : Array(T), count : Int32) : Array(T) forall T
Random sample from array without replacement
shuffle(array : Array(T)) : Array(T) forall T
Return shuffled copy of array
shuffle!(array : Array(T)) : Array(T) forall T