अपने काम के लिए कुछ खेल में 2 खिलाड़ियों के लिए जीतने की संभावना की गणना करने के लिए है, प्रत्येक अपने स्वयं के ELO रेटिंग के साथ । प्लेयर एक ELO आर है एक और खिलाड़ी बी है ELO आर बी
प्लेयर एक (ई के लिए उम्मीद स्कोर एक ): 1 / (1 + 10 (आर बी - आर एक ) / 400 )। प्लेयर B (E b ) के लिए समान समीकरण है : 1 / (1 + 10 (R - a - R b ) / 400 )।
यदि आप एक अधिक अनुकूलनीय संस्करण चाहते हैं: 1 / (1 + 10^((a-b) / 400))
ई एक + ई ख 1 के बराबर होना चाहिए।
इसलिए, एक खिलाड़ी के लिए स्कोर दशमलव में कुछ मैच जीतने की उनकी संभावित संभावना है।
आपके प्रोग्राम / फंक्शन में 2 इनपुट, प्लेयर A का ELO और प्लेयर B का ELO लेना चाहिए, और दशमलव प्रारूप में जीतने के लिए अपने संबंधित अवसर को प्रिंट / वापस करना चाहिए। आउटपुट को एक तक जोड़ना होगा , और आपको कम से कम 5 दशमलव स्थानों ( 0.00000) में सटीक होना चाहिए । 5 दशमलव स्थानों के बाद, आपके पास गलत अंक हो सकते हैं, बशर्ते कि दो आउटपुट अभी भी एक में जोड़े जाएं।
उदाहरण:
1200 2100 -> 0.005591967 0.994408033
1 1 -> 0.5 0.5
60 20 -> 0.557312 0.442688
9999 9998 -> 0.501439 0.498561
9999 1 -> 0.999999 0.000001
अंतिम परीक्षण मामले में, कुछ जवाब मूल्य का प्रतिनिधित्व करने के लिए वैज्ञानिक प्रतिपादक का उपयोग करते हैं। यह मान्य नहीं है।
आप टेस्ट केस 3 में देख सकते हैं कि 0.557312यह बहुत सटीक नहीं है, क्योंकि 2ए होना चाहिए 1, लेकिन यह ठीक है क्योंकि यह पांच दशमलव स्थानों के बाद है और आउटपुट अभी भी एक में जोड़े जाते हैं।
यह अमान्य आउटपुट का एक उदाहरण है:
9999 9998 -> 0.5014391117091516, 0.49856088829084844
ऐसा लगता है कि यह पहली नज़र में आवश्यकताओं को संतुष्ट करता है, लेकिन संख्याएँ जोड़ते हैं 1.00000000000000004और इसलिए आउटपुट मान्य नहीं है।
आउटपुट में ट्रेलिंग जीरो ठीक है।
आप मान सकते हैं कि किसी खिलाड़ी का ELO हमेशा 0 से अधिक होगा, और किसी का ELO 9999 से अधिक नहीं होगा।
इनपुट और आउटपुट प्रारूप लचीला है, लेकिन इनपुट और आउटपुट अभी भी बेस 10 में होना चाहिए।
जैसा कि यह कोड-गोल्फ है , सबसे कम बाइट गिनती के साथ जवाब जीत जाएगा!
[9999, 998]जिसके अधिकांश उत्तर विफल होने लगते हैं।
9999, 1मेरे अपने सहित विफल हैं, इसलिए मैं इसे पोस्ट नहीं कर सकता :-(