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

From Vigyanwiki

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

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

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

आवेदन

सॉफ्टवेयर

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

यह अपाचे कॉमन्स में भी उपलब्ध है,[30] मानक C++ लाइब्रेरी में (C++11 के बाद से),[31][32] और गणित में.[33] बूस्ट (सी++ लाइब्रेरीज़)|बूस्ट सी++ लाइब्रेरीज़ सहित कई प्रोग्राम लाइब्रेरीज़ में ऐड-ऑन कार्यान्वयन प्रदान किए जाते हैं।[34] सीयूडीए,[35] और एनएजी न्यूमेरिकल लाइब्रेरी[36] मेर्सन ट्विस्टर एसपीएसएस में दो पीआरएनजी में से एक है: अन्य जनरेटर केवल पुराने कार्यक्रमों के साथ संगतता के लिए रखा गया है, और मेर्सन ट्विस्टर को अधिक विश्वसनीय बताया गया है।[37] मेर्सन ट्विस्टर इसी तरह एसएएस (सॉफ्टवेयर) में पीआरएनजी में से एक है: अन्य जनरेटर पुराने और अप्रचलित हैं।[38] मेर्सन ट्विस्टर स्टाटा में डिफ़ॉल्ट पीआरएनजी है, दूसरा स्टाटा के पुराने संस्करणों के साथ संगतता के लिए KISS (एल्गोरिदम) है।[39]


लाभ

  • अनुमेय सॉफ़्टवेयर लाइसेंस|क्रिप्टएमटी को छोड़कर सभी वेरिएंट के लिए अनुमेय-लाइसेंसीकृत और पेटेंट-मुक्त।
  • सांख्यिकीय यादृच्छिकता के लिए कई परीक्षण पास करता है, जिसमें डाइहार्ड परीक्षण और अधिकांश, लेकिन सभी TestU01 परीक्षण शामिल नहीं हैं।[40]
  • बहुत लम्बी अवधि . ध्यान दें कि जबकि लंबी अवधि यादृच्छिक संख्या जनरेटर में गुणवत्ता की गारंटी नहीं है, छोटी अवधि, जैसे कि कई पुराने सॉफ़्टवेयर पैकेजों में सामान्य, समस्याग्रस्त हो सकता है।[41]
  • #k-वितरण|k-वितरित प्रत्येक के लिए 32-बिट सटीकता (k-वितरित की परिभाषा के लिए, #k-वितरण देखें)
  • कार्यान्वयन आम तौर पर हार्डवेयर-कार्यान्वित तरीकों की तुलना में तेजी से यादृच्छिक संख्याएं बनाता है। एक अध्ययन में पाया गया कि मेर्सन ट्विस्टर हार्डवेयर-कार्यान्वित, प्रोसेसर-आधारित RDRAND निर्देश सेट की तुलना में लगभग बीस गुना तेजी से 64-बिट फ़्लोटिंग पॉइंट यादृच्छिक संख्याएँ बनाता है।[42]


