Alias Method for Sampling
A JavaScript library for efficient sampling of random values from a discrete probability distribution using the Walker-Vose alias method, provided by KeystoneHQ.
Installation
Install the library using yarn:
yarn add @keystonehq/alias-sampling
Or npm:
npm install @keystonehq/alias-sampling
Usage
To use the library, first import the sample
function and then create a sampler with a given probability distribution and optionally an array of outcomes. You can then generate random samples using the .next()
method.
Basic Usage
import { sample } from '@keystonehq/alias-sampling';
var s = sample([0.5, 0.25, 0.25], ['A', 'B', 'C']);
console.log(s.next());
Generating Multiple Samples
import { sample } from '@keystonehq/alias-sampling';
var s = sample([0.5, 0.25, 0.25], [10, 20, 30]);
console.log(s.next(1000));
Sampling Indices
import { sample } from '@keystonehq/alias-sampling';
var s = sample([0.5, 0.25, 0.25]);
console.log(s.next());
Using a Custom Random Generator
import { sample } from '@keystonehq/alias-sampling';
var rand = Math.random;
var s = sample([0.5, 0.25, 0.25], null, rand);
console.log(s.next());