MersenneTwister
E440656
MersenneTwister is a widely used pseudorandom number generator algorithm known for its long period and high-quality statistical properties.
Observed surface forms (1)
| Surface form | Occurrences |
|---|---|
| Mersenne Twister | 1 |
Statements (50)
| Predicate | Object |
|---|---|
| instanceOf |
PRNG algorithm
ⓘ
pseudorandom number generator ⓘ |
| basedOn | Mersenne prime 2^19937 − 1 ⓘ |
| designedBy |
Makoto Matsumoto
NERFINISHED
ⓘ
Takuji Nishimura NERFINISHED ⓘ |
| designYear | 1997 ⓘ |
| hasAbbreviation | MT NERFINISHED ⓘ |
| 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 NERFINISHED ⓘ |
| 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 NERFINISHED ⓘ |
| hasPublicationYear | 1998 ⓘ |
| hasSeedingRequirement | requires 624 32-bit integers for full state (MT19937) ⓘ |
| hasStateSizeBits | 19937 ⓘ |
| hasStateVectorLength | 624 ⓘ |
| hasVariant |
MT19937
NERFINISHED
ⓘ
MT19937-64 NERFINISHED ⓘ TinyMT NERFINISHED ⓘ |
| 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
NERFINISHED
ⓘ
C++ NERFINISHED ⓘ Java NERFINISHED ⓘ Python NERFINISHED ⓘ many other programming languages ⓘ |
| isNotRecommendedFor | cryptographic applications ⓘ |
| isPublishedIn | ACM Transactions on Modeling and Computer Simulation NERFINISHED ⓘ |
| isUsedIn |
C++ standard library <random> as std::mt19937
NERFINISHED
ⓘ
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 ⓘ |
Referenced by (4)
Full triples — surface form annotated when it differs from this entity's canonical label.
this entity surface form:
Mersenne Twister