नुकसान

  • 2.5 KiB का अपेक्षाकृत बड़ा राज्य बफर, जब तक कि TinyMT वैरिएंट (नीचे चर्चा की गई) का उपयोग नहीं किया जाता है।
  • आधुनिक मानकों के अनुसार औसत दर्जे का थ्रूपुट, जब तक कि एसएफएमटी संस्करण (नीचे चर्चा की गई) का उपयोग नहीं किया जाता है।[43]
  • TestU01 सुइट में क्रश और बिगक्रश दोनों में दो स्पष्ट विफलताएं (रैखिक जटिलता) प्रदर्शित होती हैं। मेर्सन ट्विस्टर की तरह परीक्षण, एक पर आधारित है -बीजगणित।[40]* कई उदाहरण जो केवल बीज मूल्य (लेकिन अन्य मापदंडों में नहीं) में भिन्न होते हैं, आम तौर पर मोंटे कार्लो सिमुलेशन के लिए उपयुक्त नहीं होते हैं। मोंटे-कार्लो सिमुलेशन के लिए स्वतंत्र यादृच्छिक संख्या जनरेटर की आवश्यकता होती है, हालांकि पैरामीटर मानों के कई सेट चुनने के लिए एक विधि मौजूद है।[44][45]
  • खराब प्रसार: यादृच्छिकता परीक्षण पास करने वाले आउटपुट को उत्पन्न करने में लंबा समय लग सकता है, यदि प्रारंभिक स्थिति अत्यधिक गैर-यादृच्छिक है - खासकर यदि प्रारंभिक स्थिति में कई शून्य हैं। इसका एक परिणाम यह है कि जनरेटर के दो उदाहरण, प्रारंभिक अवस्थाओं के साथ शुरू हुए जो लगभग समान हैं, आमतौर पर अंततः अलग होने से पहले, कई पुनरावृत्तियों के लिए लगभग समान अनुक्रम का उत्पादन करेंगे। एमटी एल्गोरिदम के लिए 2002 के अपडेट ने आरंभीकरण में सुधार किया है, इसलिए ऐसी स्थिति के साथ शुरुआत करना बहुत ही असंभव है।[46] GPU संस्करण (MTGP) को और भी बेहतर बताया गया है।[47]
  • इसमें 1 से अधिक 0 वाले अनुवर्ती शामिल हैं। इससे कई-शून्य राज्यों से पुनर्प्राप्ति को कठिन बनाने के लिए खराब प्रसार संपत्ति जुड़ जाती है।
  • सीएसपीआरएनजी नहीं है, जब तक कि क्रिप्टएमटी वैरिएंट (नीचे चर्चा की गई) का उपयोग नहीं किया जाता है। इसका कारण यह है कि पर्याप्त संख्या में पुनरावृत्तियों (MT19937 के मामले में 624, क्योंकि यह राज्य वेक्टर का आकार है जिससे भविष्य की पुनरावृत्तियाँ उत्पन्न होती हैं) का अवलोकन करने से किसी को भविष्य की सभी पुनरावृत्तियों की भविष्यवाणी करने की अनुमति मिलती है।

विकल्प

एक वैकल्पिक जनरेटर, अच्छी तरह से समान वितरित लंबी अवधि रैखिक (अच्छी तरह से समान रूप से वितरित लंबी अवधि की रैखिक), त्वरित पुनर्प्राप्ति, समान यादृच्छिकता और लगभग समान गति प्रदान करता है।[48] मार्साग्लिया के एxorshift जनरेटर और वेरिएंट एलएफएसआर की श्रेणी में सबसे तेज़ हैं।[49] 64-बिट एमईएलजी (64-बिट अधिकतम समान वितरित -मेर्सन प्राइम पीरियड के साथ लीनियर जेनरेटर) के-वितरण गुणों के संदर्भ में पूरी तरह से अनुकूलित हैं।[50] ACORN (PRNG) (प्रकाशित 1989) एक और k-वितरित PRNG है, जो MT के समान कम्प्यूटेशनल गति और बेहतर सांख्यिकीय गुण दिखाता है क्योंकि यह सभी मौजूदा (2019) TestU01 मानदंडों को पूरा करता है; जब मापदंडों के उचित विकल्पों के साथ उपयोग किया जाता है, तो ACORN में मनमाने ढंग से लंबी अवधि और सटीकता हो सकती है।

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


के-वितरण

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

ट्रंक करने दोv(x) x के अग्रणी v बिट्स द्वारा बनाई गई संख्या को निरूपित करें, और k v-बिट वैक्टर के P पर विचार करें
.
फिर प्रत्येक बिट्स का संभावित संयोजन एक अवधि में समान संख्या में होता है, पूर्ण-शून्य संयोजन को छोड़कर जो एक बार कम बार होता है।

एल्गोरिथम विवरण

मेर्सन ट्विस्टर का उपयोग करके छद्म-यादृच्छिक 32-बिट पूर्णांकों की पीढ़ी का विज़ुअलाइज़ेशन। 'नंबर निकालें' अनुभाग एक उदाहरण दिखाता है जहां पूर्णांक 0 पहले ही आउटपुट हो चुका है और सूचकांक पूर्णांक 1 पर है। 'जनरेट नंबर' तब चलाया जाता है जब सभी पूर्णांक आउटपुट हो चुके होते हैं।

