### 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

**Custom license**

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