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

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


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

उदाहरण के लिए, यदि इनपुट ports = [[1, 4], [2], [3], [0, 1], []] shipments = [[1, 4]] है, तो आउटपुट 4 होगा, क्योंकि पथ 1 → 2 → 3 → 0 → 4 से है।

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

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

  • n := ports का आकार
  • dist := ports सूची से आसन्न मैट्रिक्स
  • j को 0 से n तक के लिए, करें
    • i को 0 से n तक के लिए, करें
      • k को 0 से n तक के लिए, करें
        • dist[i, k] = dist[i, k] और dist[i, j] + dist[j, k] में से न्यूनतम
  • [i, j] रूप में सभी शिपमेंट के लिए dist[i,j] की सूची बनाएं जब dist[i,j] अनंत नहीं है
  • जनरेटेड सूची का योग लौटाएं।

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

उदाहरण

class Solution:
    def solve(self, ports, shipments):
        n = len(ports)
        INF = 10 ** 10
        dist = [[INF for _ in range(n)] for _ in range(n)]
        for i in range(n):
            dist[i][i] = 0
        for i in range(n):
            for j in ports[i]:
                dist[i][j] = 1
        for j in range(n):
            for i in range(n):
                for k in range(n):
                    dist[i][k] = min(dist[i][k], dist[i][j] + dist[j][k])
        return sum(dist[i][j] for i, j in shipments if dist[i][j] != INF)

ob = Solution()
ports = [[1, 4], [2], [3], [0, 1], []]
shipments = [[1, 4]]
print(ob.solve(ports, shipments))

इनपुट

[[1, 4], [2], [3], [0, 1], []], [[1, 4]]

आउटपुट

4

  1. पायथन में छड़ी काटने की न्यूनतम लागत ज्ञात करने का प्रोग्राम पायथन में छड़ी काटने की न्यूनतम लागत ज्ञात करने का प्रोग्राम

    मान लीजिए हमारे पास एक मान n और cuts नामक एक सरणी है। मान लीजिए n इकाई लंबाई की एक लकड़ी की छड़ी है। छड़ी 0 से n तक लेबल की गई है। यहां cuts[i] एक स्थिति दर्शाता है जहां हम काट सकते हैं। हमें कटौती क्रम में करनी चाहिए, लेकिन हम कटौती के क्रम को अपनी इच्छानुसार बदल सकते हैं। यहां एक कटौती की लागत का

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

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

  1. पायथन प्रोग्राम: न्यूनतम लागत पथ पायथन प्रोग्राम: न्यूनतम लागत पथ

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक लागत मैट्रिक्स और एक स्थिति (m, n) दी गई है, हमें (0, 0) से (m, n) तक पहुंचने के लिए न्यूनतम लागत पथ की लागत ज्ञात करनी है। प्रत्येक सेल एक सेल से दूसरे सेल तक पार करने की लागत को दर्शाता है। उदाहरण # डायनामिक दृष्टिकोण R =