डब्ल्यू-बिट शब्द लंबाई के लिए, मेर्सन ट्विस्टर श्रेणी में पूर्णांक उत्पन्न करता है .

मेर्सन ट्विस्टर एल्गोरिदम एक परिमित बाइनरी अंक प्रणाली फ़ील्ड (गणित) पर पुनरावृत्ति संबंध पर आधारित है . एल्गोरिदम एक मुड़ा हुआ सामान्यीकृत फीडबैक शिफ्ट रजिस्टर है[52] (ट्विस्टेड जीएफएसआर, या टीजीएफएसआर) तर्कसंगत सामान्य रूप (टीजीएफएसआर (आर)) के साथ, स्टेट बिट रिफ्लेक्शन और टेम्परिंग के साथ। मूल विचार एक श्रृंखला को परिभाषित करना है एक सरल पुनरावृत्ति संबंध के माध्यम से, और फिर फॉर्म की आउटपुट संख्याएँ , जहां T एक व्युत्क्रमणीय है -मैट्रिक्स को टेम्पर्ड प्रतिनिधित्व कहा जाता है।

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

  • w: शब्द का आकार (बिट्स की संख्या में)
  • एन: पुनरावृत्ति की डिग्री
  • एम: मध्य शब्द, श्रृंखला को परिभाषित करने वाले पुनरावृत्ति संबंध में प्रयुक्त एक ऑफसेट ,
  • आर: एक शब्द का पृथक्करण बिंदु, या निचले बिटमास्क के बिट्स की संख्या,
  • ए: तर्कसंगत सामान्य रूप ट्विस्ट मैट्रिक्स के गुणांक
  • बी, सी: टीजीएफएसआर (आर) टेम्परिंग बिटमास्क
  • एस, टी: टीजीएफएसआर (आर) टेम्परिंग बिट शिफ्ट
  • यू, डी, एल: अतिरिक्त मेर्सन ट्विस्टर टेम्परिंग बिट शिफ्ट/मास्क

उस प्रतिबंध के साथ एक मेरसेन प्राइम है। यह विकल्प आदिमता परीक्षण और K-वितरण|k-वितरण परीक्षण को सरल बनाता है जो पैरामीटर खोज में आवश्यक हैं।

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

कहाँ बिट वैक्टरों के संयोजन को दर्शाता है (बाईं ओर ऊपरी बिट्स के साथ), बिटवाइज़ एकमात्र (XOR), मतलब ऊपरी wr का , और का मतलब निम्न आर बिट्स है . मोड़ परिवर्तन ए को तर्कसंगत सामान्य रूप में परिभाषित किया गया है:

साथ के रूप में शिनाख्त सांचा। तर्कसंगत सामान्य रूप का लाभ यह है कि ए द्वारा गुणा को कुशलतापूर्वक इस प्रकार व्यक्त किया जा सकता है: (याद रखें कि यहां मैट्रिक्स गुणा किया जा रहा है , और इसलिए बिटवाइज़ XOR जोड़ का स्थान लेता है)
कहाँ का निम्नतम ऑर्डर बिट है .

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

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

कहाँ श्रृंखला से अगला मान है, एक अस्थायी मध्यवर्ती मूल्य है, और एल्गोरिथ्म से लौटाया गया मान है और बिट-शिफ्ट के रूप में, और बिटवाइज तार्किक संयोजन के रूप में। निचले-बिट समवितरण को बेहतर बनाने के लिए पहला और आखिरी परिवर्तन जोड़ा जाता है। टीजीएफएसआर की संपत्ति से, ऊपरी बिट्स के लिए समवितरण की ऊपरी सीमा तक पहुंचना आवश्यक है।

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

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

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


आरंभीकरण

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

