रैखिक सर्वांगसम जनक

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

जनरेटर को पुनरावृत्ति संबंध द्वारा परिभाषित किया गया है:


 * $$X_{n+1} = \left( a X_n + c \right)\bmod m$$

कहाँ $$X$$ छद्म-यादृच्छिक मूल्यों का क्रम है, और


 * $$ m,\, 0<m $$ - मॉड्यूलो ऑपरेशन
 * $$ a,\,0 < a < m$$ -गुणक
 * $$ c,\,0 \le c < m$$ - वृद्धि
 * $$ X_0,\,0 \le X_0 < m$$ - बीज या प्रारंभ मूल्य

पूर्णांक स्थिरांक हैं जो जनरेटर को निर्दिष्ट करते हैं। यदि c = 0, जनरेटर को अक्सर 'गुणक सर्वांगसम जनरेटर' (MCG), या लेहमर RNG कहा जाता है। यदि c ≠ 0 है, तो विधि को 'मिश्रित सर्वांगसम जनरेटर' कहा जाता है।

जब c ≠ 0, एक गणितज्ञ पुनरावृत्ति को एक रैखिक परिवर्तन कहेगा, रैखिक ट्रांसफ़ॉर्मेशन नहीं, लेकिन कंप्यूटर विज्ञान में यह मिथ्या नाम अच्छी तरह से स्थापित है।

इतिहास
लेहमर जनरेटर 1951 में प्रकाशित हुआ था और रैखिक सर्वांगसम जनरेटर 1958 में डब्ल्यू. ई. थॉमसन और ए. रोटेनबर्ग द्वारा प्रकाशित किया गया था।

अवधि की लंबाई
एलसीजी का एक लाभ यह है कि मापदंडों के उचित चयन से एक ऐसी अवधि प्राप्त होती है जो ज्ञात और लंबी दोनों होती है। हालांकि यह एकमात्र मानदंड नहीं है, बहुत छोटी अवधि छद्म यादृच्छिक संख्या जनरेटर में एक घातक दोष है। जबकि एलसीजी छद्म यादृच्छिक संख्याएं उत्पन्न करने में सक्षम हैं जो यादृच्छिकता के लिए औपचारिक परीक्षण पास कर सकते हैं, आउटपुट की गुणवत्ता पैरामीटर एम और ए की पसंद के प्रति बेहद संवेदनशील है। उदाहरण के लिए, a = 1 और c = 1 एक साधारण मॉड्यूलो-एम काउंटर का उत्पादन करता है, जिसकी लंबी अवधि होती है, लेकिन यह स्पष्ट रूप से गैर-यादृच्छिक है।

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

एम अभाज्य, सी = 0
यह मूल लेहमर आरएनजी निर्माण है। यदि गुणक a को पूर्णांक मॉड्यूल m का एक आदिम तत्व (परिमित क्षेत्र) चुना जाता है, तो अवधि m−1 है। प्रारंभिक अवस्था को 1 और m−1 के बीच चुना जाना चाहिए।

प्राइम मापांक का एक नुकसान यह है कि मॉड्यूलर कमी के लिए दोगुनी-चौड़ाई वाले उत्पाद और एक स्पष्ट कमी चरण की आवश्यकता होती है। अक्सर 2 की घात से कम अभाज्य का उपयोग किया जाता है (मेरसेन अभाज्य 231−1 और 261−1 लोकप्रिय हैं), ताकि कमी मॉड्यूल m = 2e − d की गणना (ax mod 2) के रूप में की जा सकती हैई) + डी$\floor{ax/2^{e}}$. यदि परिणाम बहुत बड़ा है तो इसके बाद m का सशर्त घटाव होना चाहिए, लेकिन घटाव की संख्या ad/m तक सीमित है, जिसे d छोटा होने पर आसानी से एक तक सीमित किया जा सकता है।

