4 releases (breaking)
0.4.0 | Aug 6, 2019 |
---|---|
0.3.0 | Jun 6, 2019 |
0.2.0 | Jun 6, 2019 |
0.1.0 | Aug 23, 2016 |
#1344 in Algorithms
71 downloads per month
Used in locustdb
7KB
119 lines
aliasmethod
Implementation of Walker's Alias method by Rust.
The algorithm is principally useful when you need to random sampling with replacement by O(1)
.
Example
use rand::XorShiftRng;
use aliasmethod::AliasTable
let 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);
Dependencies
~380KB