मर्सेन ट्विस्टर

मर्सेन ट्विस्टर एक साधारण-उद्देश्य प्रतीतिसंद्ध संख्या उत्पन्नक (पीआरएनजी) है जिसे 1997 में मकोतो (松本 眞) और ताकुजी निशिमुरा (西村 拓士) द्वारा विकसित किया गया था।  इसका नाम इस तथ्य से प्राप्त होता है कि इसकी अवधि की लंबाई को मर्सेन प्रधान संख्या के रूप में चुना जाता है।

मेर्सन ट्विस्टर को विशेष रूप से पुराने पीआरएनजी में पाई गई अधिकांश त्रुटियों को दूर करने के लिए प्ररूपित किया गया था।

मेर्सन ट्विस्टर विधिकलन का सबसे अधिक उपयोग किया जाने वाला संस्करण मेर्सन प्राइम $$2^{19937}-1$$ पर आधारित है। इसका मानक कार्यान्वयन, MT19937, 32-बिट शब्द लंबाई का उपयोग करता है। इसके अतिरिक्त एक और कार्यान्वयन MT19937-64 है जो 64-बिट शब्द लंबाई, का उपयोग करता है। यह एक भिन्न अनुक्रम उत्पन्न करता है।

सॉफ्टवेयर
निम्नलिखित सॉफ्टवेयर द्वारा मेर्सन ट्विस्टर का उपयोग डिफ़ॉल्ट पीआरएनजी के रूप में किया जाता है:

यह अपाचे कॉमन्स में, मानक C++ लाइब्रेरी में (C++11 के उपरांत), और मैथेमैटिका में भी उपलब्ध है। बूस्ट सी++ लाइब्रेरी सहित कई प्रोग्राम लाइब्रेरी जैसे सीयूडीए, और एनएजी न्यूमेरिकल लाइब्रेरी में इसके युग्मित कार्यान्वयन प्रदान किए जाते हैं।
 * प्रोग्रामिंग भाषाएँ: डायलोग एपीएल, आईडीएल, आर, रूबी, फ़्री पास्कल, पीएचपी, पायथन (नमपाइ भी मर्सेन ट्विस्टर का उपयोग करता है, परंतु संस्करण 1.17 से पूर्व इसको डिफ़ॉल्ट यादृच्छिक संख्या उत्पन्नक के रूप में परिवर्तित कर दिया गया था। ),   सीएमयू कॉमन लिस्प, एंबेडेबल कॉमन लिस्प, स्टील बैंक कॉमन लिस्प, जूलिया  (जूलिया 1.6 एलटीएस तक, यह मर्सेन ट्विस्टर उपलब्ध था, परंतु 1.7 के उपरांत डिफ़ॉल्ट यादृच्छिक संख्या उत्पन्नक के रूप में एक बेहतर/तेज़ आरएनजी का उपयोग किया जाता है।
 * लिनक्स लाइब्रेरी और सॉफ्टवेयर: जीएलआईबी, जीएनयू एकाधिक परिशुद्धता अंकगणित लाइब्रेरी, जीएनयू ऑक्टेव, जीएनयू साइंटिफिक लाइब्रेरी
 * अन्य: माइक्रोसॉफ्ट एक्सेल, गॉस, ग्रेटल स्टेटा, सेजमैथ, साइलैब, मेपल, मैटलैब

एसपीएसएस में मेर्सन ट्विस्टर, दो पीआरएनजी में से एक है: अन्य उत्पन्नक केवल पुराने प्रोग्रामों के साथ संगतता हेतु रखा गया है, और मर्सेन ट्विस्टर को "अधिक विश्वसनीय" घोषित किया जाता है। मेर्सन ट्विस्टर इसी तरह एसएएस में विभिन्न पीआरएनजी में से एक है: अन्य उत्पन्नक पुराने और अप्रचलित हैं। मेर्सन ट्विस्टर स्टाटा में डिफ़ॉल्ट पीआरएनजी है, दूसरा स्टाटा के पुराने संस्करणों के साथ संगतता के लिए केआइएसएस विधिकलन का उपयोग किया जाता है।

लाभ

 * क्रिप्टएमटी के अतिरिक्त मेर्सन ट्विस्टर, सभी संस्करणों के लिए अनुमेय-लाइसेंसीकृत और पेटेंट-मुक्त है।
 * मर्सेन ट्विस्टर सांख्यिकीय यादृच्छिकता के लिए कई परीक्षणों, जैसे डाइहार्ड परीक्षण और अधिकांश TestU01 परीक्षणों, को पार करता है। यद्यपि, यह सभी TestU01 परीक्षणों को पूरा नहीं करता है।।
 * बहुत लम्बी अवधि $$2^{19937}-1$$. ध्यान दें कि यद्यपि लंबी अवधि यादृच्छिक संख्या उत्पन्नक में गुणवत्ता की गारंटी नहीं है, छोटी अवधि, जैसे कि $$2^{32}$$ कई पुराने सॉफ़्टवेयर पैकेजों में सामान्य, समस्याग्रस्त हो सकता है।
 * प्रत्येक $$1 \le k \le 623$$ के लिए k-वितरण 32-बिट सटीकता को समर्थित करता है।
 * कार्यान्वयन सामान्यतः हार्डवेयर-कार्यान्वित विधियों की तुलना में तेजी से यादृच्छिक संख्याएं निर्मित करता है। एक अध्ययन में पाया गया कि मेर्सन ट्विस्टर हार्डवेयर-कार्यान्वित, प्रोसेसर-आधारित आरडीरैंड निर्देश समुच्चय की तुलना में लगभग बीस गुना तेजी से 64-बिट फ़्लोटिंग पॉइंट यादृच्छिक संख्याएँ निर्मित करता है।

हानि

 * 2.5 KiB का अपेक्षाकृत बड़ा स्टेट बफर, जब तक कि टाइनीएमटी संस्करण का उपयोग नहीं किया जाता है।
 * आधुनिक मानकों के अनुसार औसत श्रेणी का थ्रूपुट, जब तक कि एसएफएमटी संस्करण का उपयोग नहीं किया जाता है।
 * TestU01 सुइट में क्रश और बिगक्रश दोनों में दो स्पष्ट विफलताएं प्रदर्शित होती हैं। मेर्सन ट्विस्टर की तरह परीक्षण, एक $$\textbf{F}_2$$-बीजगणित पर आधारित है। * कई उदाहरण जो केवल बीजगणितीय मानों में भिन्न होते हैं, सामान्यतः मोंटे कार्लो सिमुलेशन के लिए उपयुक्त नहीं होते हैं। मोंटे-कार्लो सिमुलेशन के लिए स्वतंत्र यादृच्छिक संख्या उत्पन्नक की आवश्यकता होती है, यद्यपि पैरामीटर मानों के कई समुच्चयों को चुनने के लिए एक विधि उपलब्ध है।
 * खराब प्रसार: यदि प्रारंभिक स्थिति अत्यधिक गैर-यादृच्छिक है - विशेषकर यदि प्रारंभिक स्थिति में कई शून्य हैं तो यादृच्छिकता परीक्षण उत्तीर्ण करने वाले आउटपुट को उत्पन्न करने में लंबा समय लग सकता है। इसका एक परिणाम यह है कि उत्पन्नक के दो उदाहरण, प्रारंभिक अवस्थाओं के साथ प्रारंभ हुए जो लगभग समान हैं, सामान्यतः अंततः अलग होने से पहले, कई पुनरावृत्तियों के लिए लगभग समान अनुक्रम का उत्पादन करते हैं। एमटी विधिकलन के लिए 2002 के अपडेट ने आरंभीकरण में सुधार किया है, इसलिए ऐसी स्थिति के साथ प्रारंभ करना असंभव है। जीपीयू संस्करण एमटीजीपी को और भी बेहतर बताया गया है।
 * इसमें 1 से अधिक 0 वाले अनुवर्ती सम्मिलित हैं। इससे कई-शून्य स्टेट से पुनर्प्राप्ति को कठिन बनाने के लिए खराब प्रसार गुण युग्मित हो जाता है।
 * यदि क्रिप्टएमटी संस्करण का उपयोग नहीं किया जाता है तो मर्सेन ट्विस्टर कैरिप्टोग्राफिकली सुरक्षित नहीं होता है। कारण यह है कि पर्याप्त संख्या के आवर्तनों की पर्यवेक्षण (MT19937 के परिप्रेक्ष्य में 624, क्योंकि इससे भविष्य के आवर्तन उत्पन्न होते हैं) से भविष्य के सभी आवर्तनों की पूर्वानुमान करने में सक्षम हो जाता है।

विकल्प
एक वैकल्पिक उत्पन्नक, वेल त्वरित पुनर्प्राप्ति, समान यादृच्छिकता और लगभग समान गति प्रदान करता है।

मार्साग्लिया के एक्सओआर शिफ्ट उत्पन्नक और उनके संस्करण, एलएफएसआर की श्रेणी में सबसे तेज़ हैं।

64-बिट एमईएलजी, के-वितरण गुणों के संदर्भ में पूरी तरह से अनुकूलित हैं।

ऐकॉर्न, जिसका प्रकाशन 1989 मे हुआ था एक और के-वितरित पीआरएनजी है, जो एमटी के समान संगणन गति और बेहतर सांख्यिकीय गुण प्रदर्शित करता है क्योंकि यह सभी उपलब्ध (2019) TestU01 मानदंडों को पूरा करता है; जब मापदंडों के उचित विकल्पों के साथ उपयोग किया जाता है, तो ऐकॉर्न में लंबी अवधि और सटीकता हो सकती है।

पीसीजी परिवार उत्पन्नक, अधिक आधुनिक लंबी अवधि वाला उत्पन्नक है, जिसमें बेहतर कैश स्थानीयता और आधुनिक विश्लेषण विधियों का उपयोग करने वाले पूर्वाग्रह प्रत्यक्ष नहीं है।

के-वितरण
एक w-बिट पूर्वनिर्धारित अनुक्रम $$x_i$$ जिसकी अवधि P है, को v-बिट की सटीकता तक k-वितरित माना जाता है यदि निम्नलिखित समीकरण सत्य होता है।


 * प्राथमिक v बिटों द्वारा गठित संख्या x को truncv(x) से चिह्नित किया जाता है, और k v-बिट सदिशों को P द्वारा चिन्हित किया जाता है तोː
 * $$ (\operatorname{trunc}_v(x_i), \operatorname{trunc}_v(x_{i+1}), \, \ldots, \operatorname{trunc}_v(x_{i+k-1})) \quad (0\leq i< P) $$.
 * तो पूर्ण-शून्य संयोजन को छोड़कर प्रत्येक $$2^{kv}$$ बिट्स का संभावित संयोजन एक अवधि में समान संख्या में होता है, जो एक बार न्यूनतम होता है।

विधिकलन विवरण
डब्ल्यू-बिट शब्द लंबाई के लिए, मेर्सन ट्विस्टर श्रेणी $$[0, 2^w-1]$$ में पूर्णांक उत्पन्न करता है.

मेर्सन ट्विस्टर विधिकलन एक परिमित द्विआधारी अंक प्रणाली क्षेत्र पर पुनरावृत्ति संबंध $$\textbf{F}_2$$ पर आधारित है। विधिकलन एक व्यावर्तित सामान्यीकृत फीडबैक शिफ्ट रजिस्टर है मूल विचार है की किसी श्रृंखला $$x_i$$ को एक सरल पुनरावृत्ति संबंध के माध्यम से परिभाषित करना है, और फिर फॉर्म की आउटपुट संख्याएँ $$x_i^T$$, जहां T एक व्युत्क्रमणीय $$\textbf{F}_2$$-आव्यूह है जिसे विवर्तित प्रतिनिधित्व कहा जाता है।

सामान्य विधिकलन को निम्नलिखित मात्राओं द्वारा दर्शाया जाता है (इनमें से कुछ स्पष्टीकरण शेष विधिकलन को पढ़ने के बाद ही समझ में आते हैं):


 * w: शब्द का आकार (बिट्स की संख्या में)
 * एन: पुनरावृत्ति की श्रेणी
 * एम: मध्य शब्द, $$1 \le m < n$$ श्रृंखला को परिभाषित करने वाले पुनरावृत्ति संबंध में प्रयुक्त एक ऑफसेट $$x$$,
 * आर: एक शब्द $$0 \le r \le w - 1$$ का पृथक्करण बिंदु, या निचले बिटमास्क के बिट्स की संख्या,
 * ए: तर्कसंगत सामान्य रूप ट्विस्ट आव्यूह के गुणांक
 * बी, सी: टीजीएफएसआर (आर) विवर्तन बिटमास्क
 * एस, टी: टीजीएफएसआर (आर) विवर्तन बिट शिफ्ट
 * यू, डी, एल: अतिरिक्त मेर्सन ट्विस्टर विवर्तन बिट शिफ्ट/मास्क

उस प्रतिबंध के साथ $$2^{nw-r}-1$$ एक मेरसेन प्राइम है। यह विकल्प आदिमता परीक्षण और k-वितरण परीक्षण को सरल निर्मित बनाता है जो पैरामीटर खोज में आवश्यक हैं।

श्रृंखला $$x$$ पुनरावृत्ति संबंध के साथ डब्ल्यू-बिट मात्राओं की एक श्रृंखला के रूप में परिभाषित किया गया है:


 * $$x_{k+n} := x_{k+m} \oplus \left( ({x_k}^u \mid {x_{k+1}}^l) A \right)\qquad

k=0,1,\ldots$$ जहाँ $$\mid$$ बिट सदिशों के संयोजन को दर्शाता है (बाईं ओर ऊपरी बिट्स के साथ), $$ \oplus

$$ बिटवाइज़ एकमात्र (XOR), $$ x_{k}^{u}

$$ अर्थात ऊपरी w − r का $$ x_k

$$, और $$ x_{k+1}^{l}

$$ का अर्थ निम्न आर बिट्स है $$ x_{k+1}

$$. विवर्त परिवर्तन ए को तर्कसंगत सामान्य रूप में परिभाषित किया गया है:$$ A = \begin{pmatrix} 0 & I_{w - 1} \\ a_{w-1} & (a_{w - 2}, \ldots, a_0) \end{pmatrix} $$$$ I_{w-1}

$$ के रूप में $$ (w-1)(w-1) $$ शिनाख्त सांचा है। तर्कसंगत सामान्य रूप का लाभ यह है कि ए द्वारा गुणा को कुशलतापूर्वक इस प्रकार व्यक्त किया जा सकता है: (याद रखें कि यहां आव्यूह गुणा किया जा रहा है $$ \textbf{F}_{2}

$$, और इसलिए बिटवाइज़ XOR जोड़ का स्थान लेता है)$$ \boldsymbol{x}A = \begin{cases}\boldsymbol{x} \gg 1 & x_0 = 0\\(\boldsymbol{x} \gg 1) \oplus \boldsymbol{a} & x_0 = 1\end{cases} $$जहाँ $$ x_0

$$ का निम्नतम ऑर्डर बिट $$ x

$$ है.

टीजीएफएसआर (आर) के समान, मेर्सन ट्विस्टर को समान वितरण की कम आयामीता की भरपाई के लिए एक टेम्पर्ड प्रतिनिधित्व के साथ कैस्केड किया गया है। ध्यान दें कि यह आव्यूह ए का उपयोग करने के समान है $$ A = T^{-1}*AT

$$ टी के लिए एक व्युत्क्रम आव्यूह, और इसलिए नीचे उल्लिखित विशेषता बहुपद का विश्लेषण अभी भी मान्य है।

ए के साथ, हम सरलता से गणना करने योग्य होने के लिए एक विवर्तन परिवर्तन चुनते हैं, और इसलिए वास्तव में टी का निर्माण नहीं करते हैं। मेर्सन ट्विस्टर के परिप्रेक्ष्य में आव्यूह को इस प्रकार परिभाषित किया गया है



\begin{aligned} y &\equiv x \oplus ((x\gg u)~\And~d)\\ y &\equiv y \oplus ((y\ll s)~\And~b)\\ y &\equiv y \oplus ((y\ll t)~\And~c)\\ z &\equiv y \oplus (y\gg l) \end{aligned} $$ जहाँ $$x$$ श्रृंखला से अगला मान है, $$y$$ एक अस्थायी मध्यवर्ती मान है, और $$z$$ विधिकलन से $$\ll$$और $$\gg$$ बिट-शिफ्ट के रूप में, और $$\&$$ बिटवाइज तार्किक संयोजन के रूप में लौटाया गया मान है । निचले-बिट समवितरण को बेहतर बनाने के लिए पहला और आखिरी परिवर्तन जोड़ा जाता है। टीजीएफएसआर के गुण से, $$s + t \ge \lfloor{\frac{w}{2}}\rfloor - 1$$ ऊपरी बिट्स के लिए समवितरण की ऊपरी सीमा तक पहुंचना आवश्यक है।

MT19937 के लिए गुणांक हैं:

$$ \begin{aligned} (w, n, m, r) &= (32, 624, 397, 31)\\ a &= \textrm{9908B0DF}_{16}\\ (u, d) &= (11, \textrm{FFFFFFFF}_{16})\\ (s, b) &= (7, \textrm{9D2C5680}_{16})\\ (t, c) &= (15, \textrm{EFC60000}_{16})\\ l &= 18\\ \end{aligned} $$

ध्यान दें कि मेर्सन ट्विस्टर के 32-बिट कार्यान्वयन में सामान्यतः d = FFFFFFFF16 होता है. परिणामस्वरूप, कभी-कभी डी को विधिकलन विवरण से हटा दिया जाता है, क्योंकि उस स्थिति में डी के साथ बिटवाइज़ तार्किक संयोजन का कोई प्रभाव नहीं पड़ता है।

MT19937-64 के लिए गुणांक हैं:

$$ \begin{aligned} (w, n, m, r) = (64, 312, 156, 31)\\ a = \textrm{B5026F5AA96619E9}_{16}\\ (u, d) = (29, \textrm{5555555555555555}_{16})\\ (s, b) = (17, \textrm{71D67FFFEDA60000}_{16})\\ (t, c) = (37, \textrm{FFF7EEE000000000}_{16})\\ l = 43\\ \end{aligned}

$$

आरंभीकरण
मेर्सन ट्विस्टर कार्यान्वयन के लिए आवश्यक स्थिति प्रत्येक डब्ल्यू बिट्स के एन मानों की एक सरणी है। सरणी को प्रारंभ करने के लिए, एक w-बिट बीज मान का उपयोग किया जाता है तथा  $$x_0$$ द्वारा $$x_{n-1}$$ व्यवस्थित करके $$x_0$$ बीज मान और उसके बाद निम्नलिखित को



x_i = f \times (x_{i-1} \oplus (x_{i-1} \gg (w-2))) + i $$ के लिए $$i$$ से $$1$$ को $$n-1$$ के रूप में संयोजित किया जाता है।


 * विधिकलन द्वारा उत्पन्न पहला मान $$x_n$$ उस पर आधारित होता है न की $$x_0$$ पर।
 * स्थिरांक f उत्पन्नक के लिए एक और मापदंड निर्मित करता है, यद्यपि यह विधिकलन का उचित भाग नहीं है।
 * MT19937 के लिए f का मान 1812433253 है।
 * MT19937-64 के लिए f का मान 6364136223846793005 है।

पारंपरिक जीएफएसआर के साथ तुलना
$$2^{nw-r}-1$$ प्राप्त करने के लिए टीजीएफएसआर में अवधि की सैद्धांतिक ऊपरी सीमा, $$\phi_{B}(t)$$ एक प्राथमिक बहुपद होता है $$\phi_{B}(t)$$ का अभिलक्षणिक बहुपदː



B = \begin{pmatrix} 0 & I_w & \cdots & 0 & 0 \\ \vdots & & & & \\ I_w & \vdots & \ddots & \vdots & \vdots \\ \vdots & & & & \\ 0 & 0 & \cdots & I_w & 0 \\ 0 & 0 & \cdots & 0 & I_{w - r} \\ S & 0 & \cdots & 0 & 0 \end{pmatrix} \begin{matrix} \\ \\ \leftarrow m\text{-th row} \\ \\ \\ \\ \end{matrix} $$ है।

S = \begin{pmatrix} 0 & I_r \\ I_{w - r} & 0 \end{pmatrix} A $$ ट्विस्ट परिवर्तन निम्नलिखित प्रमुख गुणों के साथ पारंपरिक जीएफएसआर में सुधार करता है:


 * अवधि सैद्धांतिक ऊपरी सीमा $$2^{nw-r}-1$$ तक प्रसारित होती है (सिवाय यदि 0 से प्रारंभ किया गया हो)
 * एन आयामों में समान वितरण (उदाहरण के लिए रैखिक सर्वांगसम उत्पन्नक पांच आयामों में उचित वितरण का सर्वोत्तम प्रबंधन कर सकता है)

स्यूडोकोड
निम्नलिखित स्यूडोकोड सामान्य मेर्सन ट्विस्टर विधिकलन को लागू करता है। स्थिरांक w, n, m, r, a, u, d, s, b, t, c, l, और f उपरोक्त विधिकलन विवरण के अनुसार हैं। यह माना जाता है कि int w बिट्स के साथ मान रखने के लिए पर्याप्त टाइप का प्रतिनिधित्व करता है: // Create a length n array to store the state of the generator

int[0..n-1] MT int index := n+1 const int lower_mask = (1 << r) - 1 // That is, the binary number of r 1's const int upper_mask = lowest w bits of (not lower_mask) // Initialize the generator from a seed function seed_mt(int seed) { index := n MT[0] := seed for i from 1 to (n - 1) { // loop over each element MT[i] := lowest w bits of (f * (MT[i-1] xor (MT[i-1] >> (w-2))) + i)     } } // Extract a tempered value based on MT[index] // calling twist every n numbers function extract_number { if index >= n { if index > n { error "Generator was never seeded" // Alternatively, seed with constant value; 5489 is used in reference C code }         twist }     int y := MT[index] y := y xor ((y >> u) and d) y := y xor ((y << s) and b) y := y xor ((y << t) and c) y := y xor (y >> l) index := index + 1 return lowest w bits of (y) } // Generate the next n values from the series x_i function twist { for i from 0 to (n-1) { int x := (MT[i] and upper_mask) | (MT[(i+1) mod n ] and lower_mask) int xA := x >> 1 if (x mod 2) != 0 { // lowest bit of x is 1 xA := xA xor a }         MT[i] := MT[(i + m) mod n] xor xA      } index := 0 }

क्रिप्टएमटी
क्रिप्टएमटी एक स्ट्रीम साइफर तथा क्रिप्टोग्राफ़िक रूप से सुरक्षित छद्म यादृच्छिक संख्या उत्पन्नक है जो आंतरिक रूप से मेर्सन ट्विस्टर का उपयोग करता है। इसे मात्सुमोतो और निशिमुरा ने मारिको हागिटा और मुत्सुओ सैतो के साथ मिलकर विकसित किया था। इसे ईक्रिप्ट नेटवर्क के ईस्ट्रीम परियोजना में प्रस्तुत किया गया था। मेर्सन ट्विस्टर या इसके अन्य संस्करणों के विपरीत, क्रिप्टएमटी सॉफ्टवेयर एकस्व है।

एमटीजीपी
एमटीजीपी मुत्सुओ सैटो और माकोतो मात्सुमोतो द्वारा प्रकाशित ग्राफ़िक्स प्रोसेसिंग इकाई के लिए अनुकूलित मेर्सन ट्विस्टर का एक प्रकार है। मूल रैखिक पुनरावृत्ति संचालन एमटी से विस्तृत होते हैं और पैरामीटर्स चुने जाते हैं ताकि कई थ्रेड समानांतर में पुनरावृत्ति की गणना कर सकें, साथ ही अपने स्थिति स्थान को साझा करके मेमोरी लोड को कम कर सकें। लेख में एमटी पर समान वितरण में सुधार और 5×10 के लिए 4.7 एमएस के अत्यधिक पुराने जीपीयू (192 कोर के साथ  एनविडिया जीटीएक्स 260) पर प्रदर्शन का दावा किया गया है।

एसएफएमटी
एसएफएमटी (एकल निर्देश, एकाधिक डेटा-उन्मुख फास्ट मेर्सन ट्विस्टर) मेर्सन ट्विस्टर का एक प्रकार है, जिसे 2006 में प्रस्तुत किया गया था। इसे 128-बिट एसआइएमडी पर चलते समय तेज़ बनाने के लिए प्रारूपित किया गया है।


 * यह मेरसेन ट्विस्टर से लगभग दोगुना तेज़ है।
 * एसएफएमटी, एमटी की तुलना में वी-बिट सटीकता के साथ बेहतर इक्विडिस्ट्रीब्यूशन गुणधर्म रखता है, परंतु यह वेल की तुलना में बेहतर नहीं है।
 * इसमें एमटी की तुलना में शून्य-अतिरिक्त प्रारंभिक अवस्था से त्वरित पुनर्प्राप्ति होती है, लेकिन वेल की तुलना में धीमी होती है।
 * यह 2607 − 1 से 2216091 − 1 तक विभिन्न अवधियों का समर्थन करता है।

इंटेल एसएसई2 और पावरपीसी अल्टीवेक एसएफएमटी द्वारा समर्थित हैं। इसका उपयोग प्लेस्टेशन 3 में सेल वाले खेल के लिए भी किया जाता है।

टाइनीएमटी
टाइनीएमटी मेरसेन ट्विस्टर का एक प्रकार है, जिसे 2011 में सैटो और मात्सुमोतो द्वारा प्रस्तावित किया गया था। टाइनीएमटी केवल 127 बिट्स स्टेट स्पेस का उपयोग करता है, जो मूल स्टेट के 2.5 KiB की तुलना में एक महत्वपूर्ण कमी है। यद्यपि, इसकी एक अवधि $$ 2^{127}-1

$$ होती है जो मूल एमटी से अत्यधिक छोटी है, इसलिए लेखकों द्वारा इसकी अनुशंसा केवल उन स्थितियों में की जाती है जहां मेमोरी प्रमुख है।

बाहरी संबंध

 * The academic paper for MT, and related articles by Makoto Matsumoto
 * Mersenne Twister home page, with codes in C, Fortran, Java, Lisp and some other languages
 * Mersenne Twister examples — a collection of Mersenne Twister implementations, in several programming languages - at GitHub
 * SFMT in Action: Part I – Generating a DLL Including SSE2 Support – at Code Project