@technobuddha > library > Random > Number Generation
Class: MersenneTwister
Defined in: mersenne-twister.ts:126
Implements the Mersenne Twister pseudorandom number generator (MT19937).
The Mersenne Twister is a widely used PRNG known for its long period (2^19937−1), high performance, and high-quality randomness. This class provides methods to seed the generator and produce random numbers in various formats and intervals.
Remarks
- The generator can be seeded with a single number or an array of numbers.
- Methods are provided to generate 32-bit and 31-bit integers, as well as floating-point numbers in different intervals.
- This implementation is based on the original C code by Makoto Matsumoto and Takuji Nishimura.
Example
const mt = new MersenneTwister(1234);
mt.genrandInt32(); // 1982695502
mt.genrandReal1(); // 0.33979119391641377
mt.genrandReal2(); // 0.006705045932903886
mt.genrandRes53(); // 0.489361593755425See
- https://en.wikipedia.org/wiki/Mersenne_Twister
- http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html
Constructors
Constructor
new MersenneTwister(seed: number | number[]): MersenneTwister;Defined in: src/mersenne-twister.ts:130
Parameters
| Parameter | Type |
|---|---|
seed | number | number[] |
Returns
MersenneTwister
Methods
genrandInt31()
genrandInt31(): number;Defined in: src/mersenne-twister.ts:230
generates a random number on [0,0x7fffffff]-interval
Returns
number
genrandInt32()
genrandInt32(): number;Defined in: src/mersenne-twister.ts:198
generates a random number on [0,0xffffffff]-interval
Returns
number
genrandReal1()
genrandReal1(): number;Defined in: src/mersenne-twister.ts:235
generates a random number on [0,1]-real-interval
Returns
number
genrandReal2()
genrandReal2(): number;Defined in: src/mersenne-twister.ts:241
generates a random number on [0,1)-real-interval
Returns
number
genrandReal3()
genrandReal3(): number;Defined in: src/mersenne-twister.ts:247
generates a random number on (0,1)-real-interval
Returns
number
genrandRes53()
genrandRes53(): number;Defined in: src/mersenne-twister.ts:253
generates a random number on [0,1) with 53-bit resolution
Returns
number
initByArray()
initByArray(key: number[]): void;Defined in: src/mersenne-twister.ts:162
initialize with array
Parameters
| Parameter | Type |
|---|---|
key | number[] |
Returns
void
initGenrand()
initGenrand(seed: number): void;Defined in: src/mersenne-twister.ts:146
initialize with a seed
Parameters
| Parameter | Type |
|---|---|
seed | number |
Returns
void
setSeed()
setSeed(seed: number | number[]): void;Defined in: src/mersenne-twister.ts:137
Sets the seed for the random number generator.
Parameters
| Parameter | Type |
|---|---|
seed | number | number[] |
Returns
void