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

पायथन में क्षमता के भीतर विभिन्न वस्तुओं को लेकर हम अधिकतम राशि प्राप्त करने का कार्यक्रम प्राप्त कर सकते हैं

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

इसलिए, यदि इनपुट वज़न =[2, 3, 4], मान =[2, 6, 4], क्षमता =6 जैसा है, तो आउटपुट 8

होगा।

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

  • n:=वजन का आकार
  • dp:=आकार क्षमता x n का एक मैट्रिक्स, और 0 से भरें
  • मैं के लिए 0 से n की सीमा में, करते हैं
    • जे के लिए 0 से क्षमता तक, करें
      • यदि मैं 0 के समान है या j, 0 के समान है, तो
        • dp[i, j]:=0
      • अन्यथा जब भार[i-1] <=j, तब
        • dp[i,j] =अधिकतम (dp[i-1, j-weights[i - 1]] + value[i-1]) और (dp[i-1, j])
      • अन्यथा,
        • dp[i, j]:=dp[i-1, j]
  • रिटर्न डीपी[एन, क्षमता]

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

उदाहरण

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. पायथन में एक बार शेयर बाजार में खरीदारी करके हम अधिकतम लाभ प्राप्त करने का कार्यक्रम प्राप्त कर सकते हैं

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

  1. शब्दकोश में सभी वस्तुओं का योग खोजने के लिए पायथन प्रोग्राम

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

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

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