यदि दोगुनी-चौड़ाई वाला उत्पाद उपलब्ध नहीं है, और गुणक सावधानी से चुना गया है, तो 'श्रेज विधि' उपयोग किया जा सकता है। ऐसा करने के लिए, कारक m = qa+r, यानी। q = $\floor{m/a}$ और r = m mod a. फिर ax mod m = की गणना करें a(x mod q) − r$\floor{x/q}$. चूँकि x mod q < q ≤ m/a, पहला पद am/a = m से बिल्कुल कम है। यदि a को इस प्रकार चुना जाता है कि r ≤ q (और इस प्रकार r/q ≤ 1), तो दूसरा पद भी m से कम है: r$\floor{x/q}$ ≤ rx/q = x(r/q) ≤ x < m. इस प्रकार, दोनों उत्पादों की गणना एक एकल-चौड़ाई वाले उत्पाद के साथ की जा सकती है, और उनके बीच का अंतर [1−m, m−1] की सीमा में है, इसलिए एकल सशर्त जोड़ के साथ इसे [0, m−1] तक कम किया जा सकता है. दूसरा नुकसान यह है कि मान 1 ≤ x < m को समान यादृच्छिक बिट्स में परिवर्तित करना अजीब है। यदि 2 की घात से कम अभाज्य का उपयोग किया जाता है, तो कभी-कभी लुप्त मानों को आसानी से नजरअंदाज कर दिया जाता है।

m 2 की शक्ति, c = 0
m को दो की घात के रूप में चुनने पर, प्रायः m = 2 होता है32या एम = 264, एक विशेष रूप से कुशल एलसीजी का उत्पादन करता है, क्योंकि यह केवल बाइनरी प्रतिनिधित्व को छोटा करके मॉड्यूलस ऑपरेशन की गणना करने की अनुमति देता है। वास्तव में, सबसे महत्वपूर्ण बिट्स की आमतौर पर गणना ही नहीं की जाती है। हालाँकि, इसके नुकसान भी हैं।

इस फॉर्म में अधिकतम अवधि m/4 है, जो a ≡ 3 या a ≡ 5 (mod 8) होने पर प्राप्त होती है। प्रारंभिक अवस्था X0 विषम होना चाहिए, और X के निम्न तीन बिट दो स्थितियों के बीच वैकल्पिक होते हैं और उपयोगी नहीं होते हैं। यह दिखाया जा सकता है कि यह फॉर्म एक जनरेटर के बराबर है जिसका मापांक एक चौथाई आकार और c ≠ 0 है।

पावर-टू-टू मॉड्यूलस के उपयोग के साथ एक अधिक गंभीर मुद्दा यह है कि कम बिट्स की अवधि उच्च बिट्स की तुलना में कम होती है। X का निम्नतम क्रम वाला बिट कभी नहीं बदलता (X हमेशा विषम होता है), और अगले दो बिट दो स्थितियों के बीच वैकल्पिक होते हैं। (यदि a≡5 (mod 8) है, तो बिट 1 कभी नहीं बदलता है और बिट 2 बदलता है। यदि a≡3 (mod 8) है, तो बिट 2 कभी नहीं बदलता है और बिट 1 बदलता है।) बिट 3 4 की अवधि के साथ दोहराता है, बिट 4 का आवर्त 8 है, इत्यादि। केवल X का सबसे महत्वपूर्ण बिट ही पूर्ण अवधि प्राप्त करता है।

सी ≠ 0
जब c ≠ 0, सही ढंग से चुने गए पैरामीटर सभी बीज मूल्यों के लिए m के बराबर अवधि की अनुमति देते हैं। यह तब घटित होगा जब और केवल यदि:
 * 1) $$m$$ और $$c$$ सहअभाज्य पूर्णांक हैं,
 * 2) $$a - 1$$ के सभी अभाज्य गुणनखंडों से विभाज्य है $$m$$,
 * 3) $$a - 1$$ यदि 4 से विभाज्य है $$m$$ 4 से विभाज्य है.

