4个版本 (重大更新)
0.4.0 | 2019年8月6日 |
---|---|
0.3.0 | 2019年6月6日 |
0.2.0 | 2019年6月6日 |
0.1.0 | 2016年8月23日 |
#1932 in 算法
用于 locustdb
7KB
119 行
aliasmethod
Rust实现Walker的别名方法。
该算法在需要以O(1)
的时间复杂度进行带替换的随机抽样时非常有用。
示例
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);
依赖项
~535KB
~10K SLoC