Skip to content

@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

typescript
const mt = new MersenneTwister(1234);
mt.genrandInt32(); // 1982695502
mt.genrandReal1(); // 0.33979119391641377
mt.genrandReal2(); // 0.006705045932903886
mt.genrandRes53(); // 0.489361593755425

See

Constructors

Constructor

ts
new MersenneTwister(seed: number | number[]): MersenneTwister;

Defined in: src/mersenne-twister.ts:130

Parameters

ParameterType
seednumber | number[]

Returns

MersenneTwister

Methods

genrandInt31()

ts
genrandInt31(): number;

Defined in: src/mersenne-twister.ts:230

generates a random number on [0,0x7fffffff]-interval

Returns

number


genrandInt32()

ts
genrandInt32(): number;

Defined in: src/mersenne-twister.ts:198

generates a random number on [0,0xffffffff]-interval

Returns

number


genrandReal1()

ts
genrandReal1(): number;

Defined in: src/mersenne-twister.ts:235

generates a random number on [0,1]-real-interval

Returns

number


genrandReal2()

ts
genrandReal2(): number;

Defined in: src/mersenne-twister.ts:241

generates a random number on [0,1)-real-interval

Returns

number


genrandReal3()

ts
genrandReal3(): number;

Defined in: src/mersenne-twister.ts:247

generates a random number on (0,1)-real-interval

Returns

number


genrandRes53()

ts
genrandRes53(): number;

Defined in: src/mersenne-twister.ts:253

generates a random number on [0,1) with 53-bit resolution

Returns

number


initByArray()

ts
initByArray(key: number[]): void;

Defined in: src/mersenne-twister.ts:162

initialize with array

Parameters

ParameterType
keynumber[]

Returns

void


initGenrand()

ts
initGenrand(seed: number): void;

Defined in: src/mersenne-twister.ts:146

initialize with a seed

Parameters

ParameterType
seednumber

Returns

void


setSeed()

ts
setSeed(seed: number | number[]): void;

Defined in: src/mersenne-twister.ts:137

Sets the seed for the random number generator.

Parameters

ParameterType
seednumber | number[]

Returns

void