Skip to main content

random_subset

Function random_subset 

Source
pub fn random_subset<T: Clone, R: Rng>(
    set: &[T],
    n: usize,
    rng: &mut R,
) -> Vec<T>
Expand description

Select a random subset of up to n elements from a slice.

If n >= set.len(), returns at most set.len() elements (a shuffled subset). Returns an empty vector when the set is empty or n is zero.

ยงExamples

use tensor4all_tcicore::matrix::random_subset;
use rand::SeedableRng;

let mut rng = rand::rngs::StdRng::seed_from_u64(42);
let items = vec![10, 20, 30, 40, 50];
let sub = random_subset(&items, 3, &mut rng);
assert_eq!(sub.len(), 3);
// All selected elements come from the original set
for &x in &sub {
    assert!(items.contains(&x));
}
// Requesting more than available returns at most set.len()
let all = random_subset(&items, 100, &mut rng);
assert_eq!(all.len(), 5);