मैं अपने छद्म यादृच्छिक संख्या जनरेटर की अवधि कैसे निर्धारित कर सकता हूं?


14

मान लीजिए मैं एक रैखिक सर्वांगसम छद्म-यादृच्छिक संख्या जनरेटर (PRNG) का उपयोग कर रहा हूं। एक बीज , गुणा कारक (a), पारी कारक (c) और मापांक कारक (m) को देखते हुए, मैं अपने PRNG की अवधि कैसे निर्धारित कर सकता हूं? क्या मैं इसे प्रयोग / पैटर्न डिटेक्शन एल्गोरिदम द्वारा निर्धारित करता हूं, या इसकी अवधि की गणना के लिए एक सीधा सूत्र है? x0

यद्यपि मेरा प्रश्न विशेष रूप से रैखिक सर्वांगसम विधि के बारे में है, लेकिन मैं इस बारे में अधिक जानने के लिए खुला हूं कि अन्य PRNG के लिए अभ्यास के समय की गणना कैसे की जाती है।


प्रासंगिक: en.wikipedia.org/wiki/…

BTW, यदि आप LFSR का उपयोग कर रहे हैं, तो प्रतिक्रिया मैक्सिमम है अगर फीडबैक बहुपद आदिम है । ऐसे मामले में, AFAIK (मुझे उद्धृत मत करो; मेरे पाठ्यक्रम के नोट्स खोदने के लिए बहुत आलसी) जहां प्रतिक्रिया बहुपद पी ( एक्स ) एफ क्यू [ एक्स ] डिग्री के एन , और क्ष के आकार है गुणांकों का क्षेत्र। qnp(x)Fq[x]nq

2
फ्लोयड के चक्र का पता लगाने वाले एल्गोरिदम और साथ ही ब्रेंट के चक्र का पता लगाने वाले एल्गोरिदम, दोनों चक्रों का पता लगाने के कुशल तरीके हैं। दोनों अवधि के कुछ एल वापस करेंगे, और एक बार आपके पास, आप एल को फ़ैक्टर कर सकते हैं और देख सकते हैं कि सबसे छोटा कारक कौन सा है।
xdavidliu

जवाबों:


12

यदि आप अपने आप को पूर्ण चक्र LCG PRNG s के लिए विवश करते हैं, तो इसका उत्तर आसान है, परिभाषा के अनुसार यह केवल m

किसी दिए गए बीज के लिए एक गैर पूर्ण चक्र LCG PRNG की अवधि का पता लगाने के लिए, आपको बस PRNG के पुनरावृत्तियों की संख्या गिनने की आवश्यकता है, जब तक कि यह एक बार फिर बीज मान उत्पन्न न कर दे।

संदर्भित विकिपीडिया पृष्ठ से :

अवधि

mc

  • cm
  • a1m
  • a1m

cma

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

आप एक पूर्ण चक्र जनरेटर का उपयोग क्यों करना चाहते हैं

यदि आप अपने आप को पूर्ण चक्र LCG PRNGs के लिए विवश नहीं करते हैं तो आप एक बड़ा जोखिम ले रहे हैं ।

यदि आप नहीं जानते हैं कि एक दिया गया LCG पूर्ण चक्र है तो आप एक जनरेटर के साथ परस्पर भिन्न अनुक्रमों की एक मनमानी संख्या के साथ समाप्त हो सकते हैं, जिनमें से कुछ शर्मनाक रूप से छोटे हो सकते हैं और उनमें बेतरतीब भयावहता हो सकती है, जो संभवतः अनैतिक RANDU जनरेटर से भी बदतर है ।

आप वास्तव में यह सुनिश्चित करने के लिए हर संभव बीज मूल्य की जांच नहीं करना चाहते हैं कि यह एक अनुक्रम उत्पन्न करता है जो आपके आवेदन के लिए काफी लंबा है।

आगे की पढाई

छद्म यादृच्छिक संख्या जनरेटर पर एक उत्कृष्ट प्राइमर के लिए, मैं दृढ़ता से अनुशंसा करूंगा कि आप रैंडम नंबरों पर न्यूमेरिकल व्यंजनों के अध्याय को पढ़ें ।


यह सच है, लेकिन मैं अपने आप को पूरी अवधि LCG PRNG के लिए विवश नहीं कर रहा हूँ ... मैं a, c, और m के खराब विकल्पों के बारे में उत्सुक हूं, जैसे कि यादृच्छिक धाराएँ जो पूर्ण अवधि को प्राप्त नहीं करती हैं। मैं समय से पहले जानना चाहता हूं, कुछ ए, सी और एम दिए गए हैं, जो अनिवार्य रूप से अवधि होगी। मुझे पता है कि यह मीटर से घिरा हुआ है, लेकिन मैं सोच रहा था कि क्या हम इससे बेहतर कर सकते हैं और सटीक अवधि प्राप्त कर सकते हैं।
पॉल

मुझे नहीं लगता कि यह एक तकनीकी पर बालों को विभाजित कर रहा है: सवाल यह था कि "मनमाने ढंग से मापदंडों के साथ एक एलसीजी की अवधि कैसे निर्धारित करें", जबकि यह जवाब कहता है "मनमाने ढंग से एलसीजी का उपयोग न करें, हमेशा पूर्ण अवधि एलसीजी का उपयोग करें," और यह सोचते हैं आप कर , अपने प्रश्न का उत्तर "अधिकतम संभव अवधि, परिभाषा के द्वारा किया जाएगा। इस उत्तर में पूर्ण-अवधि एलसीएफ का उपयोग करने के लिए तर्क पूरी तरह से आश्वस्त है, लेकिन मुद्दा यह नहीं है कि सवाल क्या पूछा गया है।
xdavidliu

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

ध्यान दें कि स्टैक एक्सचेंज पर, टिप्पणी विस्तारित चर्चा के लिए अभिप्रेत नहीं है, इसके लिए कम्प्यूटेशनल साइंस चैट का उपयोग करें । टिप्पणियाँ प्रश्नों और उत्तरों को बेहतर बनाने में मदद करने के लिए होती हैं, और विचलित करने वाली होती हैं, इसलिए हम उन्हें न्यूनतम रखने की कोशिश करते हैं। टिप्पणियों को अल्पकालिक माना जाना चाहिए, कोई भी टिप्पणी जो अब सक्रिय रूप से किसी प्रश्न को सुधारने में मदद नहीं करती है या किसी पोस्ट को साफ करने के लिए किसी भी समय उत्तर को हटाया जा सकता है ।
मार्क बूथ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.