अजगर , 11 बाइट्स
WOyG~ZtOT)Z
नोट: यह प्रोग्राम संभवतः किसी वास्तविक कंप्यूटर पर मेमोरी त्रुटि के साथ क्रैश होगा। इसे जांचने के लिए, G
एक छोटी स्ट्रिंग के साथ बदलने का प्रयास करें , जैसे कि इस कोड में, जो लगभग 28000 की औसत संख्या उत्पन्न करता है:
pyth -c 'WOy"abcdefghijklm"~ZtOUT)Z'
यह कोड लूप्स, Z
प्रत्येक रिप्लेसमेंट पर लूप से बाहर निकलने की 2 ^ -26 संभावना के साथ -1 से 8 तक एक यादृच्छिक संख्या जोड़ रहा है। 2 ^ -26 प्रायिकता वर्णमाला ( ) O
के सभी सबसेट ( y
) के सेट के एक यादृच्छिक तत्व ( ) का चयन करके प्राप्त की जाती है G
।
तकनीकी विवरण और औचित्य:
संभावना 2 ^ -26 दो तथ्यों से ली गई है: y
जब अनुक्रमों पर कॉल किया जाता है, तो पावर-सेट फ़ंक्शन होता है, जो इनपुट के सभी सबसेट की सूची का निर्माण करता है। चूंकि इनपुट, G
26 वर्ण लंबा है, इस पावर-सेट yG
में 2 ^ 26 प्रविष्टियां हैं। OyG
उन 2 ^ 26 प्रविष्टियों में से एक यादृच्छिक तत्व का चयन करता है। उन प्रविष्टियों में से एक, खाली स्ट्रिंग, पास होने पर मिथ्या के रूप में मूल्यांकन करेगीW
जब लूप , । इसलिए, प्रत्येक बार लूप से बाहर निकलने की 2 ^ -26 संभावना है।
किसी भी निश्चित संख्या में लूप साइकल K में, संख्या K * 3.5 + m और K * 3.5 - m प्राप्त करने की संभावना बराबर है, क्योंकि जोड़ के प्रत्येक क्रम जो एक कुल प्राप्त करता है, उलटा हो सकता है, -1 -> 8, 0 -> 7, आदि, दूसरे को प्राप्त करने के लिए। इसके अतिरिक्त, K * 3.5 के करीब संख्या स्पष्ट रूप से संख्याओं की तुलना में अधिक दूर है। इस प्रकार, यदि K> 2000000 / 3.5 = 571428.5, 1000000 से अधिक संख्या प्राप्त करने की संभावना 75% से अधिक है, क्योंकि उस संख्या से ऊपर के कुछ परिणाम नीचे दिए गए सभी परिणामों के साथ एक-से-एक पत्राचार में डाले जा सकते हैं। संख्या, और ऊपरी कम-से-आधा, 1000000 से कम लोगों के साथ एक-से-एक पत्राचार में डाला जा सकता है। कम से कम 571429 लूप प्राप्त करने की संभावना है (1-2 ^ -26) ^ 571429, जो नहीं है से कम (1-2 ^ -26 * 571429), पहले 571429 कोशिशों पर लूप छोड़ने की अपेक्षित संख्या, जो 99.1% है। इस प्रकार, 99.1% या अधिक परीक्षणों पर, कम से कम 1000000 मिलने की 75% या अधिक संभावना है, इसलिए 1000000 से अधिक प्राप्त करने की 50% से अधिक संभावना है।
यह कोड उस व्यवहार पर निर्भर करता है O
जहां 3 दिन पहले गलती से एक बग पेश किया गया था और आज तय किया गया था। यह दिसंबर 22 से पहले या आज के बाद पायथ 3 के किसी भी संस्करण पर काम करना चाहिए। निम्नलिखित कोड समकक्ष है, और हमेशा काम किया है:
WOyG~ZtOUT)Z