XKCD ब्रैकेट की संभावनाएं


13

आज की XKCD एक खेल-टूर्नामेंट शैली ब्रैकेट है, जहाँ प्रतियोगी जाने-माने नाम हैं, संभवतः भ्रमित करने वाले नामों के समूह में।

यह संभावना दें कि एक दिया गया प्रतियोगी पूरे टूर्नामेंट को जीत लेगा, एक दौर में प्रत्येक प्रतियोगी के आधार पर उस दौर को जीतने का एक समान मौका होगा।

इनपुट

एक प्रतियोगी का नाम।

  • एक्सकेसीडी सभी ऊपरी मामले का उपयोग करना पसंद करता है, लेकिन आप जो भी मामला आपके लिए समझ में आता है या आपके इनपुट मामले को असंवेदनशील बना सकते हैं, का उपयोग कर सकते हैं।
  • आप मान सकते हैं कि सभी इनपुट नाम मान्य हैं।
  • Jeff Gordanशायद एक गलत वर्तनी है Jeff Gordon। आप या तो इन दोनों को स्वीकार करने का विकल्प चुन सकते हैं।
  • कुछ नामों में विराम चिह्न, जैसे H. G. Wellsऔर Joseph Gordon-Levitt। आप विराम चिह्न (या दोनों) के साथ या बिना नाम स्वीकार करने का विकल्प चुन सकते हैं। विराम चिह्न के बिना ऊपर H G Wellsऔर होगाJoseph Gordon Levitt
  • इसी तरह, आप Beyoncéया तो Beyonceया दोनों को स्वीकार करने का विकल्प चुन सकते हैं
  • Mister/Fred Astaire/Rogersलाइन में थोड़ा अजीब है। इस एक के लिए, आप निम्न में से सभी को स्वीकार करना चाहिए: Fred Rogers, Mister RogersऔरFred Astaire

उत्पादन

दिए गए प्रतियोगी के पूरे टूर्नामेंट को तर्कसंगत रूप में जीतने की संभावना (जैसे 1/64)

उदाहरण

  • लुइस आर्मस्ट्रांग संभावित रूप से 6 राउंड में खेलेंगे, प्रत्येक में दो प्रतियोगी होंगे, इसलिए उनके पास जीतने का 1/64 मौका है।
  • एलन रिकमैन संभावित रूप से 7 राउंड में खेलेंगे, 3 प्रतियोगी के साथ पहले और बाकी 2 प्रतियोगियों के साथ, इसलिए उनके पास जीतने का 1/192 मौका है।

आपको छवि से सभी नामों में टाइप करने के प्रयास को बचाने के लिए, स्पष्टीकरण XKCD ने पहले ही उन्हें सारणीबद्ध कर दिया है । मैंने उन्हें इस पास्टबिन में डंप भी किया है ।

ध्यान दें कि एक्सएक्सएक्ससीडी में जीतने की संभावनाएं गलत हैं - वे दोगुनी हैं जितनी बड़ी होनी चाहिए क्योंकि वे अंतिम दौर को भूल रहे हैं। इसे इंगित करने के लिए धन्यवाद @Geobits।


इसलिए हम पहले परिवर्तित करने के लिए पाठ में छवि और फिर hardcode संभावना बाल्टी है .. ughh
अनुकूलक

2
@ ऑप्टिमाइज़र एक्सप्लेक्सी एलसीडी आपकी मदद कर सकता है
मार्टिन

@ मार्टिनबटनर यह डोप है
ऑप्टिमाइज़र

@ ऑप्टिमाइज़र कोई छवि रूपांतरण की आवश्यकता नहीं है :)
डिजिटल ट्रॉमा

4
Explxxkcd एक विकी है; जब आप इसे सभी के लिए ठीक कर सकते हैं तो इसे नोट में ठीक क्यों करें? : पी
अंडरग्राउंडोरेल

जवाबों:


6

सीजेएम, 161 बाइट्स

1'/l_"FRE"#\_'É#)\2b626%536%"òazíF­.?§·»ùßóÿ÷ýÿÿ»×ï_ÿÿ¿ß÷ä¿ûïÿÏÅÿ¿ÿÿ~ÿþÿýó½ïÿþþ/ïþÿ®þü¾ùÿ®÷/"256b2b2*<1-,"ãÍÕý*ÔÞ)ð^sV? Ìöî²\ÅlÕáS{Á"260b5b=5,Z6t=2+1\?4?32*

यह एक पूर्ण कार्यक्रम है जो अपरकेस इनपुट की अपेक्षा करता है, विराम चिह्न और उच्चारण के साथ जैसा कि पास्टबिन में दिखाया गया है।

CJam दुभाषिया में इसे ऑनलाइन आज़माएं ।

यह काम किस प्रकार करता है

1'/      e# Push a 1 and a slash.
l        e# Read a line of input from STDIN.
_"FRE"#  e# Push 0 if the input starts with "FRE" and a truthy value otherwise.
\_'É#)   e# Push 1 if the input doesn't contain "É" and a falsy value otherwise.

         e# Now we hash the input:
\2b      e#     Apply base 2 conversion to turn the input into an integer.
626%536% e#     Take that integer modulo 626, then modulo 536.

"òazíF­.?§·»ùßóÿ÷ýÿÿ»×ï_ÿÿ¿ß÷ä¿ûïÿÏÅÿ¿ÿÿ~ÿþÿýó½ïÿþþ/ïþÿ®þü¾ùÿ®÷/"256b2b2*

         e# Convert the string from base 256 to base 2 and repeat it.
         e# The resulting array, [1 1 1 1 0 0 1 0 0 ...], contains a 0 at index X
         e# if and only if there is a possible input with hash X.

<        e# Keep the binary values before the index of the input hash.
<1-,     e# Count the number of zeroes.

"ãÍÕý*ÔÞ)ð^sV?  Ìöî²\ÅlÕáS{Á"260b5b

         e# Convert the string from base 260 to base 5.
         e# The resulting array, [2 2 2 2 2 0 4 4 0 0 ...], contains a diffrent
         e# integer for every different probability. The input with the lowest hash
         e# corresponds to the first index, the one with the highest to the last.

=        e# Retrieve the integer corresponding to the input.
5,Z6t=   e# Retrieve the corresponding element from [0 1 2 6 4].
2+       e# Add two.
1\?      e# Select the result from above or 1 for BEYONCÉ.
4?       e# Select the result from above or 4 for and FRED.
32*      e# Multiply by 32.

मैंने स्पष्टीकरण x (2 से गुणा) से संभावनाओं को लिया है और अंतराल में भर दिया है। उम्मीद है, सब कुछ सही है। किसी भी संभावना को ठीक करने पर बाइट की गिनती पर प्रभाव नहीं होना चाहिए।
डेनिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.