|  | ||
|---|---|---|
| .. | ||
| arcsine | ||
| bernoulli | ||
| beta | ||
| betaprime | ||
| binomial | ||
| box-muller | ||
| cauchy | ||
| chi | ||
| chisquare | ||
| cosine | ||
| discrete-uniform | ||
| docs/types | ||
| erlang | ||
| exponential | ||
| f | ||
| frechet | ||
| gamma | ||
| geometric | ||
| gumbel | ||
| hypergeometric | ||
| improved-ziggurat | ||
| include/stdlib/random | ||
| invgamma | ||
| kumaraswamy | ||
| laplace | ||
| levy | ||
| lib | ||
| logistic | ||
| lognormal | ||
| minstd | ||
| minstd-shuffle | ||
| mt19937 | ||
| negative-binomial | ||
| normal | ||
| pareto-type1 | ||
| poisson | ||
| randi | ||
| randn | ||
| randu | ||
| rayleigh | ||
| reviver | ||
| src | ||
| t | ||
| triangular | ||
| uniform | ||
| weibull | ||
| manifest.json | ||
| package.json | ||
| README.md | ||
Pseudorandom Number Generators
Standard library base pseudorandom number generators (PRNGs).
Usage
var random = require( '@stdlib/random/base' );
random
Standard library base pseudorandom number generators (PRNGs).
var ns = random;
// returns {...}
The namespace contains the following PRNGs:
- arcsine( a, b ): arcsine distributed pseudorandom numbers.
- bernoulli( p ): Bernoulli distributed pseudorandom numbers.
- beta( alpha, beta ): beta distributed pseudorandom numbers.
- betaprime( alpha, beta ): beta prime distributed pseudorandom numbers.
- binomial( n, p ): binomial distributed pseudorandom numbers.
- boxMuller(): standard normally distributed pseudorandom numbers using the Box-Muller transform.
- cauchy( x0, gamma ): Cauchy distributed pseudorandom numbers.
- chi( k ): Chi distributed pseudorandom numbers.
- chisquare( k ): Chi-square distributed pseudorandom numbers.
- cosine( mu, s ): raised cosine distributed pseudorandom numbers.
- discreteUniform( a, b ): discrete uniform distributed pseudorandom numbers.
- erlang( k, lambda ): Erlang distributed pseudorandom numbers.
- exponential( lambda ): exponentially distributed pseudorandom numbers.
- f( d1, d2 ): F distributed pseudorandom numbers.
- frechet( alpha, s, m ): Fréchet distributed pseudorandom numbers.
- gamma( alpha, beta ): gamma distributed pseudorandom numbers.
- geometric( p ): geometric distributed pseudorandom numbers.
- gumbel( mu, beta ): Gumbel distributed pseudorandom numbers.
- hypergeometric( N, K, n ): hypergeometric distributed pseudorandom numbers.
- improvedZiggurat(): standard normally distributed pseudorandom numbers using the Improved Ziggurat method.
- invgamma( alpha, beta ): inverse gamma distributed pseudorandom numbers.
- kumaraswamy( a, b ): Kumaraswamy's double bounded distributed pseudorandom numbers.
- laplace( mu, b ): Laplace (double exponential) distributed pseudorandom numbers.
- levy( mu, c ): Lévy distributed pseudorandom numbers.
- logistic( mu, s ): logistic distributed pseudorandom numbers.
- lognormal( mu, sigma ): lognormal distributed pseudorandom numbers.
- minstdShuffle(): A linear congruential pseudorandom number generator (LCG) whose output is shuffled.
- minstd(): A linear congruential pseudorandom number generator (LCG) based on Park and Miller.
- mt19937(): A 32-bit Mersenne Twister pseudorandom number generator.
- negativeBinomial( r, p ): negative binomially distributed pseudorandom numbers.
- normal( mu, sigma ): normally distributed pseudorandom numbers.
- pareto1( alpha, beta ): Pareto (Type I) distributed pseudorandom numbers.
- poisson( lambda ): Poisson distributed pseudorandom numbers.
- randi(): pseudorandom numbers having integer values.
- randn(): standard normally distributed pseudorandom numbers.
- randu(): uniformly distributed pseudorandom numbers between 0 and 1.
- rayleigh( sigma ): Rayleigh distributed pseudorandom numbers.
- reviveBasePRNG( key, value ): revive a JSON-serialized pseudorandom number generator (PRNG).
- t( v ): Student's t-distributed pseudorandom numbers.
- triangular( a, b, c ): triangular distributed pseudorandom numbers.
- uniform( a, b ): uniformly distributed pseudorandom numbers.
- weibull( k, lambda ): Weibull distributed pseudorandom numbers.
Attached to each PRNG are the following properties:
- NAME: the generator name.
- seed: the value used to seed the PRNG.
- seedLength: the length of the PRNG seed.
- state: the PRNG state.
- stateLength: the length of the PRNG state.
- byteLength: the size of the PRNG state.
- PRNG: the underlying pseudorandom number generator.
Additionally, attached to each PRNG is a .factory() method which supports creating a seeded PRNG and thus generating a reproducible sequence of pseudorandom numbers.
var rand;
var v;
var i;
// Generate pseudorandom values...
for ( i = 0; i < 100; i++ ) {
    v = random.randu();
}
// Generate the same pseudorandom values...
rand = random.randu.factory({
    'seed': random.randu.seed
});
for ( i = 0; i < 100; i++ ) {
    v = rand();
}
For parameterized PRNGs, the .factory() method supports specifying parameters upon either PRNG creation or invocation. For example,
// Create a PRNG which requires providing parameters at each invocation:
var rand = random.normal.factory({
    'seed': 12345
});
var r = rand( 1.0, 2.0 );
// returns <number>
// Create a PRNG with fixed parameters:
rand = random.normal.factory( 1.0, 2.0, {
    'seed': 12345
});
r = rand();
// returns <number>
Examples
var objectKeys = require( '@stdlib/utils/keys' );
var random = require( '@stdlib/random/base' );
console.log( objectKeys( random ) );