के लिए से को .

  • एल्गोरिदम द्वारा उत्पन्न पहला मान उस पर आधारित होता है , पर नहीं .
  • स्थिरांक f जनरेटर के लिए एक और पैरामीटर बनाता है, हालांकि एल्गोरिदम का उचित हिस्सा नहीं है।
  • MT19937 के लिए f का मान 1812433253 है।
  • MT19937-64 के लिए f का मान 6364136223846793005 है।[53]


शास्त्रीय जीएफएसआर के साथ तुलना

हासिल करने के लिए टीजीएफएसआर में अवधि की सैद्धांतिक ऊपरी सीमा, एक आदिम बहुपद (क्षेत्र सिद्धांत) होना चाहिए, का अभिलक्षणिक बहुपद होना

ट्विस्ट परिवर्तन निम्नलिखित प्रमुख गुणों के साथ शास्त्रीय जीएफएसआर में सुधार करता है:

  • अवधि सैद्धांतिक ऊपरी सीमा तक पहुँचती है (सिवाय यदि 0 से प्रारंभ किया गया हो)
  • एन आयामों में समान वितरण (उदाहरण के लिए रैखिक सर्वांगसम जनरेटर पांच आयामों में उचित वितरण का सर्वोत्तम प्रबंधन कर सकता है)

स्यूडोकोड

