0.2.0 • Published 4 years ago

@ricardomatias/roll v0.2.0

Weekly downloads
11
License
MIT
Repository
github
Last release
4 years ago

roll Build Status

Let's you pick an element randomly based on a chosen probability distribution

import { roll, distribute } from '@ricardomatias/roll';
import seedRandom from 'seed-random'; // works nicely together

const rng = seedRandom('roll');
const AM7 = [ 'A', 'C', 'E', 'G' ];

const equalOdds = distribute.equal(AM7.length);
const decreasingOdds = distribute.decreasing(AM7.length);
const increasingOdds = distribute.increasing(AM7);

roll(AM7, equalOdds, rng); // => G
roll(AM7, equalOdds, rng); // => C
roll(AM7, decreasingOdds, rng); // => A
roll(AM7, increasingOdds, rng); // => E

Install

Use npm to install.

npm install @ricardomatias/roll --save

Usage

roll

roll(elements, probabilities, rng) ⇒ Object | Null

Pick an element randomly based on a chosen probability distribution

ParamTypeDescription
elementsArray
probabilitiesArray.<String>
rngfunctionRandom Number Generator

distribute

decreasing(k, precision) ⇒ Array.<String>

Creates a decreasing probability distribution

ParamType
kNumber | Array.<Number>
precisionNumber3

increasing(k, precision) ⇒ Array.<String>

Creates an increasing probability distribution

ParamType
kNumber | Array.<Number>
precisionNumber3

equal(k, precision) ⇒ Array.<String>

Creates an equal probability distribution

ParamType
kNumber | Array.<Number>
precisionNumber3

License

MIT, see LICENSE.md for details.

0.2.0

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago

0.0.2

4 years ago

0.0.1

5 years ago