pub trait Random {
    fn uniform_int(&self, min: i32, max: i32) -> i32;
    fn uniform_real(&self, min: f64, max: f64) -> f64;
    fn is_head_not_tails(&self) -> bool;
    fn is_hit(&self, probability: f64) -> bool;
    fn weighted(&self, weights: &[usize]) -> usize;
    fn get_rng(&self) -> RandomGen;
}
Expand description

Provides the way to use randomized values in generic way.

Required Methods

Produces integral random value, uniformly distributed on the closed interval [min, max]

Produces real random value, uniformly distributed on the closed interval [min, max)

Flips a coin and returns true if it is “heads”, false otherwise.

Tests probability value in (0., 1.) range.

Returns an index from collected with probability weight. Uses exponential distribution where the weights are the rate of the distribution (lambda) and selects the smallest sampled value.

Returns RNG.

Implementors