Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में लोटस और कैटरपिलर गेम जीतने के लिए आवश्यक अपेक्षित चालों की संख्या खोजने का कार्यक्रम

मान लीजिए कि हमारे पास n पंक्तियों और m स्तंभों वाला एक ग्रिड है। अमल और बिमल उस ग्रिड पर एक खेल खेल रहे हैं। खेल का नियम नीचे जैसा है -

अमल शीर्ष पंक्ति में कहीं सफेद कमल की टाइल रखता है और बिमल नीचे की पंक्ति में कहीं एक कैटरपिलर टाइल रखता है। अमल खेल शुरू करता है और वे वैकल्पिक रूप से खेल रहे हैं। अमल अपनी टाइल को वर्तमान सेल के ग्रिड के अंदर 8 आसन्न कोशिकाओं में से किसी में भी स्थानांतरित कर सकता है, लेकिन बिमल की कैटरपिलर टाइल केवल ग्रिड के अंदर बाएं या दाएं स्थानांतरित हो सकती है, या उसी स्थिति में रह सकती है। अमल का लक्ष्य जितना संभव हो उतना कम चाल का उपयोग करके बिमल को पकड़ना है, जबकि बिमल (कैटरपिलर टाइल के साथ) को यथासंभव लंबे समय तक जीवित रहना है। यदि वे अपने कमल और कैटरपिलर को रखने के लिए यादृच्छिक रूप से दो स्तंभों का चयन करते हैं, तो हमें अमल द्वारा इस खेल को जीतने के लिए अपेक्षित चालों की अपेक्षित संख्या ज्ञात करनी होगी।

इसलिए, यदि इनपुट n =5 m =7 जैसा है, तो आउटपुट 4.571428571428571 होगा।

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • r :=0
  • 0 से m-1 की सीमा में l के लिए
    • अस्थायी:=n - 1.0
    • अगर l>=n, तो
      • अस्थायी:=अस्थायी + (एल - एन + 1) * ((एल -1) / एम)
    • अगर एल <एम - एन, तो
      • अस्थायी:=अस्थायी + (एम - एन - एल) * ((एम - एल - 2) / एम)
    • r :=r + temp / m
  • रिटर्न आर

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

def solve(n, m):
   r = 0

   for l in range(m):
      temp = n - 1.0
      if l >= n:
         temp += (l - n + 1) * ((l - 1) / m)
      if l < m - n:
         temp += (m - n - l) * ((m - l - 2) / m)
      r += temp / m

   return r

n = 5
m = 7
print(solve(n, m))

इनपुट

5, 7

आउटपुट

4.571428571428571

  1. पायथन में बार-बार पूर्णांक गेम को हटाने के लिए चालों की संख्या खोजने का कार्यक्रम

    मान लीजिए कि दो मित्र अमल और बिमल संख्याओं की एक क्रमबद्ध सूची के साथ एक खेल खेल रहे हैं जिसे अंक कहते हैं। इस खेल में अमल एक ही बारी में कोई तीन अंक चुनता है। बिमल उनमें से एक को हटा देता है, और फिर अमल उनमें से एक को हटा देता है। सूची विषम संख्या में तत्वों से शुरू होती है। यहां अमला सूची में दोहर

  1. स्ट्रिंग की संख्या खोजने के लिए प्रोग्राम जहां हम 'ए' 'ए' या 'बी' हो सकते हैं, और 'बी' पाइथन में 'बी' रहता है

    मान लीजिए कि हमारे पास केवल ए और बी के साथ एक स्ट्रिंग है। ए एस ए रह सकता है या बी में बदल सकता है, लेकिन बी को बदला नहीं जा सकता है। हमें अद्वितीय स्ट्रिंग्स की संख्या ज्ञात करनी होगी जो हम बना सकते हैं। इसलिए, यदि इनपुट s =baab जैसा है, तो आउटपुट 4 होगा, क्योंकि हम इन स्ट्रिंग्स को बना सकते हैं -

  1. पायथन में एक नंबर से दूसरे नंबर बनाने के लिए आवश्यक न्यूनतम संख्या में संचालन खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास एक नंबर स्टार्ट है और दूसरा नंबर एंड (स्टार्ट <एंड) है, हमें इन ऑपरेशंस का उपयोग करके स्टार्ट टू एंड को कन्वर्ट करने के लिए आवश्यक ऑपरेशंस की न्यूनतम संख्या ज्ञात करनी होगी - 1 से वृद्धि 2 से गुणा करें इसलिए, यदि इनपुट प्रारंभ =5, अंत =11 जैसा है, तो आउटपुट 2 होगा, क्योंकि