इन तीन आवश्यकताओं को हल-डोबेल प्रमेय के रूप में जाना जाता है। इस फॉर्म का उपयोग किसी भी m के साथ किया जा सकता है, लेकिन यह केवल m के लिए कई दोहराए गए अभाज्य कारकों के साथ ही अच्छा काम करता है, जैसे कि 2 की शक्ति; कंप्यूटर के शब्द आकार का उपयोग करना सबसे आम विकल्प है। यदि m एक वर्ग-मुक्त पूर्णांक होता, तो यह केवल ≡ 1 (mod m) की अनुमति देता, जो बहुत खराब PRNG बनाता है; संभावित पूर्ण-अवधि गुणकों का चयन केवल तभी उपलब्ध होता है जब m में अभाज्य गुणनखंड दोहराए जाते हैं।

यद्यपि हल-डोबेल प्रमेय अधिकतम अवधि प्रदान करता है, यह एक अच्छे जनरेटर की गारंटी देने के लिए पर्याप्त नहीं है। उदाहरण के लिए, यह वांछनीय है कि a − 1, m के अभाज्य गुणनखंडों द्वारा आवश्यकता से अधिक विभाज्य न हो। इस प्रकार, यदि m 2 की घात है, तो a − 1 को 4 से विभाज्य होना चाहिए, लेकिन 8 से विभाज्य नहीं होना चाहिए, अर्थात a ≡ 5 (mod 8)।

वास्तव में, अधिकांश गुणक एक अनुक्रम उत्पन्न करते हैं जो गैर-यादृच्छिकता या किसी अन्य के लिए एक परीक्षण में विफल रहता है, और एक ऐसा गुणक ढूंढता है जो सभी लागू मानदंडों के लिए संतोषजनक है काफी चुनौतीपूर्ण है. वर्णक्रमीय परीक्षण सबसे महत्वपूर्ण परीक्षणों में से एक है। ध्यान दें कि पावर-ऑफ़-2 मॉड्यूलस समस्या को साझा करता है जैसा कि c = 0 के लिए ऊपर वर्णित है: निम्न k बिट्स मॉड्यूलस 2 के साथ एक जनरेटर बनाते हैंk और इस प्रकार 2 की अवधि के साथ दोहराएँक; केवल सबसे महत्वपूर्ण बिट ही पूर्ण अवधि को प्राप्त करता है। यदि r से कम छद्म यादृच्छिक संख्या वांछित है, $\floor{rX/m}$ एक्स मॉड आर की तुलना में बहुत उच्च गुणवत्ता वाला परिणाम है। दुर्भाग्य से, अधिकांश प्रोग्रामिंग भाषाएँ बाद वाले को लिखना बहुत आसान बना देती हैं, इसलिए यह अधिक सामान्यतः उपयोग किया जाने वाला रूप है।

जनरेटर c की पसंद के प्रति संवेदनशील नहीं है, जब तक कि यह मापांक के लिए अपेक्षाकृत प्रमुख है (उदाहरण के लिए यदि m 2 की शक्ति है, तो c विषम होना चाहिए), इसलिए मान c=1 आमतौर पर चुना जाता है।

C के अन्य विकल्पों द्वारा निर्मित श्रृंखला को श्रृंखला के एक सरल कार्य के रूप में लिखा जा सकता है जब c=1। विशेष रूप से, यदि Y, Y द्वारा परिभाषित प्रोटोटाइप श्रृंखला है0 = 0 और Yn+1 = एवाईn+1 मॉड मी, फिर एक सामान्य श्रृंखला एक्सn+1 = एक्सn+c mod m को Y के एफ़िन फ़ंक्शन के रूप में लिखा जा सकता है:
 * $$X_n = (X_0(a-1)+c)Y_n + X_0 = (X_1 - X_0)Y_n + X_0 \pmod m.$$

अधिक सामान्यतः, समान गुणक और मापांक वाली किन्हीं दो श्रृंखलाओं X और Z से संबंधित हैं
 * $${ X_n - X_0 \over X_1 - X_0 } = Y_n = {a^n - 1 \over a - 1} = { Z_n - Z_0 \over Z_1 - Z_0 } \pmod m.$$

