MersenneTwister

E440656

MersenneTwister is a widely used pseudorandom number generator algorithm known for its long period and high-quality statistical properties.

All labels observed (8)

How this entity was disambiguated

Statements (50)

Predicate Object
instanceOf PRNG algorithm
pseudorandom number generator
basedOn Mersenne prime 2^19937 − 1
designedBy Makoto Matsumoto
Takuji Nishimura
designYear 1997
hasAbbreviation MT
hasAlgorithmStep tempering transformation
twist transformation
hasEquidistribution 311-dimensionally equidistributed for 64-bit output (MT19937-64)
623-dimensionally equidistributed for 32-bit output
hasFullName Mersenne Twister pseudorandom number generator
linked to: MersenneTwister
hasLicense permissive free software license
hasOutputRange [0, 2^32 − 1] for MT19937
[0, 2^64 − 1] for MT19937-64
hasPeriod 2^19937 − 1
hasProperty deterministic
fast generation speed
high-quality statistical properties
long period
not cryptographically secure
hasPublicationTitle Mersenne Twister: A 623-dimensionally equidistributed uniform pseudorandom number generator
linked to: MersenneTwister
hasPublicationYear 1998
hasSeedingRequirement requires 624 32-bit integers for full state (MT19937)
hasStateSizeBits 19937
hasStateVectorLength 624
hasVariant MT19937
linked to: MersenneTwister

MT19937-64
linked to: MersenneTwister

TinyMT
hasWeakness poor behavior in some high-dimensional equidistribution tests for lower bits
predictable output if internal state is recovered
hasWordSizeBits 32
64
influenced development of SIMD-oriented Fast Mersenne Twister (SFMT)
development of TinyMT
isImplementedIn C
C++
Java
Python
many other programming languages
isNotRecommendedFor cryptographic applications
isPublishedIn ACM Transactions on Modeling and Computer Simulation
isUsedIn C++ standard library <random> as std::mt19937
linked to: MersenneTwister

MATLAB as one of the RNG options
PHP standard library as default RNG for mt_rand
Python random module (CPython) as core generator before Python 3.12
R programming language as default RNG for many years
Ruby standard library as default RNG
many simulation and Monte Carlo applications
temperingPurpose improve equidistribution of output bits

How these facts were elicited

Referenced by (11)

Full triples — surface form annotated when it differs from this entity's canonical label.

Random exportsFunction MersenneTwister
Random definesType MersenneTwister
Random defaultRNGType MersenneTwister
Blum–Blum–Shub pseudorandom number generator comparedTo Mersenne Twister
linked to: MersenneTwister
Mersenne Twister hasFullName Mersenne Twister pseudorandom number generator
subject linked to: MersenneTwister
linked to: MersenneTwister
Mersenne Twister hasVariant MT19937
subject linked to: MersenneTwister
linked to: MersenneTwister
Mersenne Twister hasVariant MT19937-64
subject linked to: MersenneTwister
linked to: MersenneTwister
Mersenne Twister isUsedIn C++ standard library <random> as std::mt19937
subject linked to: MersenneTwister
linked to: MersenneTwister
Mersenne Twister hasPublicationTitle Mersenne Twister: A 623-dimensionally equidistributed uniform pseudorandom number generator
subject linked to: MersenneTwister
linked to: MersenneTwister
Mersenne hasEponymousConcept Mersenne twister
linked to: MersenneTwister
MRG32k3a generator isAlternativeTo Mersenne Twister
linked to: MersenneTwister