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

पायथन में सूची तत्वों को बराबर करने के लिए न्यूनतम कुल लागत खोजने का कार्यक्रम

मान लीजिए कि हमारे पास संख्याओं की दो सूचियाँ हैं जिन्हें अंक और लागत कहा जाता है। अब विचार करें, एक ऑपरेशन है जहां हम लागत लागत [i] के लिए संख्या [i] बढ़ा या घटा सकते हैं। हम इनमें से किसी भी संख्या में ऑपरेशन कर सकते हैं, और हम सभी तत्वों को अंकों में बराबर बनाना चाहते हैं। हमें आवश्यक न्यूनतम कुल लागत का पता लगाना होगा।

इसलिए, यदि इनपुट अंकों की तरह है =[3, 2, 4] लागत =[1, 10, 2], तो आउटपुट 5 होगा, जैसे कि हम 1 की लागत के लिए संख्या 3 को 2 में घटा सकते हैं। हम 2 प्रत्येक की लागत पर 4 दो गुना घटा सकते हैं।

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

  • एक फ़ंक्शन हेल्पर() को परिभाषित करें। यह लक्ष्य लेगा

  • कुल:=0

  • प्रत्येक i,n के लिए एन्यूमरेट(अंक) में करें

    • यदि लक्ष्य n के समान नहीं है, तो

      • कुल:=कुल + |n-लक्ष्य| * लागत[i]

  • कुल वापसी

  • मुख्य विधि से, निम्न कार्य करें:

  • निम्न :=0, उच्च :=अधिकतम अंक

  • जबकि निम्न <उच्च गैर-शून्य है, करें

    • मध्य:=(निम्न + उच्च) / 2

    • यदि सहायक (मध्य) <सहायक (मध्य + 1), तो

      • उच्च :=मध्य

    • अन्यथा,

      • कम :=मध्य + 1

  • वापसी सहायक (निम्न)

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

उदाहरण

class Solution:
   def solve(self, nums, costs):
      def helper(target):
         total = 0
         for i,n in enumerate(nums):
            if target != n:
               total += abs(n-target) * costs[i]
         return total
      low,high = 0, max(nums)
      while low < high:
         mid = low + high >> 1
         if helper(mid) < helper (mid+1):
            high = mid
         else:
            low = mid + 1
      return helper(low)
ob = Solution()
nums = [3, 2, 4]
costs = [1, 10, 2]
print(ob.solve(nums, costs))

इनपुट

[3, 2, 4], [1, 10, 2]

आउटपुट

5

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

    मान लीजिए कि हमारे पास बिंदु (x, y) के रूप में कुछ बिंदुओं के साथ बिंदु नामक एक सरणी है। अब दो बिंदुओं (xi, yi) और (xj, yj) को जोड़ने की लागत उनके बीच मैनहट्टन दूरी है, सूत्र है |xi - xj| + |yi - yj|। हमें सभी बिंदुओं को जोड़ने के लिए न्यूनतम लागत का पता लगाना होगा। इसलिए, यदि इनपुट पॉइंट्स की तरह

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

    मान लीजिए कि हमारे पास पोर्ट नामक सूचियों की एक सूची है, जहां पोर्ट [i] उन पोर्ट की सूची का प्रतिनिधित्व करता है जिनसे पोर्ट i जुड़ा हुआ है। हमारे पास शिपमेंट्स नामक सूचियों की एक और सूची भी है जहां अनुक्रम की प्रत्येक सूची [i, j] जो दर्शाती है कि पोर्ट i से पोर्ट j तक शिपमेंट अनुरोध है। और पोर्ट I

  1. सूची में तत्वों का योग खोजने के लिए पायथन कार्यक्रम

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