|
|
||
|---|---|---|
| .. | ||
| 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 ) );