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
fn uniform_int(&self, min: i32, max: i32) -> i32
fn uniform_int(&self, min: i32, max: i32) -> i32
Produces integral random value, uniformly distributed on the closed interval [min, max]
fn uniform_real(&self, min: f64, max: f64) -> f64
fn uniform_real(&self, min: f64, max: f64) -> f64
Produces real random value, uniformly distributed on the closed interval [min, max)
fn is_head_not_tails(&self) -> bool
fn is_head_not_tails(&self) -> bool
Flips a coin and returns true if it is “heads”, false otherwise.
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.