Thanks to visit codestin.com
Credit goes to lib.rs

#random #group

random_grouping

Utility for random grouping

10 releases

Uses new Rust 2024

0.4.2 Jul 14, 2025
0.4.1 Jun 22, 2025
0.3.1 Jan 14, 2024
0.3.0 Oct 30, 2023
0.1.0 Jul 5, 2023

#23 in #group

Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App

541 downloads per month

MIT/Apache

18KB
284 lines

random_grouping

Utility for random grouping.

The author of this crate is not good at English.
Forgive me if the document is hard to read.

What is this?

This is useful for grouping multiple items into some groups at random.

Examples

let mut rg = RandomGrouping::new();
let samples = (0..10).collect::<Vec<_>>();
let ratios = [0.3, 0.3, 0.2];

let result = rg.divide_by_ratio(&samples, &ratios);

assert!(result.len() == ratios.len());
for i in 0..result.len() {
    let group_size = (ratios[i] * samples.len() as f64).floor() as usize;
    assert!(result[i].len() == group_size);
    assert!(result[i].iter().all(|x| samples.contains(x)));
}

Versions

See CHANGELOG.

Dependencies

~450KB