Usage
var discreteUniform = require( '@stdlib/random-base-discrete-uniform' );
discreteUniform( a, b )
Returns a pseudorandom number drawn from a discrete uniform distribution with parameters a
(minimum support) and b
(maximum support).
var r = discreteUniform( 2, 50 );
If either a
or b
is not an integer value or a > b
, the function returns NaN
.
var r = discreteUniform( 20, 10 );
r = discreteUniform( NaN, 10 );
r = discreteUniform( 10, NaN );
discreteUniform.factory( [a, b, ][options] )
Returns a pseudorandom number generator (PRNG) for generating pseudorandom numbers drawn from a discrete uniform distribution.
var rand = discreteUniform.factory();
var r = rand( 0, 10 );
If provided a
and b
, the returned generator returns random variates from the specified distribution.
var rand = discreteUniform.factory( -20, 20 );
var r = rand();
r = rand();
If not provided a
and b
, the returned generator requires that both parameters be provided at each invocation.
var rand = discreteUniform.factory();
var r = rand( 0, 10 );
r = rand( -20, 20 );
The function accepts the following options
:
- prng: pseudorandom number generator for generating uniformly distributed pseudorandom integers. If provided, the function ignores both the
state
and seed
options. In order to seed the returned pseudorandom number generator, one must seed the provided prng
(assuming the provided prng
is seedable). The provided PRNG must have MIN
and MAX
properties specifying the minimum and maximum possible pseudorandom integers. - seed: pseudorandom number generator seed.
- state: a
Uint32Array
containing pseudorandom number generator state. If provided, the function ignores the seed
option. - copy:
boolean
indicating whether to copy a provided pseudorandom number generator state. Setting this option to false
allows sharing state between two or more pseudorandom number generators. Setting this option to true
ensures that a returned generator has exclusive control over its internal state. Default: true
.
To use a custom PRNG as the underlying source of uniformly distributed pseudorandom integers, set the prng
option.
var minstd = require( '@stdlib/random-base-minstd' );
var rand = discreteUniform.factory({
'prng': minstd
});
var r = rand( 20, 40 );
To seed a pseudorandom number generator, set the seed
option.
var rand1 = discreteUniform.factory({
'seed': 12345
});
var r1 = rand1( 20, 40 );
var rand2 = discreteUniform.factory( 20, 40, {
'seed': 12345
});
var r2 = rand2();
var bool = ( r1 === r2 );
To return a generator having a specific initial state, set the generator state
option.
var rand;
var bool;
var r;
var i;
for ( i = 0; i < 1000; i++ ) {
r = discreteUniform( 20, 40 );
}
rand = discreteUniform.factory({
'state': discreteUniform.state
});
bool = ( rand( 20, 40 ) === discreteUniform( 20, 40 ) );
discreteUniform.NAME
The generator name.
var str = discreteUniform.NAME;
discreteUniform.PRNG
The underlying pseudorandom number generator.
var prng = discreteUniform.PRNG;
discreteUniform.seed
The value used to seed discreteUniform()
.
var rand;
var r;
var i;
for ( i = 0; i < 100; i++ ) {
r = discreteUniform( 0, 10 );
}
rand = discreteUniform.factory( 0, 10, {
'seed': discreteUniform.seed
});
for ( i = 0; i < 100; i++ ) {
r = rand();
}
If provided a PRNG for uniformly distributed integers, this value is null
.
var minstd = require( '@stdlib/random-base-minstd' );
var rand = discreteUniform.factory({
'prng': minstd
});
var seed = rand.seed;
discreteUniform.seedLength
Length of generator seed.
var len = discreteUniform.seedLength;
If provided a PRNG for uniformly distributed integers, this value is null
.
var minstd = require( '@stdlib/random-base-minstd' );
var rand = discreteUniform.factory({
'prng': minstd
});
var len = rand.seedLength;
discreteUniform.state
Writable property for getting and setting the generator state.
var r = discreteUniform( -10, 10 );
r = discreteUniform( -10, 10 );
var state = discreteUniform.state;
r = discreteUniform( -10, 10 );
r = discreteUniform( -10, 10 );
discreteUniform.state = state;
r = discreteUniform( -10, 10 );
r = discreteUniform( -10, 10 );
If provided a PRNG for uniformly distributed integers, this value is null
.
var minstd = require( '@stdlib/random-base-minstd' );
var rand = discreteUniform.factory({
'prng': minstd
});
var state = rand.state;
discreteUniform.stateLength
Length of generator state.
var len = discreteUniform.stateLength;
If provided a PRNG for uniformly distributed integers, this value is null
.
var minstd = require( '@stdlib/random-base-minstd' );
var rand = discreteUniform.factory({
'prng': minstd
});
var len = rand.stateLength;
discreteUniform.byteLength
Size (in bytes) of generator state.
var sz = discreteUniform.byteLength;
If provided a PRNG for uniformly distributed integers, this value is null
.
var minstd = require( '@stdlib/random-base-minstd' );
var rand = discreteUniform.factory({
'prng': minstd
});
var sz = rand.byteLength;
discreteUniform.toJSON()
Serializes the pseudorandom number generator as a JSON object.
var o = discreteUniform.toJSON();
If provided a PRNG for uniformly distributed numbers, this method returns null
.
var minstd = require( '@stdlib/random-base-minstd' );
var rand = discreteUniform.factory({
'prng': minstd
});
var o = rand.toJSON();