Struct std::rand::distributions::WeightedChoice
[−]
[src]
pub struct WeightedChoice<'a, T> where T: 'a {
items: &'a mut [Weighted<T>],
weight_range: Range<usize>,
}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.
Fields
items | Unstable ( rand): use |
weight_range | Unstable ( rand): use |
Methods
impl<'a, T> WeightedChoice<'a, T> where T: Clone
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.