सामान्य उपयोग में पैरामीटर
निम्न तालिका सामान्य उपयोग में एलसीजी के मापदंडों को सूचीबद्ध करती है, जिसमें विभिन्न संकलक ों की  क्रम पुस्तकालय  में अंतर्निहित रैंड  फ़ंक्शन शामिल हैं। यह तालिका लोकप्रियता दिखाने के लिए है, अनुकरण करने के लिए उदाहरण नहीं; इनमें से कई पैरामीटर ख़राब हैं. अच्छे मापदंडों की तालिकाएँ उपलब्ध हैं।

जैसा कि ऊपर दिखाया गया है, एलसीजी हमेशा अपने द्वारा उत्पादित मूल्यों में सभी बिट्स का उपयोग नहीं करते हैं। उदाहरण के लिए, जावा (प्रोग्रामिंग भाषा) कार्यान्वयन प्रत्येक पुनरावृत्ति पर 48-बिट मानों के साथ संचालित होता है, लेकिन केवल उनके 32 सबसे महत्वपूर्ण बिट्स लौटाता है। ऐसा इसलिए है क्योंकि उच्च-क्रम वाले बिट्स की अवधि निचले-क्रम वाले बिट्स की तुलना में लंबी होती है (नीचे देखें)। एलसीजी जो इस ट्रंकेशन तकनीक का उपयोग करते हैं, वे उन लोगों की तुलना में सांख्यिकीय रूप से बेहतर मूल्य उत्पन्न करते हैं जो ऐसा नहीं करते हैं। यह उन स्क्रिप्ट्स में विशेष रूप से ध्यान देने योग्य है जो रेंज को कम करने के लिए मॉड ऑपरेशन का उपयोग करते हैं; यादृच्छिक संख्या मॉड 2 को संशोधित करने से बिना किसी काट-छाँट के 0 और 1 को वैकल्पिक किया जा सकेगा।

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

हालाँकि एलसीजी में कुछ विशिष्ट कमज़ोरियाँ हैं, लेकिन उनकी कई खामियाँ बहुत छोटी स्थिति के कारण आती हैं। तथ्य यह है कि लोगों को इतने सालों से ऐसे छोटे मॉड्यूल के साथ उपयोग करने के लिए प्रेरित किया गया है, इसे तकनीक की ताकत के प्रमाण के रूप में देखा जा सकता है। पर्याप्त बड़े राज्य वाला एलसीजी कड़े सांख्यिकीय परीक्षणों को भी पास कर सकता है; एक मॉड्यूलो-2 एलसीजी जो उच्च 32 बिट्स लौटाता है, टेस्टयू01 के स्मॉलक्रश सुइट से गुजरता है, और 96-बिट एलसीजी सबसे कड़े बिगक्रश सुइट से गुजरता है। एक विशिष्ट उदाहरण के लिए, 32 बिट आउटपुट के साथ एक आदर्श यादृच्छिक संख्या जनरेटर से यह अपेक्षा की जाती है कि (जन्मदिन प्रमेय के अनुसार) पहले के आउटपुट को डुप्लिकेट करना शुरू कर देगा। $2^{24}$ परिणाम। कोई भी पीआरएनजी जिसका आउटपुट उसकी पूर्ण, असंतुलित स्थिति है, तब तक डुप्लिकेट उत्पन्न नहीं करेगा जब तक कि उसकी पूरी अवधि समाप्त न हो जाए, यह एक आसानी से पता लगाने योग्य सांख्यिकीय दोष है। संबंधित कारणों से, किसी भी पीआरएनजी की अवधि आवश्यक आउटपुट की संख्या के वर्ग से अधिक होनी चाहिए। आधुनिक कंप्यूटर गति को देखते हुए, इसका मतलब 2 की अवधि है64सबसे कम मांग वाले अनुप्रयोगों को छोड़कर सभी के लिए, और अधिक मांग वाले सिमुलेशन के लिए।

