Function reservoir::sample
[−]
[src]
pub fn sample<I, RNG>(
rng: &mut RNG,
sample_size: usize,
iter: I
) -> Vec<I::Item> where
I: Iterator,
RNG: Rng,
Return a random sample of a known maximum size from an iterator of unknown length.
Examples
let iter = 0..10; let samples = sample(&mut thread_rng(), 4, iter); assert_eq!(4, samples.len()); assert!(samples.iter().all(|e| *e >= 0 && *e < 10));
If the sampled iterator contains fewer items than the sample_size, all items are returned.
let iter = 0..10; let samples : Vec<i32> = sample(&mut thread_rng(), 20, iter); let expected_samples : Vec<i32> = (0..10).collect(); assert_eq!(expected_samples, samples);