Linear congruential generator
રેખીય એકરૂપ જનરેટર (એલ. સી. જી.) એ એક અલ્ગોરિધમ છે જે અસંગત પીસવાઇઝ રેખીય સમીકરણ સાથે ગણતરી કરાયેલ સ્યુડો-રેન્ડમાઇઝ્ડ સંખ્યાઓનો ક્રમ આપે છે. આ પદ્ધતિ સૌથી જૂના અને સૌથી જાણીતા સ્યુડોરાન્ડમ નંબર જનરેટર અલ્ગોરિધમ્સમાંથી એકનું પ્રતિનિધિત્વ કરે છે. તેમની પાછળનો સિદ્ધાંત સમજવા માટે પ્રમાણમાં સરળ છે, અને તેઓ સરળતાથી અમલમાં મૂકવામાં આવે છે અને ઝડપી હોય છે, ખાસ કરીને કમ્પ્યુટર હાર્ડવેર પર જે સંગ્રહ-બીટ કાપ દ્વારા મોડ્યુલર અંકગણિત પ્રદાન કરી શકે છે. જનરેટરને પુનરાવર્તન સંબંધ દ્વારા વ્યાખ્યાયિત કરવામાં આવે છેઃ જ્યાં સ્યુડો-રેન્ડમ મૂલ્યોનો ક્રમ છે, અને-"મોડ્યુલસ"-"ગુણક"-"વૃદ્ધિ"-"બીજ" અથવા "પ્રારંભ મૂલ્ય" એ પૂર્ણાંક અચળાંકો છે જે જનરેટરને સ્પષ્ટ કરે છે. જો c = 0 હોય, તો જનરેટરને ઘણીવાર ગુણાકાર એકરૂપ જનરેટર (એમસીજી) અથવા લેહમેર આરએનજી કહેવામાં આવે છે. જો c ષ્ણાંક 0 હોય, તો આ પદ્ધતિને મિશ્ર એકરૂપ જનરેટર કહેવામાં આવે છે. જ્યારે c ષ્ણાંક 0 હોય, ત્યારે ગણિતશાસ્ત્રી પુનરાવર્તનને એફીન પરિવર્તન કહેશે, રેખીય નહીં, પરંતુ કમ્પ્યુટર વિજ્ઞાનમાં ખોટું નામ સારી રીતે સ્થાપિત છે. લેહમર જનરેટર 1951માં પ્રકાશિત થયું હતું અને રેખીય એકરૂપ જનરેટર 1958માં ડબલ્યુ. ઇ. થોમસન અને એ. રોટેનબર્ગ દ્વારા પ્રકાશિત કરવામાં આવ્યું હતું. સમયગાળાની લંબાઈ એલ. સી. જી. નો એક ફાયદો એ છે કે પરિમાણોની યોગ્ય પસંદગી એવા સમયગાળામાં પરિણમે છે જે જાણીતો અને લાંબો બંને હોય છે. જોકે એકમાત્ર માપદંડ નથી, પણ ખૂબ ટૂંકો સમયગાળો એ સ્યુડોરાન્ડમ નંબર જનરેટરમાં જીવલેણ ખામી છે. જ્યારે એલ. સી. જી. સ્યુડોરાન્ડમ સંખ્યાઓ ઉત્પન્ન કરવામાં સક્ષમ હોય છે જે અવ્યવસ્થિતતા માટે ઔપચારિક પરીક્ષણો પાસ કરી શકે છે, ત્યારે આઉટપુટની ગુણવત્તા m અને a પરિમાણોની પસંદગી માટે અત્યંત સંવેદનશીલ હોય છે. ઉદાહરણ તરીકે, a = 1 અને c = 1 એક સરળ મોડ્યુલો-m કાઉન્ટર ઉત્પન્ન કરે છે, જે લાંબો સમયગાળો ધરાવે છે, પરંતુ દેખીતી રીતે બિન-યાદૃચ્છિક છે. ઐતિહાસિક રીતે, એલસીજી માટે નબળી પસંદગીઓ એલસીજીના બિનઅસરકારક અમલીકરણ તરફ દોરી ગઈ છે. આનું ખાસ દૃષ્ટાંતરૂપ ઉદાહરણ RANDU છે, જેનો 1970 ના દાયકાની શરૂઆતમાં વ્યાપકપણે ઉપયોગ થતો હતો અને તેના કારણે ઘણા પરિણામો આવ્યા હતા, જેના પર હાલમાં આ નબળા એલસીજીના ઉપયોગને કારણે સવાલ ઉઠાવવામાં આવી રહ્યા છે. પરિમાણ પસંદગીના ત્રણ સામાન્ય પરિવારો છેઃ m અવિભાજ્ય, c = 0 આ મૂળ લેહમેર RNG રચના છે. સમયગાળો m − 1 છે જો ગુણક a ને પૂર્ણાંકો મોડ્યુલો m ના આદિમ તત્વ તરીકે પસંદ કરવામાં આવે. પ્રારંભિક સ્થિતિ 1 અને m − 1 વચ્ચે પસંદ કરવી આવશ્યક છે. પ્રાઇમ મોડ્યુલસનો એક ગેરલાભ એ છે કે મોડ્યુલર ઘટાડાને બેવડી પહોળાઈના ઉત્પાદન અને સ્પષ્ટ ઘટાડાના પગલાની જરૂર પડે છે. મોટેભાગે 2 ની ઘાત કરતાં માત્ર ઓછા અવિભાજ્યનો ઉપયોગ કરવામાં આવે છે (મર્સેન અવિભાજ્ય સંખ્યાઓ 239−1 અને 261−1 લોકપ્રિય છે), જેથી રિડક્શન મોડ્યુલો m = 2e−d ની ગણતરી (અક્ષ મોડ 2e) + d તરીકે કરી શકાય છે. જો પરિણામ ખૂબ મોટું હોય તો આને m ના શરતી બાદબાકી દ્વારા અનુસરવું આવશ્યક છે, પરંતુ બાદબાકીની સંખ્યા ad/m સુધી મર્યાદિત છે, જે સરળતાથી એક સુધી મર્યાદિત કરી શકાય છે જો d નાનું હોય. જો બેવડું-પહોળાઈ ઉત્પાદન ઉપલબ્ધ ન હોય અને ગુણક કાળજીપૂર્વક પસંદ કરવામાં આવે, તો શ્રેજની પદ્ધતિનો ઉપયોગ કરી શકાય છે. આ કરવા માટે, પરિબળ m = qa + r, એટલે કે. અને. પછી x મોડ m = ની ગણતરી કરો. x મૉડ q <q ≤ m/a હોવાથી, પ્રથમ પદ એ am/a = m કરતા સખત રીતે ઓછું હોય છે. જો a એ r ≤ q (અને આમ r/q ≤ 1) તરીકે પસંદ કરવામાં આવે, તો બીજો પદ પણ m કરતા ઓછો છેઃ r ≤ rx/q = x (r/q) ≤ x <m. આમ, બંને ઉત્પાદનોની ગણતરી એક-પહોળાઈના ઉત્પાદન સાથે કરી શકાય છે, અને તેમની વચ્ચેનો તફાવત [1 − m, m − 1] ની શ્રેણીમાં હોય છે, તેથી એક શરતી ઉમેરો સાથે તેને [0, m − 1] સુધી ઘટાડી શકાય છે. બીજો ગેરલાભ એ છે કે મૂલ્ય 1 ≤ x <m ને એકસમાન રેન્ડમ બિટ્સમાં રૂપાંતરિત કરવું વિચિત્ર છે. જો 2 ની ઘાત કરતાં માત્ર ઓછું પ્રાઇમ વપરાય છે, તો કેટલીકવાર ગુમ થયેલ મૂલ્યોને સરળતાથી અવગણવામાં આવે છે. m ને 2 ની ઘાત તરીકે પસંદ કરવાથી, મોટેભાગે m = 232 અથવા m = 264, ખાસ કરીને કાર્યક્ષમ એલ. સી. જી. ઉત્પન્ન કરે છે, કારણ કે આ દ્વિસંગી રજૂઆતને કાપીને મોડ્યુલસ કામગીરીની ગણતરી કરવાની મંજૂરી આપે છે. હકીકતમાં, સૌથી નોંધપાત્ર બિટ્સની સામાન્ય રીતે ગણતરી કરવામાં આવતી નથી. જોકે, ત્યાં ગેરફાયદા છે. આ સ્વરૂપમાં મહત્તમ સમયગાળો m/4 છે, જે જો a ષ્ણ 3 અથવા a ષ્ણ 5 (મોડ 8) હોય તો પ્રાપ્ત થાય છે. પ્રારંભિક સ્થિતિ X0 વિષમ હોવી જોઈએ, અને X ના નીચા ત્રણ બિટ્સ બે સ્થિતિઓ વચ્ચે વૈકલ્પિક હોવા જોઈએ અને ઉપયોગી નથી. તે દર્શાવી શકાય છે કે આ સ્વરૂપ એક ચતુર્થાંશ કદના મોડ્યુલસ અને c ષ્ણ 0 સાથે જનરેટરની સમકક્ષ છે. પાવર-ઓફ-ટુ મોડ્યુલસના ઉપયોગ સાથે વધુ ગંભીર સમસ્યા એ છે કે નીચા બિટ્સનો સમયગાળો ઉચ્ચ બિટ્સ કરતા ટૂંકો હોય છે. X નો સૌથી નીચો ક્રમનો બીટ ક્યારેય બદલાતો નથી (X હંમેશા વિચિત્ર હોય છે), અને આગામી બે બિટ્સ બે સ્થિતિઓ વચ્ચે વૈકલ્પિક હોય છે. (જો ષ્ણ 5 (મોડ 8) હોય, તો બીટ 1 ક્યારેય બદલાતો નથી અને બીટ 2 વારાફરતી બદલાય છે. જો a ષ્ણ 3 (મોડ 8) હોય, તો બીટ 2 ક્યારેય બદલાતો નથી અને બીટ 1 વૈકલ્પિક થાય છે.) બીટ 3 4 ના સમયગાળા સાથે પુનરાવર્તન કરે છે, બીટ 4 નો સમયગાળો 8 છે, અને તેથી વધુ. માત્ર X નો સૌથી નોંધપાત્ર ભાગ જ સંપૂર્ણ સમયગાળો પ્રાપ્ત કરે છે. c ષ્ણાંક 0 જ્યારે c ષ્ણાંક 0 હોય, ત્યારે યોગ્ય રીતે પસંદ કરેલા પરિમાણો તમામ બીજ મૂલ્યો માટે m જેટલો સમયગાળો આપે છે. આ ત્યારે જ થશે જ્યારે અને માત્ર ત્યારે જ થશે જ્યારેઃ અને પ્રમાણમાં અવિભાજ્ય હોય, બધા મુખ્ય પરિબળો દ્વારા વિભાજ્ય હોય, 4 દ્વારા વિભાજ્ય હોય જો 4 દ્વારા વિભાજ્ય હોય. આ ત્રણ જરૂરિયાતોને હલ-ડોબેલ પ્રમેય તરીકે ઓળખવામાં આવે છે. આ સ્વરૂપનો ઉપયોગ કોઈપણ m સાથે થઈ શકે છે, પરંતુ માત્ર ઘણા પુનરાવર્તિત મુખ્ય પરિબળો સાથે m માટે સારી રીતે કામ કરે છે, જેમ કે 2 ની શક્તિ; કમ્પ્યુટરના શબ્દ કદનો ઉપયોગ કરવો એ સૌથી સામાન્ય પસંદગી છે. જો m એ ચોરસ-મુક્ત પૂર્ણાંક હોત, તો આ માત્ર એક ષ્ણ 1 (મોડ m) ને મંજૂરી આપશે, જે ખૂબ જ નબળી PRNG બનાવે છે; સંભવિત પૂર્ણ-સમયગાળાના ગુણકોની પસંદગી ત્યારે જ ઉપલબ્ધ થાય છે જ્યારે m એ મુખ્ય પરિબળોનું પુનરાવર્તન કર્યું હોય. હલ-ડોબેલ પ્રમેય મહત્તમ સમયગાળો પૂરો પાડે છે, તેમ છતાં તે સારા જનરેટરની બાંયધરી આપવા માટે પૂરતું નથી. ઉદાહરણ તરીકે, તે ઇચ્છનીય છે કે a-1 જરૂરી કરતાં m ના મુખ્ય પરિબળો દ્વારા વધુ વિભાજ્ય ન હોય. આમ, જો m એ 2 ની ઘાત હોય, તો a-1 એ 4 વડે વિભાજ્ય હોવું જોઈએ પરંતુ 8 વડે વિભાજ્ય ન હોવું જોઈએ, એટલે કે a ષ્ણ 5 (મોડ 8). ખરેખર, મોટાભાગના ગુણકો એક ક્રમ ઉત્પન્ન કરે છે જે બિન-યાદૃચ્છિકતા અથવા અન્ય માટે એક પરીક્ષણમાં નિષ્ફળ જાય છે, અને જે ગુણક તમામ લાગુ પડતા માપદંડોને સંતોષકારક હોય તે શોધવું ખૂબ જ પડકારજનક છે. વર્ણપટ પરીક્ષણ એ સૌથી મહત્વપૂર્ણ પરીક્ષણોમાંનું એક છે. નોંધ લો કે c = 0 માટે ઉપર વર્ણવ્યા મુજબ પાવર-ઓફ-2 મોડ્યુલસ સમસ્યાને વહેંચે છેઃ નીચા k બિટ્સ મોડ્યુલસ 2k સાથે જનરેટર બનાવે છે અને આમ 2k ના સમયગાળા સાથે પુનરાવર્તન કરે છે; માત્ર સૌથી નોંધપાત્ર બીટ સંપૂર્ણ સમયગાળો પ્રાપ્ત કરે છે. જો r કરતા ઓછી સ્યુડોરાન્ડમ સંખ્યા ઇચ્છનીય હોય, તો તે X મોડ r કરતાં ઘણી ઊંચી ગુણવત્તાનું પરિણામ છે. કમનસીબે, મોટાભાગની પ્રોગ્રામિંગ ભાષાઓ બાદમાં લખવાનું (X% r) વધુ સરળ બનાવે છે, તેથી તે વધુ સામાન્ય રીતે વપરાતું સ્વરૂપ છે. જનરેટર સી ની પસંદગી માટે સંવેદનશીલ નથી, જ્યાં સુધી તે મોડ્યુલસ માટે પ્રમાણમાં મુખ્ય હોય (દા. ત. જો m એ 2 ની ઘાત હોય, તો c એ વિચિત્ર હોવું જોઈએ), તેથી c = 1 મૂલ્ય સામાન્ય રીતે પસંદ કરવામાં આવે છે. જ્યારે c = 1 હોય ત્યારે c ની અન્ય પસંદગીઓ દ્વારા ઉત્પાદિત શ્રેણીને શ્રેણીના સરળ કાર્ય તરીકે લખી શકાય છે. ખાસ કરીને, જો Y એ Y0 = 0 અને Yn + 1 = aYn + 1 મોડ m દ્વારા વ્યાખ્યાયિત પ્રોટોટાઇપિકલ શ્રેણી છે, તો સામાન્ય શ્રેણી Xn + 1 = aXn + c મોડ m ને Y ના એફાઇન ફંક્શન તરીકે લખી શકાય છેઃ વધુ સામાન્ય રીતે, સમાન ગુણક અને મોડ્યુલસ સાથેની કોઈપણ બે શ્રેણી X અને Z સામાન્ય ઉપયોગમાં પરિમાણો દ્વારા સંબંધિત છે. આ કોષ્ટક લોકપ્રિયતા બતાવવા માટે છે, અનુકરણ કરવા માટેના ઉદાહરણો નહીં; આમાંના ઘણા પરિમાણો નબળા છે. સારા પરિમાણોની કોષ્ટકો ઉપલબ્ધ છે. ઉપર બતાવ્યા પ્રમાણે, એલસીજી હંમેશા તેઓ ઉત્પન્ન કરેલા મૂલ્યોમાં તમામ બિટ્સનો ઉપયોગ કરતા નથી. ઉદાહરણ તરીકે, જાવા અમલીકરણ દરેક પુનરાવર્તન પર 48-બીટ મૂલ્યો સાથે કાર્ય કરે છે પરંતુ માત્ર તેમના 32 સૌથી નોંધપાત્ર બિટ્સ પરત કરે છે. આનું કારણ એ છે કે ઉચ્ચ ક્રમના બિટ્સનો સમયગાળો નીચલા ક્રમના બિટ્સ કરતાં લાંબો હોય છે (નીચે જુઓ). એલસીજી કે જે આ કાપણી તકનીકનો ઉપયોગ કરે છે તે આંકડાકીય રીતે વધુ સારા મૂલ્યો ઉત્પન્ન કરે છે જે નથી કરતા. આ ખાસ કરીને સ્ક્રિપ્ટ્સમાં નોંધપાત્ર છે જે શ્રેણી ઘટાડવા માટે મોડ ઓપરેશનનો ઉપયોગ કરે છે; રેન્ડમ નંબર મોડ 2 માં ફેરફાર કરવાથી કાપણી વિના 0 અને 1 ને વૈકલ્પિક કરવામાં આવશે. ફાયદા અને ગેરફાયદા એલ. સી. જી. ઝડપી હોય છે અને સ્થિતિ જાળવી રાખવા માટે ન્યૂનતમ મેમરી (એક મોડ્યુલો-એમ નંબર, ઘણીવાર 32 અથવા 64 બિટ્સ) ની જરૂર પડે છે. આ તેમને બહુવિધ સ્વતંત્ર પ્રવાહોનું અનુકરણ કરવા માટે મૂલ્યવાન બનાવે છે. એલસીજીનો હેતુ ક્રિપ્ટોગ્રાફિક કાર્યક્રમો માટે નથી અને તેનો ઉપયોગ થવો જોઈએ નહીં; આવા કાર્યક્રમો માટે ક્રિપ્ટોગ્રાફિકલી સુરક્ષિત સ્યુડોરાન્ડમ નંબર જનરેટરનો ઉપયોગ કરો. એલ. સી. જી. માં કેટલીક ચોક્કસ નબળાઈઓ હોવા છતાં, તેમની ઘણી ભૂલો ખૂબ નાનું રાજ્ય હોવાને કારણે આવે છે. આટલા નાના મોડ્યુલી સાથે તેનો ઉપયોગ કરવા માટે લોકોને ઘણા વર્ષોથી લલચાવવામાં આવ્યા છે તે હકીકતને આ તકનીકની મજબૂતાઈના પુરાવા તરીકે જોઈ શકાય છે. પૂરતી મોટી સ્થિતિ ધરાવતું એલસીજી કડક આંકડાકીય પરીક્ષણો પણ પાસ કરી શકે છે; એક મોડ્યુલો-2 એલસીજી જે ઉચ્ચ 32 બિટ્સ આપે છે તે ટેસ્ટયુ01ના સ્મોલક્રશ સ્યુટને પાસ કરે છે, અને 96-બિટ એલસીજી સૌથી કડક બિગક્રશ સ્યુટને પાસ કરે છે. ચોક્કસ ઉદાહરણ માટે, 32 બિટ્સ આઉટપુટ સાથે આદર્શ રેન્ડમ નંબર જનરેટર (બર્થડે થીયરમ દ્વારા) પરિણામો પછી અગાઉના આઉટપુટની નકલ કરવાનું શરૂ કરે તેવી અપેક્ષા છે. કોઈપણ પી. આર. એન. જી. કે જેનું ઉત્પાદન તેની સંપૂર્ણ, અનિયંત્રિત સ્થિતિ છે તે તેનો સંપૂર્ણ સમયગાળો વીતી જાય ત્યાં સુધી ડુપ્લિકેટ્સ ઉત્પન્ન કરશે નહીં, જે સરળતાથી શોધી શકાય તેવી આંકડાકીય ખામી છે. સંબંધિત કારણોસર, કોઈપણ પી. આર. એન. જી. નો સમયગાળો જરૂરી આઉટપુટની સંખ્યાના વર્ગ કરતાં લાંબો હોવો જોઈએ. આધુનિક કોમ્પ્યુટરની ઝડપને જોતાં, આનો અર્થ એ છે કે તમામ માટે 264 નો સમયગાળો, પરંતુ સૌથી ઓછી માંગ ધરાવતી એપ્લિકેશનો માટે, અને સિમ્યુલેશનની માંગ માટે લાંબો સમય. એલસીજી માટે વિશિષ્ટ એક ખામી એ છે કે, જો એન-ડાયમેન્શનલ સ્પેસમાં બિંદુઓ પસંદ કરવા માટે ઉપયોગ કરવામાં આવે, તો બિંદુઓ, વધુમાં વધુ, હાયપરપ્લેન (જ્યોર્જ માર્સગ્લિયા દ્વારા વિકસાવવામાં આવેલ માર્સગ્લિયાના પ્રમેય) પર રહેશે. આ અનુક્રમ Xn ના ક્રમિક મૂલ્યો વચ્ચેના ક્રમિક સહસંબંધને કારણે છે. બેદરકારીપૂર્વક પસંદ કરેલા મલ્ટિપ્લાયરમાં સામાન્ય રીતે ઘણા ઓછા, વ્યાપક અંતર ધરાવતા વિમાનો હોય છે, જે સમસ્યાઓ તરફ દોરી શકે છે. વર્ણપટ પરીક્ષણ, જે એલ. સી. જી. ની ગુણવત્તાની એક સરળ કસોટી છે, આ અંતરને માપે છે અને સારા ગુણકને પસંદ કરવાની મંજૂરી આપે છે. સમતલ અંતર મોડ્યુલસ અને ગુણક બંને પર આધાર રાખે છે. પૂરતું મોટું મોડ્યુલસ આ અંતરને બેવડી ચોકસાઇ સંખ્યાઓના રિઝોલ્યુશનથી ઓછું કરી શકે છે. જ્યારે મોડ્યુલસ મોટું હોય ત્યારે ગુણકની પસંદગી ઓછી મહત્વપૂર્ણ બની જાય છે. વર્ણપટ અનુક્રમણિકાની ગણતરી કરવી અને ખાતરી કરવી જરૂરી છે કે ગુણક ખરાબ નથી, પરંતુ સંપૂર્ણ રીતે સંભવિત રીતે જ્યારે માપાંક લગભગ 264 કરતા મોટો હોય ત્યારે ખરાબ ગુણકનો સામનો કરવો અત્યંત અશક્ય બની જાય છે. એલ. સી. જી. માટે વિશિષ્ટ અન્ય ખામી એ છે કે જ્યારે m ને 2 ની ઘાત તરીકે પસંદ કરવામાં આવે છે ત્યારે નીચા ક્રમના બિટ્સનો ટૂંકો સમયગાળો છે. આને જરૂરી આઉટપુટ કરતા મોટા મોડ્યુલસનો ઉપયોગ કરીને અને રાજ્યના સૌથી નોંધપાત્ર બિટ્સનો ઉપયોગ કરીને ઘટાડી શકાય છે. તેમ છતાં, કેટલાક કાર્યક્રમો માટે એલ. સી. જી. એક સારો વિકલ્પ હોઈ શકે છે. દાખલા તરીકે, એમ્બેડેડ સિસ્ટમમાં, ઉપલબ્ધ મેમરીની માત્રા ઘણીવાર ગંભીર રીતે મર્યાદિત હોય છે. તેવી જ રીતે, વિડિયો ગેમ કન્સોલ જેવા વાતાવરણમાં એલ. સી. જી. ના હાઇ-ઓર્ડર બિટ્સની થોડી સંખ્યા લેવી પૂરતી હોઈ શકે છે. (જ્યારે m એ 2 ની ઘાત હોય ત્યારે એલ. સી. જી. ના નીચા ક્રમના બિટ્સ પર કોઈ પણ પ્રકારની અવ્યવસ્થિતતા માટે ક્યારેય આધાર રાખવો જોઈએ નહીં.) લો ઓર્ડર બિટ્સ ખૂબ ટૂંકા ચક્રમાંથી પસાર થાય છે. ખાસ કરીને, કોઈપણ પૂર્ણ-ચક્ર એલ. સી. જી., જ્યારે m એ 2 ની ઘાત હોય, ત્યારે તે વૈકલ્પિક રીતે વિષમ અને સમ પરિણામો ઉત્પન્ન કરશે. જ્યાં ઉચ્ચ ગુણવત્તાની અવ્યવસ્થિતતા મહત્વપૂર્ણ હોય તેવી બિન-ક્રિપ્ટોગ્રાફિક એપ્લિકેશનોમાં યોગ્યતા માટે એલસીજીનું ખૂબ જ કાળજીપૂર્વક મૂલ્યાંકન કરવું જોઈએ. મોન્ટે કાર્લો સિમ્યુલેશન માટે, એલ. સી. જી. એ જરૂરી હોય તેવા રેન્ડમ નમૂનાઓની સંખ્યાના સમઘન કરતાં મોટા અને પ્રાધાન્યમાં ખૂબ મોટા મોડ્યુલસનો ઉપયોગ કરવો આવશ્યક છે. આનો અર્થ એ છે કે, ઉદાહરણ તરીકે, (સારા) 32-બીટ એલસીજીનો ઉપયોગ લગભગ એક હજાર રેન્ડમ સંખ્યાઓ મેળવવા માટે થઈ શકે છે; 64-બીટ એલસીજી લગભગ 221 રેન્ડમ નમૂનાઓ (બે મિલિયનથી થોડું વધારે) વગેરે માટે સારું છે. આ કારણોસર, વ્યવહારમાં એલસીજી મોટા પાયે મોન્ટે કાર્લો સિમ્યુલેશન માટે યોગ્ય નથી. નમૂના કોડ પાયથોન કોડ જનરેટરના સ્વરૂપમાં પાયથોનમાં એલ. સી. જી. નું અમલીકરણ નીચે મુજબ છેઃ collections.abc ઇમ્પોર્ટ જનરેટર ડેફ એલ. સી. જી. (મોડ્યુલસઃ ઇન્ટ, એઃ ઇન્ટ, સીઃ ઇન્ટ, સીડઃ ઇન્ટ)-> જનરેટર [ઇન્ટ, નન, નન]: "લીનિયર કોન્ગ્રુએન્શિયલ જનરેટર". જ્યારે સાચુંઃ બીજ = (a * બીજ + c)% મોડ્યુલસ ઉપજ બીજ ફ્રી પાસ્કલ ફ્રી પાસ્કલ તેના મૂળભૂત સ્યુડો રેન્ડમ નંબર જનરેટર તરીકે મર્સેન ટ્વિસ્ટરનો ઉપયોગ કરે છે જ્યારે ડેલ્ફી એલસીજીનો ઉપયોગ કરે છે. અહીં ઉપરના કોષ્ટકની માહિતીના આધારે ફ્રી પાસ્કલમાં ડેલ્ફી સુસંગત ઉદાહરણ છે. સમાન રેન્ડસીડ મૂલ્યને જોતાં તે ડેલ્ફીની જેમ રેન્ડમ સંખ્યાઓનો સમાન ક્રમ પેદા કરે છે. યુનિટ lcg _ random; {$iffdef fpc} {$મોડ ડેલ્ફી} {$એન્ડિફ} ઈન્ટરફેસ ફંક્શન એલ. સી. જી. રેન્ડમઃ એક્સટેન્ડેડ; ઓવરલોડ; ઇનલાઇન; ફંક્શન એલ. સી. જી. રેન્ડમ (કોન્સ્ટ રેન્જઃ લોન્ગિન્ટ): લોન્ગિન્ટ; ઓવરલોડ; ઇનલાઇન; અમલીકરણ ફંક્શન આઇએમઃ કાર્ડિનલ; ઇનલાઇન; રેન્ડસીડ શરૂ કરો = રેન્ડસીડ * 134775813 + 1; પરિણામઃ = રેન્ડસીડ; અંત; ફંક્શન એલ. સી. જી. રેન્ડમઃ એક્સટેન્ડેડ; ઓવરલોડ; ઇનલાઇન; પ્રારંભ પરિણામઃ = આઇએમ * <આઇ. ડી. 1>; અંત; ફંક્શન એલ. સી. જી. રેન્ડમ (કોન્સ્ટ રેન્જઃ લોન્ગિન્ટ): લોન્ગિન્ટ; ઓવરલોડ; ઇનલાઇન; પ્રારંભ પરિણામઃ બહુવિધ થ્રેડો એક સાથે આ રાજ્યમાં પ્રવેશી શકે છે જે રેસની સ્થિતિનું કારણ બની શકે છે. અમલીકરણમાં વિવિધ થ્રેડો માટે અનન્ય પ્રારંભિકતા સાથે વિવિધ સ્થિતિનો ઉપયોગ કરવો જોઈએ જેથી એક સાથે થ્રેડો ચલાવવા પર રેન્ડમ સંખ્યાઓના સમાન ક્રમને ટાળી શકાય. એલસીજી ડેરિવેટિવ્ઝ એવા ઘણા જનરેટર છે જે અલગ સ્વરૂપમાં રેખીય એકરૂપ જનરેટર છે, અને આમ એલસીજીનું વિશ્લેષણ કરવા માટે ઉપયોગમાં લેવાતી તકનીકો તેમના પર લાગુ કરી શકાય છે. લાંબા સમય સુધી ઉત્પાદન કરવાની એક પદ્ધતિ એ છે કે વિવિધ સમયગાળાના કેટલાક એલ. સી. જી. ના મોટા ઓછા સામાન્ય ગુણાંક ધરાવતા આઉટપુટનો સરવાળો કરવો; વિચમેન-હિલ જનરેટર આ સ્વરૂપનું ઉદાહરણ છે. (આપણે તેમને સંપૂર્ણપણે કોપ્રાઇમ હોવાનું પસંદ કરીએ છીએ, પરંતુ પ્રાઇમ મોડ્યુલસ સમ સમયગાળો સૂચવે છે, તેથી ઓછામાં ઓછું 2 નું સામાન્ય પરિબળ હોવું જોઈએ.) આને ઘટક એલ. સી. જી. મોડુલીના ગુણાકાર સમાન મોડ્યુલસ સાથે એક જ એલ. સી. જી. ની સમકક્ષ દર્શાવી શકાય છે. માર્સાગ્લિયાના એડ-વિથ-કેરી અને સબટ્રેક્ટ-વિથ-બૉરો પી. આર. એન. જી. ના શબ્દ કદ b = 2w અને લેગ r અને s (r> s) સાથે એલ. સી. જી. ની સમકક્ષ હોય છે, જેમાં b ± bs ± 1 નું મોડ્યુલસ હોય છે. a ના ગુણક સાથે ગુણાકાર-સાથે-વહન PRNG એ એબઆર-1 ના મોટા મુખ્ય માપાંક અને પાવર-ઓફ-2 ગુણક b સાથે એલસીજીની સમકક્ષ છે. ક્રમબદ્ધ એકરૂપ જનરેટર પાવર-ઓફ-2-મોડ્યુલસ એલ. સી. જી. થી શરૂ થાય છે અને નીચા ક્રમના બિટ્સમાં ટૂંકા ગાળાની સમસ્યાને દૂર કરવા માટે આઉટપુટ પરિવર્તન લાગુ કરે છે. અન્ય પી. આર. એન. જી. સાથે સરખામણી લાંબા ગાળાના સ્યુડોરાન્ડમ સિક્વન્સ મેળવવા માટે વ્યાપકપણે ઉપયોગમાં લેવાતી અન્ય આદિમ રચના એ રેખીય-ફીડબેક શિફ્ટ રજિસ્ટર રચના છે, જે જી. એફ. (2) [x] માં અંકગણિત પર આધારિત છે, જે જી. એફ. (2) પર બહુપદી વીંટી છે. પૂર્ણાંક ઉમેરા અને ગુણાકારને બદલે, મૂળભૂત કામગીરીઓ વિશિષ્ટ-અથવા અને વહન-ઓછી ગુણાકાર છે, જે સામાન્ય રીતે તાર્કિક પાળીના ક્રમ તરીકે લાગુ કરવામાં આવે છે. આનો ફાયદો એ છે કે તેમના તમામ બિટ્સ પૂર્ણ-સમયગાળાના હોય છે; તેઓ નિમ્ન-ક્રમના બિટ્સમાં નબળાઇથી પીડાતા નથી જે અંકગણિત મોડ્યુલો 2k ને પીડાય છે. આ પરિવારના ઉદાહરણોમાં ઝોર્શિફ્ટ જનરેટર અને મર્સેન ટ્વિસ્ટરનો સમાવેશ થાય છે. બાદમાં ખૂબ જ લાંબો સમયગાળો (219937−1) અને વૈવિધ્યપૂર્ણ એકરૂપતા પ્રદાન કરે છે, પરંતુ તે કેટલાક આંકડાકીય પરીક્ષણોમાં નિષ્ફળ જાય છે. વિલંબિત ફિબોનાકી જનરેટર પણ આ શ્રેણીમાં આવે છે; જો કે તેઓ અંકગણિત ઉમેરાનો ઉપયોગ કરે છે, તેમનો સમયગાળો ઓછામાં ઓછા નોંધપાત્ર બિટ્સમાં એલએફએસઆર દ્વારા સુનિશ્ચિત કરવામાં આવે છે. ટેસ્ટયુ01 સ્યુટમાં લાગુ કરાયેલ રેખીય જટિલતા પરીક્ષણ જેવા યોગ્ય પરીક્ષણો સાથે રેખીય-ફીડબેક શિફ્ટ રજિસ્ટરનું માળખું શોધવું સરળ છે; એલ. એફ. એસ. આર. ના સતત બિટ્સમાંથી શરૂ કરાયેલ બુલિયન સર્ક્યુલન્ટ મેટ્રિક્સ ક્યારેય બહુપદીની ડિગ્રી કરતા વધારે ક્રમ ધરાવતો નથી. બિન-રેખીય આઉટપુટ મિશ્રણ કાર્ય ઉમેરવાથી (xoshiro256 * * અને ક્રમબદ્ધ એકરૂપ જનરેટર બાંધકામોની જેમ) આંકડાકીય પરીક્ષણો પરની કામગીરીમાં ઘણો સુધારો થઈ શકે છે. પી. આર. એન. જી. માટેનું બીજું માળખું એ ખૂબ જ સરળ પુનરાવર્તન કાર્ય છે જે શક્તિશાળી આઉટપુટ મિશ્રણ કાર્ય સાથે જોડાયેલું છે. આમાં કાઉન્ટર મોડ બ્લોક સાઇફર્સ અને સ્પ્લિટમિક્સ64 જેવા બિન-ક્રિપ્ટોગ્રાફિક જનરેટરનો સમાવેશ થાય છે. એલ. સી. જી. જેવું માળખું, પરંતુ સમકક્ષ નથી, તે બહુવિધ-પુનરાવર્તિત જનરેટર છેઃ Xn = (a1Xn−1 + a2Xn−2 + ·· + akXn−k) k ≤ 2 માટે મોડ m. પ્રાઇમ મોડ્યુલસ સાથે, આ mk−1 સુધીનો સમયગાળો પેદા કરી શકે છે, તેથી મોટા સમયગાળા માટે એલસીજી માળખાનું ઉપયોગી વિસ્તરણ છે. ઉચ્ચ ગુણવત્તાની સ્યુડોરાન્ડમ સંખ્યાઓ પેદા કરવા માટેની એક શક્તિશાળી તકનીક એ છે કે વિવિધ માળખાના બે અથવા વધુ પી. આર. એન. જી. ને જોડવું; એલ. એફ. એસ. આર. અને એલ. સી. જી. નો સરવાળો (કે. આઈ. એસ. એસ. અથવા ઝોરવો બાંધકામોની જેમ) ઝડપમાં અમુક કિંમતે ખૂબ જ સારી રીતે કરી શકે છે. આ પણ જુઓ રેન્ડમ નંબર જનરેટરની સૂચિ-અન્ય PRNGs જેમાં કેટલાક વધુ સારા આંકડાકીય ક્વોલિટાઇટ્સ ACORN જનરેટરનો સમાવેશ થાય છે-ACG સાથે ગેરસમજ ન થવી જોઈએ કે જે શબ્દનો ઉપયોગ એલસીજી અને એલએફએસઆર જનરેટરના પ્રકારો માટે કરવામાં આવ્યો હોવાનું જણાય છે પર્મ્યુટેડ કોન્ગ્રુએન્શિયલ જનરેટર પૂર્ણ ચક્ર ઇન્વર્સિવ કોન્ગ્રુએન્શિયલ જનરેટર મલ્ટિપ્લાય-વિથ-કેરી લેહમર RNG (કેટલીકવાર પાર્ક-મિલર RNG તરીકે ઓળખાય છે) સંયુક્ત રેખીય કોન્ગ્રુએન્શિયલ જનરેટર નોટ્સ રેફરન્સ જેન્ટલ, જેમ્સ ઇ., (2003). રેન્ડમ નંબર જનરેશન અને મોન્ટે કાર્લો પદ્ધતિઓ, બીજી આવૃત્તિ, સ્પ્રિંગર. (આ પેપરમાં, ચોક્કસ સ્યુડો-રેન્ડમ નંબર જનરેટર દ્વારા ઉત્પાદિત અનુક્રમોનું અનુમાન કરવા માટે કાર્યક્ષમ અલ્ગોરિધમ્સ આપવામાં આવ્યા છે). બાહ્ય કડીઓ સિમ્યુલેશન લીનિયર કોન્ગ્રુએન્શિયલ જનરેટર પરિમાણોમાં હેરફેર કરતી વખતે સ્યુડો-રેન્ડમ સંખ્યાઓ વચ્ચેના સહસંબંધની કલ્પના કરે છે. રેન્ડમ નંબર જનરેશનની સુરક્ષાઃ એક એનોટેટેડ ગ્રંથસૂચિ રેખીય એકરૂપ જનરેટર્સ sci.math પર પોસ્ટ કરે છે ગોલ્ડસ્ટીન ટેક્નોલોજીસ એલ. એલ. સી. ખાતે "ડેથ ઓફ આર્ટ" કમ્પ્યુટર આર્ટ પ્રોજેક્ટ, 33,554,432 છબીઓ બનાવવા માટે એલ. સી. જી. નો ઉપયોગ કરે છે પી. એલ 'ઇક્વાયર અને આર. સિમાર્ડ, "ટેસ્ટયુ01: એ. સી. લાઇબ્રેરી ફોર ઇમ્પિરિકલ ટેસ્ટિંગ ઓફ રેન્ડમ નંબર જનરેટર્સ", મે 2006, સુધારેલ નવેમ્બર 2006, ગાણિતિક સોફ્ટવેર પર એસીએમ વ્યવહારો, 33,4, આર્ટિકલ 22, ઓગસ્ટ 2007. એલ. સી. જી. સ્યુડોરાન્ડમ નંબર જનરેટરને તોડવાની અન્ય રીત વિશેનો લેખ મોડ્યુલર અંકગણિત લેખ ઉદાહરણ તરીકે પાયથોન (પ્રોગ્રામિંગ લેંગ્વેજ) કોડ