#抽样 #随机 #算法

aliasmethod

实现Walker的别名方法

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

Build Status

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