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

यह पता लगाने का कार्यक्रम कि क्या हम पायथन में किसी गेम में जीतते हैं

मान लीजिए कि हम एक दो-खिलाड़ियों का खेल खेल रहे हैं जहाँ n संख्या में कंचे हैं और प्रत्येक राउंड में, एक खिलाड़ी को धनात्मक वर्ग संख्या में कंचे लेने होते हैं। यदि कोई खिलाड़ी उस वर्ग संख्या के कंचों को नहीं ले पाता है, तो वह हार जाता है। इसलिए, संख्या n दी गई है, हमें यह पता लगाना है कि हम गेम जीत सकते हैं या नहीं। हम हमेशा पहली बारी करते हैं और कंचों की इष्टतम संख्या का चयन करते हैं।

तो, अगर इनपुट 14 की तरह है, तो आउटपुट ट्रू होगा। क्योंकि पहली बारी में हम 9 कंचे लेते हैं। यह 5 कंचे छोड़ देता है जिससे दूसरा खिलाड़ी 1 मार्बल को पीछे छोड़ते हुए अधिकतम 4 कंचे ले सकता है। तो, अगले मोड़ में, हम अंतिम मार्बल लेते हैं, जिससे 0 कंचे पीछे रह जाते हैं, विरोधी कोई चाल नहीं चल सकता। इस प्रकार, हम जीतते हैं।

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

  • अगर n <=0, तो
    • झूठी वापसी
  • उत्तर:=असत्य
  • i के लिए पूर्णांक भाग ((n) का वर्गमूल) से -1 तक, 1 से घटाएं
    • अगर मैं * मैं> n, तो
      • लूप से बाहर आएं
    • उत्तर:=उत्तर या (नहीं हल (n - i * i))
    • यदि उत्तर सत्य है, तो
      • वापसी उत्तर
  • वापसी उत्तर

उदाहरण

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

from math import sqrt

def solve(n):
   if n <= 0:
      return False
   ans = False
   for i in range(int(sqrt(n)), 0, -1):
      if i * i > n:
         break
      ans = ans | (not solve(n - i * i))
      if ans:
         return ans
   return ans

print(solve(14))

इनपुट

14

आउटपुट

True

  1. यह पता लगाने के लिए कार्यक्रम कि क्या पायथन में सभी के द्वारा ग्राफ़ को ट्रैवर्स किया जा सकता है

    मान लीजिए, हमें एक ग्राफ दिया गया है जिसमें n शीर्षों की संख्या 0 से n - 1 है। ग्राफ अप्रत्यक्ष है और प्रत्येक किनारे का वजन है। ग्राफ में तीन प्रकार के भार हो सकते हैं और प्रत्येक भार एक विशेष कार्य को दर्शाता है। दो लोग हैं जो ग्राफ को पार कर सकते हैं, अर्थात् जैक और केसी। जैक ग्राफ को पार कर सकता

  1. पायथन में मुद्रा आर्बिट्रेज का पता लगाने का कार्यक्रम

    मान लीजिए कि हमारे पास मुद्रा विनिमय दरों की एक एन एक्स एन तालिका है। हमें यह जांचना होगा कि ट्रेडों का कुछ क्रम हम कर सकते हैं या नहीं। अब किसी भी मुद्रा की कुछ राशि A से शुरू करके, हम उस मुद्रा के A से कुछ अधिक राशि प्राप्त कर सकते हैं। कोई लेन-देन लागत नहीं है और हम भिन्नात्मक मात्राओं का व्यापार

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

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