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

पायथन में एक गेम में संग्रहणीय अधिकतम अंक खोजने का कार्यक्रम

मान लीजिए हम ताश का खेल खेल रहे हैं। हमें कई कार्ड दिए गए हैं जिनमें से प्रत्येक पर एक संख्या के साथ रैखिक रूप से व्यवस्थित किया गया है। कार्ड पर नंबर बेतरतीब ढंग से वितरित किए जाते हैं; और कार्ड की शुरुआत और अंत में, उन पर नंबर 1 के साथ दो कार्ड डाले जाते हैं। अब, खेल में, हमें दिए गए कार्डों को उठाकर अधिकतम अंक एकत्र करने हैं। कार्ड एक सरणी 'कार्ड' में प्रस्तुत किए जाते हैं जहां सरणी में तत्व कार्ड की संख्या का प्रतिनिधित्व करते हैं [i]। जब हम कार्ड i उठाते हैं, तो हम अंक कार्ड [i - 1] * कार्ड [i] * कार्ड [i + 1] एकत्र करते हैं। जब हम एक कार्ड उठाते हैं, कार्ड [i - 1] और कार्ड [i] पड़ोसी बन जाते हैं। इसलिए, इन दिए गए कार्डों से हम अधिकतम अंक प्राप्त कर सकते हैं जो हम एकत्र कर सकते हैं।

इसलिए, यदि इनपुट कार्ड की तरह है =[7, 5, 9, 10], तो आउटपुट 1025

होगा।

तो खेल में, हम उठा सकते हैं -

इंडेक्स 1 पर कार्ड और 7 * 5 * 9 =315 अंक प्राप्त करें।

नए इंडेक्स 1 पर कार्ड और 7 * 9 * 10 =630 अंक प्राप्त करें।

इंडेक्स 1 पर कार्ड और 7 * 10 =70 अंक प्राप्त करें।

अंतिम कार्ड और 10 अंक प्राप्त करें।

कुल अंक =315 + 630 + 70 + 10 =1025

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

  • फ़ंक्शन को परिभाषित करें search() । इसमें x, y
      . लगेगा
    • अस्थायी:=0
    • z के लिए x + 1 से y की श्रेणी में, करें
      • अस्थायी:=अधिकतम (अस्थायी, खोज(x, z) + खोज(z, y) + कार्ड[x] * कार्ड[z] * कार्ड[y])
    • वापसी का तापमान
  • सूची कार्ड के आरंभ और अंत में क्रमशः 1 और 1 मान डालें
  • वापसी खोज(0, कार्ड का आकार -1)

उदाहरण

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

def solve(cards):
   def search(x, y):
      temp = 0
      for z in range(x + 1, y):
         temp = max(temp, search(x, z) + search(z, y) + cards[x] * cards[z] * cards[y])
      return temp
   cards = [1] + cards + [1]
   return search(0, len(cards) - 1)

print(solve([7, 5, 9, 10]))

इनपुट

[7, 5, 9, 10]

आउटपुट

1025

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

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

  1. पायथन में अध्ययन करने का प्रभावी तरीका खोजने का कार्यक्रम

    मान लीजिए, हमारे पास तीन सूचियाँ हैं जिनकी लंबाई समान है। ये समय सीमा, क्रेडिट और अवधि हैं। वे पाठ्यक्रम असाइनमेंट का प्रतिनिधित्व कर रहे हैं। i−th असाइनमेंट की समय सीमा के लिए [i] इसकी समय सीमा दिखाता है, क्रेडिट [i] अपना क्रेडिट दिखाता है, और अवधि [i] असाइनमेंट पूरा करने में लगने वाले दिनों की संख

  1. अधिकतम तीन नंबर खोजने के लिए पायथन प्रोग्राम

    इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो तीन अंकों से अधिकतम राशि का पता लगाता है। हमारे पास तीन संख्याएँ होंगी, और हमारा लक्ष्य उन तीन संख्याओं में से अधिकतम संख्या ज्ञात करना है। आइए बेहतर समझ के लिए कुछ नमूना परीक्षण मामलों को देखें। Input: a, b, c = 2, 34, 4 Output: 34 Input: a