बर्थडे विरोधाभास, या PRNGs डुप्लिकेट का उत्पादन जितना आप सोचते हैं उससे अधिक बार कर सकते हैं।
ओपी की समस्या पर कुछ मुद्दे हैं। एक जन्मदिन का विरोधाभास है जैसा कि ऊपर उल्लेख किया गया है और दूसरा वह है जो आप पैदा कर रहे हैं की प्रकृति है, जो स्वाभाविक रूप से गारंटी नहीं देता है कि किसी दिए गए नंबर को दोहराया नहीं जाएगा।
बर्थडे पैराडॉक्स लागू होता है जहां दिए गए मूल्य जनरेटर की अवधि के दौरान एक से अधिक बार हो सकते हैं - और इसलिए डुप्लिकेट मूल्यों के नमूने के भीतर हो सकते हैं। बर्थडे विरोधाभास का प्रभाव यह है कि इस तरह के डुप्लिकेट प्राप्त करने की वास्तविक संभावना काफी महत्वपूर्ण है और उनके बीच की औसत अवधि एक से छोटी है अन्यथा सोचा हो सकता है। कथित और वास्तविक संभावनाओं के बीच यह असहमति जन्मदिन के विरोधाभास को एक संज्ञानात्मक पूर्वाग्रह का एक अच्छा उदाहरण बनाती है , जहां एक सहज ज्ञान युक्त अनुमान का बेतहाशा गलत होना संभव है।
छद्म रैंडम नंबर जेनरेटर (PRNGs) पर एक त्वरित प्राइमर
आपकी समस्या का पहला हिस्सा यह है कि आप एक यादृच्छिक संख्या जनरेटर के उजागर मूल्य को ले रहे हैं और इसे बहुत छोटी संख्या में परिवर्तित कर रहे हैं, इसलिए संभव मानों का स्थान कम हो गया है। हालाँकि कुछ छद्म यादृच्छिक संख्या जनरेटर अपने अवधि के दौरान मानों को नहीं दोहराते हैं लेकिन यह परिवर्तन डोमेन को बहुत छोटे से बदल देता है। छोटा डोमेन 'कोई दोहराता नहीं है' स्थिति को अमान्य करता है ताकि आप दोहराव की एक महत्वपूर्ण संभावना की उम्मीद कर सकें।
जैसे कुछ एल्गोरिदम, रैखिक congruential PRNG ( A'=AX|M
) करना पूरी अवधि के लिए गारंटी विशिष्टता। एक LCG में उत्पन्न मान में संचायक की पूरी स्थिति होती है और कोई अतिरिक्त स्थिति नहीं होती है। जनरेटर नियतात्मक है और अवधि के भीतर एक संख्या को दोहरा नहीं सकता है - किसी भी दिए गए संचायक मूल्य केवल एक संभव उत्तराधिकारी मूल्य हो सकता है। इसलिए, प्रत्येक मान केवल जनरेटर की अवधि के भीतर एक बार हो सकता है। हालांकि, इस तरह के एक PRNG की अवधि LCG एल्गोरिदम के विशिष्ट कार्यान्वयन के लिए लगभग 2 ^ 30 है - और संभवतः विभिन्न मूल्यों की संख्या से बड़ा नहीं हो सकता है।
सभी PRNG एल्गोरिदम इस विशेषता को साझा नहीं करते हैं; कुछ अवधि के भीतर दिए गए मान को दोहरा सकते हैं। ओपी की समस्या में, मेर्सेन ट्विस्टर एल्गोरिथ्म (पायथन के यादृच्छिक मॉड्यूल में प्रयुक्त ) की बहुत लंबी अवधि है - 2 ^ 32 से अधिक। रैखिक बधाई PRNG के विपरीत, परिणाम विशुद्ध रूप से पिछले आउटपुट मान का एक फ़ंक्शन नहीं है क्योंकि संचायक में अतिरिक्त स्थिति होती है। 32-बिट पूर्णांक आउटपुट और ~ 2 ^ 19937 की अवधि के साथ, यह संभवतः इस तरह की गारंटी नहीं दे सकता है।
Mersenne ट्विस्टर PRNGs के लिए एक लोकप्रिय एल्गोरिथ्म है क्योंकि इसमें अच्छे सांख्यिकीय और ज्यामितीय गुण हैं और सिमुलेशन मॉडल पर उपयोग किए जाने वाले PRNG के लिए एक बहुत लंबी अवधि - वांछनीय विशेषताएं हैं।
अच्छे सांख्यिकीय गुणों का अर्थ है कि एल्गोरिथ्म द्वारा उत्पन्न संख्याओं को समान रूप से वितरित किया जाता है, जिनकी संख्या दूसरों की तुलना में प्रदर्शित होने की काफी अधिक संभावना है। खराब सांख्यिकीय गुण परिणामों में अवांछित तिरछा उत्पादन कर सकते हैं।
अच्छी ज्यामितीय उचितता का मतलब है कि एन संख्या के सेट एन-आयामी अंतरिक्ष में एक हाइपरप्लेन पर झूठ नहीं बोलते हैं। गरीब ज्यामितीय गुण सिमुलेशन मॉडल में सहज सहसंबंध उत्पन्न कर सकते हैं और परिणामों को विकृत कर सकते हैं।
एक लंबी अवधि का मतलब है कि आप अनुक्रम के शुरू होने से पहले लगभग कई संख्या उत्पन्न कर सकते हैं। यदि किसी मॉडल को बड़ी संख्या में पुनरावृत्तियों की आवश्यकता होती है या उसे कई बीजों से चलाना पड़ता है, तो एक विशिष्ट LCG कार्यान्वयन से उपलब्ध 2 ^ 30 या असतत संख्या पर्याप्त नहीं हो सकती है। MT19337 एल्गोरिथ्म की बहुत लंबी अवधि है - 2 ^ 19337-1, या लगभग 10 ^ 5821। तुलनात्मक रूप से, ब्रह्मांड में परमाणुओं की कुल संख्या लगभग 10 ^ 80 है।
MT19337 PRNG द्वारा निर्मित 32-बिट पूर्णांक संभवतः इतनी बड़ी अवधि के दौरान पुनरावृत्ति से बचने के लिए पर्याप्त असतत मूल्यों का प्रतिनिधित्व नहीं कर सकता है। इस मामले में, डुप्लिकेट मान होने की संभावना है और एक बड़े पर्याप्त नमूने के साथ अपरिहार्य है।
संक्षेप में जन्मदिन का विरोधाभास
इस समस्या को मूल रूप से उसी जन्मदिन को साझा करने वाले कमरे में किसी दो लोगों की संभावना के रूप में परिभाषित किया गया है। मुख्य बिंदु यह है कि कमरे में कोई भी दो लोग जन्मदिन साझा कर सकते हैं। लोग समस्या को गलत तरीके से समझते हैं क्योंकि कमरे में किसी व्यक्ति के जन्मदिन को किसी विशिष्ट व्यक्ति के साथ साझा करने की संभावना है, जो संज्ञानात्मक पूर्वाग्रह का स्रोत है जो अक्सर लोगों को संभावना को कम करने का कारण बनता है। यह गलत धारणा है - मैच के लिए किसी विशिष्ट व्यक्ति के होने की आवश्यकता नहीं है और कोई भी दो व्यक्ति मैच कर सकते हैं।

