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

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

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

इसलिए, अगर इनपुट इस तरह है, समय सीमा =[7, 5, 10], क्रेडिट =[8, 7, 10], अवधि =[5, 4, 10], तो आउटपुट 10 होगा।

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

  • नौकरियां:=सूची को क्रमबद्ध करें ज़िप (समय सीमा, अवधि, क्रेडिट)

  • dp() फ़ंक्शन को परिभाषित करें।

    • अगर मैं>=नौकरियों का आकार , तो

    • वापसी 0

  • उत्तर:=डीपी (i + 1, दिन)

  • समय सीमा, अवधि, क्रेडिट:=नौकरियां [i]

  • यदि दिन + अवधि - 1 <=समय सीमा, तो

    • उत्तर:=अधिकतम उत्तर, डीपी (i + 1, दिन + अवधि) + क्रेडिट

  • वापसी उत्तर

  • मुख्य विधि से वापसी dp(0, 0)

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

उदाहरण

class Solution:
   def solve(self, deadlines, credits, durations):
      jobs = sorted(zip(deadlines, durations, credits))
      def dp(i=0, day=0):
         if i >= len(jobs):
            return 0
         ans = dp(i + 1, day)
         deadline, duration, credit = jobs[i]
         if day + duration − 1 <= deadline:
            ans = max(ans, dp(i + 1, day + duration) + credit)
      return ans
return dp()
ob = Solution()
deadlines = [7, 5, 10]
credits = [8, 7, 10]
durations = [5, 4, 10]
print(ob.solve(deadlines, credits, durations))

इनपुट

[7, 5, 10], [8, 7, 10], [5, 4, 10]

आउटपुट

10

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

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

  1. पायथन में मुद्रा आर्बिट्रेज का पता लगाने का कार्यक्रम

    मान लीजिए कि हमारे पास मुद्रा विनिमय दरों की एक एन एक्स एन तालिका है। हमें यह जांचना होगा कि ट्रेडों का कुछ क्रम हम कर सकते हैं या नहीं। अब किसी भी मुद्रा की कुछ राशि A से शुरू करके, हम उस मुद्रा के A से कुछ अधिक राशि प्राप्त कर सकते हैं। कोई लेन-देन लागत नहीं है और हम भिन्नात्मक मात्राओं का व्यापार

  1. पायथन प्रोग्राम में एक मैट्रिक्स के स्थानान्तरण का पता लगाएं

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक मैट्रिक्स दिया गया है, हमें मैट्रिक्स के ट्रांसपोज़ को प्रदर्शित करने की आवश्यकता है। A[i][j] पर मौजूद मान को A[j][i] से बदलकर एक मैट्रिक्स का स्थानान्तरण प्राप्त किया जाता है। आइए अब नीचे दिए गए कार्यान्वय