Package Usage: go: github.com/mroth/weightedrand
Package weightedrand contains a performant data structure and algorithm used
to randomly select an element from some kind of list, where the chances of
each element to be selected not being equal, but defined by relative
"weights" (or probabilities). This is called weighted random selection.
Compare this package with (github.com/jmcvetta/randutil).WeightedChoice,
which is optimized for the single operation case. In contrast, this package
creates a presorted cache optimized for binary search, allowing for repeated
selections from the same set to be significantly faster, especially for large
data sets.
In this example, we create a Chooser to pick from amongst various emoji fruit
runes. We assign a numeric weight to each choice. These weights are relative,
not on any absolute scoring system. In this trivial case, we will assign a
weight of 0 to all but one fruit, so that the output will be predictable.
9 versions
Latest release: over 2 years ago
359 dependent packages
View more package details: https://packages.ecosystem.code.gouv.fr/registries/proxy.golang.org/packages/github.com/mroth/weightedrand