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

पायथन में क्षमता के भीतर अलग-अलग आइटम लेकर प्राप्त की जा सकने वाली अधिकतम राशि खोजने का प्रोग्राम


मान लीजिए हमारे पास weights और values नामक दो सूचियां हैं जो समान लंबाई की हैं और एक अन्य संख्या capacity जिसे k कहते हैं। यहां weights[i] और values[i] iवें आइटम का वजन और मूल्य दिखाते हैं। अब, हम अधिकतम k क्षमता का वजन ले सकते हैं, और हम प्रत्येक आइटम की अधिकतम एक प्रति ले सकते हैं। हमें प्राप्त होने वाले मूल्य की अधिकतम राशि ढूंढनी है।

उदाहरण के लिए, यदि इनपुट है weights = [2, 3, 4], values = [2, 6, 4], capacity = 6, तो आउटपुट होगा 8।

हल करने के चरण

  • n := weights का आकार।
  • dp := आकार capacity x n का मैट्रिक्स, 0 से भरा हुआ।
  • i को 0 से n तक:
    • j को 0 से capacity तक:
      • यदि i == 0 या j == 0, तो dp[i][j] := 0।
      • अन्यथा जब weights[i-1] <= j, तो dp[i][j] = max(dp[i-1][j-weights[i-1]] + values[i-1], dp[i-1][j])।
      • अन्यथा, dp[i][j] := dp[i-1][j]।
  • dp[n][capacity] लौटाएं।

उदाहरण

class Solution:
    def solve(self, weights, values, capacity):
        n = len(weights)
        dp = [[0 for i in range(capacity+1)] for _ in range(n+1)]
        for i in range(n+1):
            for j in range(capacity+1):
                if i == 0 or j == 0:
                    dp[i][j] = 0
                elif weights[i-1] <= j:
                    dp[i][j] = max(dp[i-1][j-weights[i-1]] + values[i-1], dp[i-1][j])
                else:
                    dp[i][j] = dp[i-1][j]
        return dp[n][capacity]

ob = Solution()
weights = [2, 3, 4]
values = [2, 6, 4]
capacity = 6
print(ob.solve(weights, values, capacity))

इनपुट

[2, 3, 4], [2, 6, 4], 6

आउटपुट

8
  1. - पायथन में स्टॉक मार्केट में एक बार खरीद-बिक्री करके प्राप्त अधिकतम लाभ खोजने का प्रोग्राम

    मान लीजिए हमारे पास prices नामक सूची है जो किसी कंपनी के स्टॉक की कीमतों को कालानुक्रमिक क्रम में दर्शाती है। हमें उस अधिकतम लाभ को ढूंढना है जो हम उस स्टॉक को केवल एक बार खरीद और बेचकर कमा सकते थे। हमें ध्यान रखना होगा कि हम बेचने से पहले खरीदना होगा। उदाहरण के लिए, यदि इनपुट है prices = [10, 12,

  1. - Python प्रोग्राम से डिक्शनरी में सभी आइटम का योग खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक डिक्शनरी दी गई है, और हमें डिक्शनरी में 3 उच्चतम मान प्रिंट करने की आवश्यकता है। समस्या कथन के लिए तीन दृष्टिकोण नीचे दिए गए हैं: दृष्टिकोण 1 - डिक्शनरी पुनरावृत्ति से योग की गणना करना उदाहरण # sum फ़ंक्शन d

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

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