मुझे उम्मीद है कि पाठकों के बीच खेल प्रशंसक हैं। यदि आप बैडमिंटन या टेबल टेनिस खेलते हैं, तो आप शायद सोचते हैं: एक बिंदु जीतने की ज्ञात संभावना के साथ खेल जीतने की संभावना क्या है? मान लीजिए कि आप अपने प्रतिद्वंद्वी से लगभग 11: 7 के स्कोर से हार गए। ऐसा लगता है कि केवल 4 अंक का अंतर है, लेकिन एक ही समय में गेम जीतने के लिए प्रबंधन नहीं करता है। भाग्यशाली नहीं है? मैं इस समस्या को हल करने का प्रस्ताव करता हूं और इस प्रश्न का उत्तर प्राप्त करता हूं।
वित्तीय गणित के अप्रत्यक्ष संबंध होने से, मुझे पता है कि वित्तीय गणित के लिए ऐसा कार्य विशेष रूप से सरल होगा। इसे हल करने के संभावित तरीके विकल्प की कीमत की गणना करने के तरीकों के समान हैं। लेकिन इस कार्य में कुछ ऐसी बारीकियां हैं जो वित्त के लिए कुछ हद तक असामान्य हैं। आइए समाधान के विकल्प देखें।
इसके साथ शुरू करने के लिए, मैंने अपने 15 वर्षीय बेटे को सौंपा, जो इस समस्या को हल करने के लिए संख्यात्मक विधि ("थोड़ा" कीवर्ड का उपयोग करके) पायथन में थोड़ी प्रोग्रामिंग करता है। मैंने सुझाव दिया कि वह बाइनरी ट्री विधि (वित्तीय जोखिम में, एनालिटिक्स को आमतौर पर द्विपद विधि या जाली) और मोंटे हेलो कहा जाता है। सोन ने आश्चर्यजनक रूप से मोंटे कार्लो के साथ तुरंत समझौता किया, एक काफी कॉम्पैक्ट कोड लिखा। अगर किसी को पता नहीं है, मोंटे कार्लो का विचार एक समस्या का अनुकरण करके और एक उत्तर खोजने के द्वारा बड़ी संख्या में यादृच्छिक थ्रो करना है। मान लीजिए आप पहले खिलाड़ी हैं। इस मामले में, हमारे पास बिंदु (7 / (11 + 7)) जीतने की संभावना है ~ ~ 0.39। हम रेंज [0., 1.] में एक यादृच्छिक संख्या X उत्पन्न करके खेल शुरू करते हैं। यदि X <0.39 है, तो आप बिंदु जीतते हैं। हम खेल को अंत तक लाते हैं और ध्यान देते हैं कि कौन जीता। स्वीकार्य सटीकता प्राप्त करने के लिए, हम इस प्रक्रिया को बड़ी संख्या में करते हैं। वित्त में, आमतौर पर 100K से 1M तक की सीमा का उपयोग किया जाता है, यह 8 महत्वपूर्ण अंकों की सटीकता सुनिश्चित करता है। मेरे बेटे की गिनती 10K थी, यह तुरंत और असमान रूप से पर्याप्त सटीकता प्रदान करता था। हालांकि, हमने पीछा नहीं किया, क्योंकि सादगी के लिए हमने बकरी की लड़ाई को नजरअंदाज करने का फैसला किया। यानी 11:10 के स्कोर को जीत माना गया। इस तरह की समस्या को हल करने के लिए कोड का आधा पृष्ठ आसानी से पर्याप्त है। इसे आज़माएँ और आप इसे पसंद करेंगे।
मैं मोंटे कार्लो की मदद से समाधान की सादगी से संतुष्ट नहीं था और अपने बेटे को बाइनरी ट्री विधि के साथ लोड करने का फैसला किया। उन्होंने लंबे समय तक इनकार किया और कठिनाई के बारे में शिकायत की। उसे मेटरियल के साथ थोड़ी मदद करनी पड़ी।
बाइनरी ट्री का निर्माण निम्नानुसार किया जाता है। हम स्कोर 0-0 से शुरू करते हैं। यदि पहला खिलाड़ी पहला अंक जीतता है, तो ऊपर और दाईं ओर ऊपर जाएं; यदि दूसरा जीतता है, तो नीचे और दाईं ओर जाए। दाईं ओर एक कदम खेल की शुरुआत से अंत तक के बिंदुओं पर एक आंदोलन है। एक गेम के लिए 3 पूर्ण पेड़ नीचे दिए गए हैं। मध्यवर्ती परिणामों के कोने नीले, पीले रंग में हाइलाइट किए गए हैं - पहला खिलाड़ी मैच जीतता है, और हरा - दूसरा खिलाड़ी जीतता है।