एलसीजी के लिए विशिष्ट एक दोष यह है कि, यदि इसका उपयोग एन-आयामी स्थान में बिंदुओं को चुनने के लिए किया जाता है, तो बिंदु अधिक से अधिक, पर स्थित होंगे। $√m ≈ 2^{16}$हाइपरप्लेन (मार्सग्लिया का प्रमेय, जॉर्ज मार्साग्लिया द्वारा विकसित)। यह अनुक्रम X के क्रमिक मानों के बीच क्रमिक सहसंबंध के कारण हैn. लापरवाही से चुने गए मल्टीप्लायरों में आमतौर पर बहुत कम, व्यापक दूरी वाले विमान होंगे, जिससे समस्याएं पैदा हो सकती हैं। वर्णक्रमीय परीक्षण, जो एलसीजी की गुणवत्ता का एक सरल परीक्षण है, इस अंतर को मापता है और एक अच्छे गुणक को चुनने की अनुमति देता है।

समतल अंतर मापांक और गुणक दोनों पर निर्भर करता है। एक बड़ा पर्याप्त मापांक इस दूरी को दोहरे परिशुद्धता संख्याओं के रिज़ॉल्यूशन से कम कर सकता है। मापांक बड़ा होने पर गुणक का चुनाव कम महत्वपूर्ण हो जाता है। वर्णक्रमीय सूचकांक की गणना करना और यह सुनिश्चित करना अभी भी आवश्यक है कि गुणक खराब नहीं है, लेकिन विशुद्ध रूप से संभाव्य रूप से जब मापांक लगभग 2 से बड़ा होता है तो खराब गुणक का सामना करना बेहद असंभव हो जाता है।64.

एलसीजी के लिए विशिष्ट एक और दोष निम्न-ऑर्डर बिट्स की छोटी अवधि है जब एम को 2 की शक्ति के रूप में चुना जाता है। इसे आवश्यक आउटपुट से बड़े मॉड्यूल का उपयोग करके और राज्य के सबसे महत्वपूर्ण बिट्स का उपयोग करके कम किया जा सकता है।

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

गैर-क्रिप्टोग्राफ़िक अनुप्रयोगों में उपयुक्तता के लिए एलसीजी का बहुत सावधानी से मूल्यांकन किया जाना चाहिए जहां उच्च गुणवत्ता वाली यादृच्छिकता महत्वपूर्ण है। मोंटे कार्लो सिमुलेशन के लिए, एक एलसीजी को आवश्यक यादृच्छिक नमूनों की संख्या के घन से अधिक और अधिमानतः बहुत अधिक मापांक का उपयोग करना चाहिए। इसका मतलब है, उदाहरण के लिए, कि एक (अच्छा) 32-बिट एलसीजी का उपयोग लगभग एक हजार यादृच्छिक संख्याएँ प्राप्त करने के लिए किया जा सकता है; 64-बिट एलसीजी लगभग 2 लोगों के लिए अच्छा है21 यादृच्छिक नमूने (दो मिलियन से थोड़ा अधिक), आदि। इस कारण से, व्यवहार में एलसीजी बड़े पैमाने पर मोंटे कार्लो सिमुलेशन के लिए उपयुक्त नहीं हैं।

पायथन कोड
जेनरेटर (कंप्यूटर प्रोग्रामिंग) के रूप में, पायथन (प्रोग्रामिंग भाषा) में एलसीजी का कार्यान्वयन निम्नलिखित है:

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

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

एलसीजी डेरिवेटिव
ऐसे कई जनरेटर हैं जो एक अलग रूप में रैखिक सर्वांगसम जनरेटर हैं, और इस प्रकार एलसीजी का विश्लेषण करने के लिए उपयोग की जाने वाली तकनीकों को उन पर लागू किया जा सकता है।

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

