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

पायथन प्रोग्राम: 0-1 नैपसैक समस्या

इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे।

समस्या कथन

हमें n वस्तुओं के वजन और मूल्य दिए गए हैं, हमें इन वस्तुओं को क्षमता W के बैग में अधिकतम क्षमता w तक रखना है। हमें अधिकतम वस्तुओं को ले जाने की आवश्यकता है और उसका मूल्य वापस करना है।

उदाहरण (साधारण दृष्टिकोण)

# बैग द्वारा संग्रहीत किए जा सकने वाले अधिकतम मूल्य को लौटाता है
def knapSack(W, wt, val, n):
    # प्रारंभिक शर्तें
    if n == 0 or W == 0:
        return 0
    # यदि वजन क्षमता से अधिक है तो इसे शामिल नहीं किया जाता
    if (wt[n-1] > W):
        return knapSack(W, wt, val, n-1)
    # या तो nth आइटम शामिल है या नहीं
    else:
        return max(val[n-1] + knapSack(W-wt[n-1], wt, val, n-1),
                   knapSack(W, wt, val, n-1))

# उपरोक्त फ़ंक्शन का परीक्षण करने के लिए
val = [50, 100, 150, 200]
wt = [8, 16, 32, 40]
W = 64
n = len(val)
print(knapSack(W, wt, val, n))

आउटपुट

350

उदाहरण (डायनामिक दृष्टिकोण)

# एक डायनामिक दृष्टिकोण
# बैग द्वारा संग्रहीत किए जा सकने वाले अधिकतम मूल्य को लौटाता है
def knapSack(W, wt, val, n):
    K = [[0 for x in range(W + 1)] for x in range(n + 1)]
    # बॉटम-अप तरीके से टेबल
    for i in range(n + 1):
        for w in range(W + 1):
            if i == 0 or w == 0:
                K[i][w] = 0
            elif wt[i-1] <= w:
                K[i][w] = max(val[i-1] + K[i-1][w-wt[i-1]], K[i-1][w])
            else:
                K[i][w] = K[i-1][w]
    return K[n][W]

# मुख्य
val = [50, 100, 150, 200]
wt = [8, 16, 32, 40]
W = 64
n = len(val)
print(knapSack(W, wt, val, n))

आउटपुट

350

निष्कर्ष

इस लेख में हमने 0-1 नैपसैक समस्या के पायथन प्रोग्राम के बारे में सीखा।

  1. पायथन प्रोग्राम: कंपाउंड इंटरेस्ट पायथन प्रोग्राम: कंपाउंड इंटरेस्ट

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट – हमें तीन इनपुट वैल्यूज़ दी गई हैं यानी प्रिंसिपल, रेट और टाइम और हमें कंपाउंड इंटरेस्ट की गणना करने की आवश्यकता है। नीचे दिया गया कोड कंपाउंड इंटरेस्ट की गणना की प्रक्रिया दिखाता है।

  1. पायथन प्रोग्राम: साधारण ब्याज की गणना पायथन प्रोग्राम: साधारण ब्याज की गणना

    इस लेख में, हम पायथन 3.x या उससे पहले के संस्करण में साधारण ब्याज की गणना के बारे में जानेंगे।साधारण ब्याज की गणना दैनिक ब्याज दर को मूल राशि से गुणा करके और फिर भुगतानों के बीच बीते दिनों की संख्या से गुणा करके की जाती है।गणितीय रूप से,Simple Interest = (P x T x R) / 100जहां, P मूल राशि हैT समय है

  1. पायथन प्रोग्राम: सिलेक्शन सॉर्ट एल्गोरिदम पायथन प्रोग्राम: सिलेक्शन सॉर्ट एल्गोरिदम

    इस लेख में, हम पायथन 3.x या उससे पहले के संस्करण में सिलेक्शन सॉर्ट और इसके कार्यान्वयन के बारे में जानेंगे।सिलेक्शन सॉर्ट एल्गोरिदम में, एक सरणी को अनसॉर्टेड भाग से न्यूनतम तत्व को पुनरावर्ती रूप से ढूंढकर और इसे शुरुआत में डालकर सॉर्ट किया जाता है। दिए गए सरणी पर सिलेक्शन सॉर्ट के निष्पादन के दौरा