Standard library base pseudorandom number generators (PRNGs).
var random = require( '@stdlib/random/base' );
Standard library base pseudorandom number generators (PRNGs).
var rand = random;
// returns {...}
The following PRNGs are part of the base random namespace:
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.minstd()
: A linear congruential pseudorandom number generator (LCG) based on Park and Miller.minstdShuffle()
: A linear congruential pseudorandom number generator (LCG) whose output is shuffled.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.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.
The following properties are attached to each exported function:
- NAME: The generator name.
- PRNG: The underlying pseudorandom number generator.
- SEED: The value used to seed the PRNG.
All packages come with a .factory()
method that can be used to create a seeded pseudorandom number generator in order to obtain a deterministic sequence of random numbers.
var randu = require( '@stdlib/random/base/randu' );
var rand;
var v;
var i;
// Generate pseudorandom values...
for ( i = 0; i < 100; i++ ) {
v = randu();
}
// Generate the same pseudorandom values...
rand = randu.factory({
'seed': randu.SEED
});
for ( i = 0; i < 100; i++ ) {
v = rand();
}
When drawing from a probability distribution, distribution parameters can be either supplied when calling the .factory()
method or at each function invocation. See the following code block for an example of draws from a normal distribution with mean one and standard deviation two.
var normal = require( '@stdlib/random/base/normal' );
var rand = normal.factory({
'seed': 12345
});
var r = rand( 1.0, 2.0 );
// returns <number>
rand = normal.factory( 1.0, 2.0, {
'seed': 12345
});
r = rand();
// returns <number>
var getKeys = require( '@stdlib/utils/keys' );
var random = require( '@stdlib/random/base' );
console.log( getKeys( random ) );