implausible is a collection of pseudorandom number generators (PRNGs) and utilities powered by seedrandom.
RunKit provides one of the most direct ways to get started:
Declare imports and global binding in the JS
section to get started:
import { prng } from 'https://unpkg.com/implausible@latest?module';
window.prng = prng;
Run commands in the Console
section:
prng();
// example output: 0.3722007770466942
Insert the following element within the <head>
tag of an HTML document:
<script src="https://unpkg.com/implausible@latest"></script>
After the script is loaded, the implausible
browser global is exposed:
implausible.prng();
// example output: 0.6736552471595748
With npm
installed, run terminal command:
npm i implausible
Once installed, declare method imports at the top of each JavaScript file they will be used.
Recommended
import {
prng,
sample,
samples,
} from 'implausible';
const {
prng,
sample,
samples,
} = require('implausible');
prng();
// example output: 0.4471833625387327
prng();
// example output: 0.18700348375416123
Refer to the list of PRNG names for valid parameter { name }
values.
prng({ name: 'xor4096' });
// example output: 0.7105067998636514
prng({ seed: 'hello.' });
// output: 0.9282578795792454
prng({ seed: 'hello.' });
// output: 0.9282578795792454
Refer to the list of PRNG names for valid parameter { name }
values.
prng({
name: 'xor4096',
seed: 'hello.',
});
// output: 0.9798525865189731
sample({
collection: [
'heads',
'tails',
],
});
// example output: 'tails'
Refer to the list of PRNG names for valid parameter { name }
values.
sample({
collection: [
'heads',
'tails',
],
name: 'alea',
});
// example output: 'heads'
sample({
collection: {
'A-': 6.3,
'A+': 35.7,
'AB-': 0.6,
'AB+': 3.4,
'B-': 1.5,
'B+': 8.5,
'O-': 6.6,
'O+': 37.4,
},
});
// example output: 'A+'
Refer to the list of PRNG names for valid parameter { name }
values.
sample({
collection: {
'A-': 6.3,
'A+': 35.7,
'AB-': 0.6,
'AB+': 3.4,
'B-': 1.5,
'B+': 8.5,
'O-': 6.6,
'O+': 37.4,
},
name: 'alea',
});
// example output: 'O+'
sample({
collection: [
'heads',
'tails',
],
seed: 'hello.',
});
// output: 'tails'
Refer to the list of PRNG names for valid parameter { name }
values.
sample({
collection: [
'heads',
'tails',
],
name: 'tychei',
seed: 'hello.',
});
// output: 'heads'
sample({
collection: {
'A-': 6.3,
'A+': 35.7,
'AB-': 0.6,
'AB+': 3.4,
'B-': 1.5,
'B+': 8.5,
'O-': 6.6,
'O+': 37.4,
},
seed: 'hello.',
});
// output: 'A-'
Refer to the list of PRNG names for valid parameter { name }
values.
sample({
collection: {
'A-': 6.3,
'A+': 35.7,
'AB-': 0.6,
'AB+': 3.4,
'B-': 1.5,
'B+': 8.5,
'O-': 6.6,
'O+': 37.4,
},
name: 'tychei',
seed: 'hello.',
});
// output: 'A+'
The following names of pseudorandom number generators (PRNGs) are valid String
inputs for the optional { name }
parameter:
alea
arc4
(default)tychei
xor128
xor4096
xorshift7
xorwow
All undefined seed
are automatically generated by arc4
before being piped to other generators in stochastic mode.
Visit seedrandom documentation for comparative statistics on period and performance.
All parameters are optional properties of an optional Object
.
parameter | input type(s) | default | description |
---|---|---|---|
name |
String |
arc4 |
Refer to the list of PRNG names for values. |
seed |
Number , String |
undefined (stochastic) |
Deterministic when provided, or stochastic when undefined. |
Generates a Number
within range: [0, 1)
(including 0
and excluding 1
).
See also: samples
All parameters are properties of an Object
.
parameter | input type(s) | default | description |
---|---|---|---|
collection (required) |
Array or Object of {String:Number} pairs |
Array : collection of outcomes with uniform (equally likely) probability distribution (i.e.: coin, dice). Object : histogram where the relative probability of sampling a key is determined by its Number value. |
|
name |
String |
arc4 |
Refer to the list of PRNG names for values. |
seed |
Number , String |
undefined (stochastic) |
Deterministic when provided, or stochastic when undefined. |
Generates a String
weighted random sample from a collection
member or key.
See also: sample
All parameters are properties of an Object
.
parameter | input type(s) | default | description |
---|---|---|---|
collection (required) |
Array or Object of {String:Number} pairs |
Array : collection of outcomes with uniform (equally likely) probability distribution (i.e.: coin, dice). Object : histogram where the relative probability of sampling a key is determined by its Number value. |
|
count |
Number |
1 |
Sample size that determines output Array length. |
name |
String |
arc4 |
Refer to the list of PRNG names for values. |
seed |
Number , String |
undefined (stochastic) |
Deterministic when provided, or stochastic when undefined. |
Generates an Array
of weighted random sample String
from a collection
member or key, similar to calling sample
multiple times.
Thanks to David Bau and additional authors for distributing parent package seedrandom under the MIT license.