Implementation of Walker's Alias method by Rust.
The algorithm is principally useful when you need to random sampling with replacement by O(1).
use rand::XorShiftRng;use aliasmethod::AliasTablelet weights = vec![1.0,1.0,8.0];let alias_table = AliasTable::new(weights)?;let rng = XorShiftRng::from_seed([189522394,1694417663,1363148323,4087496301]);let n = alias_table.random(rng);assert!(0 <= n && n <= weights.length);