जॉर्ज मार्साग्लिया का ऐड-विथ-कैरी और कैरी से घटाएं|सबट्रेक्ट-विद-उधार पीआरएनजी, जिसका शब्द आकार b=2 हैडब्ल्यू और लैग्स आर और एस (आर > एस) बी के मापांक के साथ एलसीजी के बराबर हैंआर±बीस±1. ए के गुणक के साथ गुणन-के-साथ-ले जाना पीआरएनजी, एब के बड़े प्राइम मापांक के साथ एलसीजी के बराबर हैंr−1 और एक पावर-ऑफ-2 गुणक बी।

एक क्रमपरिवर्तित सर्वांगसम जनरेटर 2-मॉड्यूल एलसीजी की शक्ति से शुरू होता है और कम-ऑर्डर बिट्स में छोटी अवधि की समस्या को खत्म करने के लिए आउटपुट परिवर्तन लागू करता है।

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

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

पीआरएनजी के लिए एक अन्य संरचना एक बहुत ही सरल पुनरावृत्ति फ़ंक्शन है जो एक शक्तिशाली आउटपुट मिक्सिंग फ़ंक्शन के साथ संयुक्त है। इसमें काउंटर मोड ब्लॉक सिफर और गैर-क्रिप्टोग्राफ़िक जेनरेटर जैसे SplitMix64 शामिल हैं।

एलसीजी के समान एक संरचना, लेकिन समतुल्य नहीं, बहु-पुनरावर्ती जनरेटर है: एक्सn= (ए1Xn−1+ ए2Xn−2+····+ एkXn−k) k ≥ 2 के लिए mod m। एक अभाज्य मापांक के साथ, यह m तक की अवधि उत्पन्न कर सकता हैk−1, इसलिए यह बड़ी अवधियों के लिए LCG संरचना का एक उपयोगी विस्तार है।

उच्च-गुणवत्ता वाली छद्म यादृच्छिक संख्याएँ उत्पन्न करने की एक शक्तिशाली तकनीक विभिन्न संरचना के दो या दो से अधिक पीआरएनजी को संयोजित करना है; एक एलएफएसआर और एक एलसीजी का योग (जैसा कि केआईएसएस (एल्गोरिदम) या एक्सोरशिफ्ट#xorwow निर्माण में) गति में कुछ लागत पर बहुत अच्छा प्रदर्शन कर सकता है।

यह भी देखें

 * यादृच्छिक संख्या जनरेटरों की सूची - बेहतर सांख्यिकीय गुणवत्ता वाले कुछ सहित अन्य पीआरएनजी
 * ACORN (PRNG) - ACG के साथ भ्रमित न हों, ऐसा प्रतीत होता है कि यह शब्द LCG और LFSR जनरेटर के वेरिएंट के लिए उपयोग किया गया है।
 * क्रमपरिवर्तित सर्वांगसम जनरेटर
 * पूरा चक्र
 * व्युत्क्रम सर्वांगसम जनरेटर
 * गुणन-के-साथ-करना
 * लेहमर आरएनजी (कभी-कभी पार्क-मिलर आरएनजी भी कहा जाता है)
 * संयुक्त रैखिक सर्वांगसम जनरेटर

संदर्भ

 * Gentle, James E., (2003). Random Number Generation and Monte Carlo Methods, 2nd edition, Springer, ISBN 0-387-00178-6.
 * (in this paper, efficient algorithms are given for inferring sequences produced by certain pseudo-random number generators).
 * (in this paper, efficient algorithms are given for inferring sequences produced by certain pseudo-random number generators).

बाहरी संबंध

 * The simulation Linear Congruential Generator visualizes the correlations between the pseudo-random numbers when manipulating the parameters.
 * Security of Random Number Generation: An Annotated Bibliography
 * Linear Congruential Generators post to sci.math
 * The "Death of Art" computer art project at Goldstein Technologies LLC, uses an LCG to generate 33,554,432 images
 * P. L'Ecuyer and R. Simard, "TestU01: A C Library for Empirical Testing of Random Number Generators", May 2006, revised November 2006, ACM Transactions on Mathematical Software, 33, 4, Article 22, August 2007.
 * Article about another way of cracking LCG