निम्नलिखित छद्मकोड सामान्य मेर्सन ट्विस्टर एल्गोरिथ्म को लागू करता है। स्थिरांक w, n, m, r, a, u, d, s, b, t, c, l, और f उपरोक्त एल्गोरिथम विवरण के अनुसार हैं। यह माना जाता है कि int w बिट्स के साथ मान रखने के लिए पर्याप्त प्रकार का प्रतिनिधित्व करता है:

 // जनरेटर की स्थिति को संग्रहीत करने के लिए एक लंबाई एन सरणी बनाएं
 int[0..n-1] एमटी
 पूर्णांक सूचकांक := n+1
 const int low_mask = (1 << r) - 1 // अर्थात, r 1 की द्विआधारी संख्या
 स्थिरांक पूर्णांक ऊपरी_मास्क = निम्नतम डब्ल्यू बिट्स (बिटवाइज़ ऑपरेशन # लोअर_मास्क नहीं)
 
 // एक बीज से जनरेटर आरंभ करें
 फ़ंक्शन सीड_एमटी(इंट सीड) {
     सूचकांक := एन
     एमटी[0] := बीज
     i के लिए 1 से (n - 1) तक { // प्रत्येक तत्व पर लूप
         MT[i] := न्यूनतम w बिट्स (f * (MT[i-1] बिटवाइज़ ऑपरेशन#XOR (MT[i-1] >> (w-2))) + i)
     }
 }
 
 // एमटी[सूचकांक] के आधार पर एक टेम्पर्ड मान निकालें
 // प्रत्येक n संख्या में ट्विस्ट() को कॉल करना
 फ़ंक्शन एक्सट्रेक्ट_नंबर() {
     यदि सूचकांक >= n {
         यदि सूचकांक > n {
           त्रुटि जेनरेटर कभी भी सीड नहीं किया गया था
           //वैकल्पिक रूप से, स्थिर मूल्य वाला बीज; 5489 का उपयोग संदर्भ सी कोड में किया जाता है[54]}
         मोड़()
     }
 
     'int' y := MT[सूचकांक]
     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')
 
     सूचकांक := सूचकांक + 1
     (y) के निम्नतम 'w' बिट्स 'वापसी' करें
 }
 
 // श्रृंखला x_i से अगले n मान उत्पन्न करें
 'फ़ंक्शन' ट्विस्ट() {
     'के लिए' मैं 'से' 0 'से' ('एन'-1) {
         'int' x := (MT[i] 'बिटवाइज़ ऑपरेशन#AND' अपर_मास्क)
                   | (एमटी[(i+1) 'मोडुलो ऑपरेशन' 'एन'] 'बिटवाइज़ ऑपरेशन#और' लोअर_मास्क)
         'int' xA := x >> 1
         'if' (x 'मोडुलो ऑपरेशन' 2) != 0 {// x का निम्नतम बिट 1 है
             xA := xA 'बिटवाइज़ ऑपरेशन#XOR' 'a'
         }
         MT[i] := MT[(i + 'm') 'मोडुलो ऑपरेशन' 'n'] 'बिटवाइज़ ऑपरेशन#XOR' xA
     }
     सूचकांक := 0
 }

वेरिएंट

क्रिप्टएमटी

CryptMT एक धारा सिफर और क्रिप्टोग्राफ़िक रूप से सुरक्षित छद्म यादृच्छिक संख्या जनरेटर है जो आंतरिक रूप से मेर्सन ट्विस्टर का उपयोग करता है।[55][56] इसे मात्सुमोतो और निशिमुरा ने मारिको हागिटा और मुत्सुओ सैतो के साथ मिलकर विकसित किया था। इसे eCRYPT नेटवर्क के eSTREAM प्रोजेक्ट में सबमिट किया गया है।[55]मेर्सन ट्विस्टर या इसके अन्य डेरिवेटिव के विपरीत, क्रिप्टएमटी सॉफ्टवेयर पेटेंट है।

एमटीजीपी

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

सुफ़ा

{{Expand section|date=June 2007}एसएफएमटी (एकल निर्देश, एकाधिक डेटा-उन्मुख फास्ट मेर्सन ट्विस्टर) मेर्सन ट्विस्टर का एक प्रकार है, जिसे 2006 में पेश किया गया था।[58] 128-बिट SIMD पर चलने पर इसे तेज़ बनाने के लिए डिज़ाइन किया गया है।

  • यह मेरसेन ट्विस्टर से लगभग दोगुना तेज़ है।[59]
  • इसमें एमटी की तुलना में वी-बिट सटीकता की बेहतर समान वितरण संपत्ति है, लेकिन वेल इक्विडिस्ट्रिब्यूटेड लॉन्ग-पीरियड लीनियर | वेल (वेल इक्विडिस्ट्रिब्यूटेड लॉन्ग-पीरियड लीनियर) से भी बदतर है।
  • इसमें MT की तुलना में शून्य-अतिरिक्त प्रारंभिक अवस्था से त्वरित पुनर्प्राप्ति होती है, लेकिन WELL की तुलना में धीमी होती है।
  • यह 2 से विभिन्न अवधियों का समर्थन करता है607- 1 से 2216091--1.

Intel SSE2 और PowerPC AltiVec SFMT द्वारा समर्थित हैं। इसका उपयोग PlayStation 3 में सेल (माइक्रोप्रोसेसर) वाले गेम के लिए भी किया जाता है।[60]


टाइनीएमटी

टाइनीएमटी मेरसेन ट्विस्टर का एक प्रकार है, जिसे 2011 में सैटो और मात्सुमोतो द्वारा प्रस्तावित किया गया था।[61] TinyMT केवल 127 बिट्स स्टेट स्पेस का उपयोग करता है, जो मूल स्टेट के 2.5 KiB की तुलना में एक महत्वपूर्ण कमी है। हालाँकि, इसकी एक अवधि होती है , मूल से बहुत छोटा है, इसलिए लेखकों द्वारा इसकी अनुशंसा केवल उन मामलों में की जाती है जहां मेमोरी प्रीमियम पर है।

संदर्भ

  1. Matsumoto, M.; Nishimura, T. (1998). "Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator" (PDF). ACM Transactions on Modeling and Computer Simulation. 8 (1): 3–30. CiteSeerX 10.1.1.215.1141. doi:10.1145/272991.272995. S2CID 3332028.
  2. E.g. Marsland S. (2011) Machine Learning (CRC Press), §4.1.1. Also see the section "Adoption in software systems".
  3. John Savard. "मेर्सन ट्विस्टर". A subsequent paper, published in the year 2000, gave five additional forms of the Mersenne Twister with period 2^19937-1. All five were designed to be implemented with 64-bit arithmetic instead of 32-bit arithmetic.
  4. "यादृच्छिक लिंक". Dyalog Language Reference Guide. Retrieved 2020-06-04.
  5. "रैंडोमू (आईडीएल संदर्भ)". Exelis VIS Docs Center. Retrieved 2013-08-23.
  6. "यादृच्छिक संख्या जेनरेटर". CRAN Task View: Probability Distributions. Retrieved 2012-05-29.
  7. ""यादृच्छिक" वर्ग दस्तावेज़ीकरण". Ruby 1.9.3 documentation. Retrieved 2012-05-29.
  8. "रैंडम". free pascal documentation. Retrieved 2013-11-28.
  9. "mt_rand — Generate a better random value". PHP Manual. Retrieved 2016-03-02.
  10. "NumPy 1.17.0 Release Notes — NumPy v1.21 Manual". numpy.org. Retrieved 2021-06-29.
  11. "9.6 random — Generate pseudo-random numbers". Python v2.6.8 documentation. Retrieved 2012-05-29.
  12. "8.6 random — Generate pseudo-random numbers". Python v3.2 documentation. Retrieved 2012-05-29.
  13. "random — Generate pseudo-random numbers — Python 3.8.3 documentation". Python 3.8.3 documentation. Retrieved 2020-06-23.
  14. "डिज़ाइन विकल्प और एक्सटेंशन". CMUCL User's Manual. Retrieved 2014-02-03.
  15. "यादृच्छिक अवस्थाएँ". The ECL manual. Retrieved 2015-09-20.
  16. "यादृच्छिक संख्या सृजन". SBCL User's Manual.
  17. "Random Numbers · The Julia Language". docs.julialang.org. Retrieved 2022-06-21.
  18. "Random Numbers: GLib Reference Manual".
  19. "यादृच्छिक संख्या एल्गोरिदम". GNU MP. Retrieved 2013-11-21.
  20. "16.3 Special Utility Matrices". GNU Octave. Built-in Function: rand
  21. "यादृच्छिक संख्या पर्यावरण चर". GNU Scientific Library. Retrieved 2013-11-24.
  22. Mélard, G. (2014), "On the accuracy of statistical procedures in Microsoft Excel 2010", Computational Statistics, 29 (5): 1095–1128, CiteSeerX 10.1.1.455.5508, doi:10.1007/s00180-014-0482-5, S2CID 54032450.
  23. "GAUSS 14 Language Reference" (PDF).
  24. "uniform". Gretl Function Reference.
  25. "New random-number generator—64-bit Mersenne Twister".
  26. "Probability Distributions — Sage Reference Manual v7.2: Probablity".
  27. "भव्य - यादृच्छिक संख्याएँ". Scilab Help.
  28. "रैंडम संख्या जनरेटर". Maple Online Help. Retrieved 2013-11-21.
  29. "यादृच्छिक संख्या जनरेटर एल्गोरिदम". Documentation Center, MathWorks.
  30. "डेटा जनरेशन". Apache Commons Math User Guide.
  31. "C++11 में यादृच्छिक संख्या सृजन" (PDF). Standard C++ Foundation.
  32. "std::mersenne_twister_engine". Pseudo Random Number Generation. Retrieved 2012-09-25.
  33. [1] Mathematica Documentation
  34. "boost/random/mersenne_twister.hpp". Boost C++ Libraries. Retrieved 2012-05-29.
  35. "होस्ट एपीआई अवलोकन". CUDA Toolkit Documentation. Retrieved 2016-08-02.
  36. "G05 – Random Number Generators". NAG Library Chapter Introduction. Retrieved 2012-05-29.
  37. "यादृच्छिक संख्या जेनरेटर". IBM SPSS Statistics. Retrieved 2013-11-21.
  38. "यादृच्छिक-संख्या फ़ंक्शंस का उपयोग करना". SAS Language Reference. Retrieved 2013-11-21.
  39. Stata help: set rng -- Set which random-number generator (RNG) to use
  40. 40.0 40.1 P. L'Ecuyer and R. Simard, "TestU01: "A C library for empirical testing of random number generators", ACM Transactions on Mathematical Software, 33, 4, Article 22 (August 2007).
  41. Note: 219937 is approximately 4.3 × 106001; this is many orders of magnitude larger than the estimated number of particles in the observable universe, which is 1087.
  42. Route, Matthew (August 10, 2017). "रेडियो-फ्लेयरिंग अल्ट्राकूल बौना जनसंख्या संश्लेषण". The Astrophysical Journal. 845 (1): 66. arXiv:1707.02212. Bibcode:2017ApJ...845...66R. doi:10.3847/1538-4357/aa7ede. S2CID 118895524.
  43. "SIMD-oriented Fast Mersenne Twister (SFMT): twice faster than Mersenne Twister". Japan Society for the Promotion of Science. Retrieved 27 March 2017.
  44. Makoto Matsumoto; Takuji Nishimura. "छद्म यादृच्छिक संख्या जेनरेटर का गतिशील निर्माण" (PDF). Retrieved 19 July 2015.
  45. Hiroshi Haramoto; Makoto Matsumoto; Takuji Nishimura; François Panneton; Pierre L'Ecuyer. "Efficient Jump Ahead for F2-Linear Random Number Generators" (PDF). Retrieved 12 Nov 2015.
  46. "mt19937ar: Mersenne Twister with improved initialization". hiroshima-u.ac.jp. Retrieved 4 October 2015.
  47. Fog, Agner (1 May 2015). "वेक्टर प्रोसेसर और मल्टीकोर प्रोसेसर के लिए छद्म-यादृच्छिक संख्या जेनरेटर". Journal of Modern Applied Statistical Methods. 14 (1): 308–334. doi:10.22237/jmasm/1430454120.
  48. P. L'Ecuyer, "Uniform Random Number Generators", International Encyclopedia of Statistical Science, Lovric, Miodrag (Ed.), Springer-Verlag, 2010.
  49. "xorshift*/xorshift+ generators and the PRNG shootout".
  50. Harase, S.; Kimoto, T. (2018). "Implementing 64-bit Maximally Equidistributed F2-Linear Generators with Mersenne Prime Period". ACM Transactions on Mathematical Software. 44 (3): 30:1–30:11. arXiv:1505.06582. doi:10.1145/3159444. S2CID 14923086.
  51. "पीसीजी पेपर". 27 July 2017.
  52. Matsumoto, M.; Kurita, Y. (1992). "मुड़े हुए जीएफएसआर जनरेटर". ACM Transactions on Modeling and Computer Simulation. 2 (3): 179–194. doi:10.1145/146382.146383. S2CID 15246234.
  53. 53.0 53.1 "std::mersenne_twister_engine". Pseudo Random Number Generation. Retrieved 2015-07-20.
  54. Takuji Nishimura; Makoto Matsumoto. "A C-program for MT19937, with initialization improved 2002/1/26". Retrieved 20 July 2015.
  55. 55.0 55.1 "क्रिप्टएमटी और फ़ुबुकी". eCRYPT. Retrieved 2017-11-12.
  56. Matsumoto, Makoto; Nishimura, Takuji; Hagita, Mariko; Saito, Mutsuo (2005). "Cryptographic Mersenne Twister and Fubuki Stream/Block Cipher" (PDF).
  57. Mutsuo Saito; Makoto Matsumoto (2010). "मेरसेन ट्विस्टर के वेरिएंट ग्राफिक प्रोसेसर के लिए उपयुक्त हैं". arXiv:1005.4973v3 [cs.MS].
  58. "SIMD-उन्मुख फास्ट मेरसेन ट्विस्टर (SFMT)". hiroshima-u.ac.jp. Retrieved 4 October 2015.
  59. "SFMT:Comparison of speed". hiroshima-u.ac.jp. Retrieved 4 October 2015.
  60. "PlayStation3 License". scei.co.jp. Retrieved 4 October 2015.
  61. "टिनी मेरसेन ट्विस्टर (टिनीएमटी)". hiroshima-u.ac.jp. Retrieved 4 October 2015.


अग्रिम पठन


बाहरी संबंध