Struct rand::distributions::WeightedChoice
[−]
[src]
pub struct WeightedChoice<'a, T: 'a> {
// some fields omitted
}Unstable (
rand): use rand from crates.io
A distribution that selects from a finite collection of weighted items.
Each item has an associated weight that influences how likely it is to be chosen: higher weight is more likely.
The Clone restriction is a limitation of the Sample and
IndependentSample traits. Note that &T is (cheaply) Clone for
all T, as is usize, so one can store references or indices into
another vector.
Methods
impl<'a, T: Clone> WeightedChoice<'a, T>[src]
fn new(items: &'a mut [Weighted<T>]) -> WeightedChoice<'a, T>
Unstable (
rand): use rand from crates.io
Create a new WeightedChoice.
Panics if:
- v is empty
- the total weight is 0
- the total weight is larger than a usize can contain.
Trait Implementations
impl<'a, T: Clone> Sample<T> for WeightedChoice<'a, T>[src]
fn sample<R: Rng>(&mut self, rng: &mut R) -> T
Generate a random value of Support, using rng as the source of randomness. Read more
impl<'a, T: Clone> IndependentSample<T> for WeightedChoice<'a, T>[src]
fn ind_sample<R: Rng>(&self, rng: &mut R) -> T
Generate a random value.