Trait vrp_core::utils::Random

source ·
pub trait Random {
    // Required methods
    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§

source

fn uniform_int(&self, min: i32, max: i32) -> i32

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

source

fn uniform_real(&self, min: f64, max: f64) -> f64

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

source

fn is_head_not_tails(&self) -> bool

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

source

fn is_hit(&self, probability: f64) -> bool

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

source

fn weighted(&self, weights: &[usize]) -> usize

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.

source

fn get_rng(&self) -> RandomGen

Returns RNG.

Implementors§