किसी भी दो व्यक्तियों के बीच होने वाले मैच की संभावना मैच के लिए किसी विशिष्ट व्यक्ति की संभावना से बहुत अधिक होती है क्योंकि मैच को किसी विशिष्ट तिथि तक नहीं होना पड़ता है। बल्कि, आपको केवल दो व्यक्तियों को ढूंढना होगा जो एक ही जन्मदिन साझा करते हैं। इस ग्राफ से (जो इस विषय पर विकिपीडिया पृष्ठ पर पाया जा सकता है), हम देख सकते हैं कि हमें कमरे में केवल 23 लोगों की आवश्यकता है ताकि इस तरह से दो का मिलान करने का 50% मौका मिल सके।
विषय पर विकिपीडिया प्रविष्टि से हम एक अच्छा सारांश प्राप्त कर सकते हैं । ओपी की समस्या में, हमारे पास 4,500 संभावित 'जन्मदिन' हैं, बजाय 365 के। दिए गए यादृच्छिक मानों की एक संख्या के लिए ('लोगों' के बराबर) हम किसी की संभावना जानना चाहते हैं अनुक्रम में प्रदर्शित होने वाले दो समान मूल्यों ।
ओपी की समस्या पर जन्मदिन के विरोधाभास के संभावित प्रभाव की गणना करना
100 नंबरों के अनुक्रम के लिए, हमारे पास
जोड़े हैं ( समस्या को समझें ) जो संभावित रूप से मेल खा सकते हैं (यानी पहला दूसरे, तीसरे आदि के साथ मेल खा सकता है, दूसरा तीसरे, चौथे आदि से मेल खा सकता है और इसी तरह), इत्यादि। संभावित रूप से मेल खाने वाले संयोजनों की संख्या मात्र 100 से अधिक है।
संभाव्यता की गणना करने से हमें अभिव्यक्ति मिलती है
। नीचे दिए गए पायथन कोड के निम्नलिखित स्निपेट एक मेलिंग जोड़ी होने की संभावना का एक भोला मूल्यांकन करते हैं।
from math import log10, factorial
PV=4500
SS=100
numerator = factorial (PV)
denominator = (PV ** SS) * factorial (PV - SS)
log_prob_no_pair = log10 (numerator) - log10 (denominator)
print 1.0 - (10 ** log_prob_no_pair)
यह 4500 संभावित मानों की जनसंख्या से 100 नंबरों के भीतर होने वाले मैच के लिए p = 0.669 का एक समझदार दिखने वाला परिणाम उत्पन्न करता है। (हो सकता है कि कोई इसे सत्यापित कर सकता है और यदि यह गलत है तो टिप्पणी पोस्ट कर सकता है)। इससे हम देख सकते हैं कि ओपी द्वारा देखे गए मिलान संख्याओं के बीच रनों की लंबाई काफी उचित प्रतीत होती है।
फुटनोट: छद्म यादृच्छिक संख्याओं का एक अनूठा अनुक्रम प्राप्त करने के लिए फेरबदल का उपयोग करना
एस। मार्क से नीचे इस उत्तर को देखें यादृच्छिक संख्या की गारंटी अद्वितीय सेट हो रही का एक साधन के लिए। पोस्टर जिस तकनीक को संदर्भित करता है वह एक संख्या लेता है (जो आप आपूर्ति करते हैं, ताकि आप उन्हें विशिष्ट बना सकें) और उन्हें यादृच्छिक क्रम में फेरबदल करता है। क्रमबद्ध संख्या से अनुक्रम में आरेखित करने से आपको छद्म यादृच्छिक संख्याओं का एक क्रम मिलेगा जो दोहराए जाने की गारंटी नहीं है।
फुटनोट: क्रिप्टोग्राफिक रूप से सुरक्षित PRNGs
एमटी एल्गोरिथ्म क्रिप्टोग्राफिक रूप से सुरक्षित नहीं है क्योंकि संख्याओं के अनुक्रम को देखकर जनरेटर की आंतरिक स्थिति का अनुमान लगाना अपेक्षाकृत आसान है। अन्य एल्गोरिदम जैसे ब्लम ब्लम शुब का उपयोग क्रिप्टोग्राफ़िक अनुप्रयोगों के लिए किया जाता है, लेकिन सिमुलेशन या सामान्य यादृच्छिक संख्या अनुप्रयोगों के लिए अनुपयुक्त हो सकता है। क्रिप्टोग्राफिक रूप से सुरक्षित PRNG महंगे हो सकते हैं (शायद बिंगम गणना की आवश्यकता होती है) या अच्छे ज्यामितीय गुण नहीं हो सकते हैं। इस प्रकार के एल्गोरिथ्म के मामले में, प्राथमिक आवश्यकता यह है कि मूल्यों के अनुक्रम का अवलोकन करके जनरेटर की आंतरिक स्थिति का अनुमान लगाने के लिए यह कम्प्यूटेशनल रूप से संभव है।