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

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

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

इसलिए, यदि इनपुट है cards = [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 लेगा:
    • temp := 0
    • z के लिए x + 1 से y तक की रेंज में, करें:
      • temp := max(temp, search(x, z) + search(z, y) + cards[x] * cards[z] * cards[y])
    • temp लौटाएं
  • मान 1 और 1 को सूची cards की शुरुआत और अंत में क्रमशः डालें
  • search(0, cards का आकार - 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. - पायथन में अध्ययन का कुशल तरीका ज्ञात करने का प्रोग्राम

    मान लीजिए हमारे पास तीन सूचियाँ हैं जिनकी लंबाई समान है: deadlines, credits, और durations। ये कोर्स असाइनमेंट दर्शाते हैं। i-वें असाइनमेंट के लिए deadlines[i] इसकी अंतिम तिथि, credits[i] इसका क्रेडिट, और durations[i] इसे पूरा करने में लगने वाले दिन हैं। एक असाइनमेंट को दूसरे से पहले पूरा करना होगा।

  1. - Python प्रोग्राम: तीन संख्याओं में से अधिकतम खोजें

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