हम स्कोर 0: 0 से शुरू करते हैं, जिसकी संभावना 100% है। सही करने के लिए प्रत्येक संक्रमण की अपनी संभावना है। पहले खिलाड़ी द्वारा एक अंक जीतने की संभावना को नकारें - पी 1, और दूसरा - पी 2। स्वाभाविक रूप से, योग p1 + P2 = 1. हम शुरू से अंत तक पेड़ के साथ जाते हैं और इस सेल में आने की संभावना की गणना करते हैं। ऊपरी और निचले कोशिकाओं के लिए, संक्रमण केवल पिछले स्तर के एक सेल से संभव है। उदाहरण के लिए, 3: 0 का स्कोर 2: 0 के बाद ही संभव है। शेष कोशिकाओं में प्रवेश बाईं तरफ दो पड़ोसी कोशिकाओं से होता है। उदाहरण के लिए, 1: 1 का स्कोर 1: 0 के बाद संभव है जब दूसरा खिलाड़ी बाद में प्वाइंट जीतता है, या जब 0: 1 होता है जब पहला खिलाड़ी जीतता है।

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

फिर यह बाएं से दाएं और ऊपर से नीचे तक एक डबल चक्र में जाने के लिए रहता है, सेल संभावनाओं को गिनता है और सीमा की स्थिति को ध्यान में रखता है। वे अगर / अगर / और में डाली जाती हैं। खैर, यह खिलाड़ियों में से एक के लिए जीतने वाली कोशिकाओं की संभावनाओं को योग करने के लिए रहता है (दूसरे के लिए यह जांचना संभव है कि उनकी राशि 1 है)।
और अंत में, तीसरी विधि। खेल का कोई भी अंतिम स्कोर (उदाहरण के लिए 11: 7) एक निश्चित संख्या में विकल्पों का उल्लेख करता है। आंकड़े कहते हैं कि यह 7 से 17 तक संयोजन की संख्या है। मूल्य 17 है! / ((17-7)! 7)। 17 इस खाते में माइनस एक के लिए कुल अंकों की संख्या है, क्योंकि अंतिम बिंदु हमेशा विजेता के लिए जीत रहा है, अर्थात, 7 हार इस स्थान पर नहीं हो सकते हैं। जीतने वाले खातों के लिए संभावित विकल्प इस प्रकार हैं (बकरी की लड़ाई को अनदेखा करें) - 11: 0, 11: 1, ..., 11: 10।
यही है, आप इस परिणाम की संभावना से गुणा करके, उनमें से प्रत्येक में विकल्पों की संख्या को जोड़कर एक खिलाड़ी के लिए एक विजेता स्कोर के सभी परिणामों को हल कर सकते हैं। तालिका में एक बिंदु 39% जीतने की संभावना के लिए गणना परिणाम हैं। पॉवर 1 वह डिग्री है, जिसमें एक पॉइंट जीतने की संभावना विजेता द्वारा उठाई जाती है, पॉवर 2 हारने वाले द्वारा।

उपरोक्त सभी विधियां मज़बूती से काम करती हैं और समान परिणाम देती हैं।
अंत में, मैं एक अंक जीतने की औसत संभावना के आधार पर टेबल टेनिस (11 तक) और बैडमिंटन (21 तक) में एक मैच जीतने की संभावना का एक ग्राफ दूंगा।

नीली रेखा टेबल टेनिस का प्रतिनिधित्व करती है, नारंगी रेखा बैडमिंटन का प्रतिनिधित्व करती है। जैसा कि आप ग्राफ से देख सकते हैं, टेबल टेनिस का खेल जीतने के लिए कम से कम कुछ मौके (~ 3%) होने के लिए, आपको कम से कम 30% अंक जीतने की आवश्यकता है। पहले से ही 25% पर, संभावना 1% से नीचे चली जाती है।
बैडमिंटन में, आवश्यकताएं और भी कठिन हैं। वहाँ, यह लगभग 3% की संभावना के साथ गेम जीतने की उम्मीद में 35% से अधिक ले जाएगा।
स्वाभाविक रूप से, यदि आप प्रत्येक बिंदु के लिए 50% से कम स्कोर करते हैं, तो मैच जीतने की संभावना (कई खेलों से) और भी अधिक गिर जाती है।
मूल्यवान सलाह खुद को बताती है - मैच जीतने के लिए, आपको हर बिंदु पर जीत हासिल करने के लिए काम करना होगा।