इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे।
समस्या कथन - हमें लंबाई n की एक छड़ और कीमतों की एक सरणी दी जाती है जिसमें आकार के सभी टुकड़ों की कीमतें होती हैं जो n से छोटी होती हैं। हमें रॉड को काटकर और उसके टुकड़े बेचकर प्राप्त होने वाले अधिकतम मूल्य को निर्धारित करने की आवश्यकता है।
हम समस्या को हल करने के लिए एक गतिशील प्रोग्रामिंग दृष्टिकोण का उपयोग करेंगे।
आइए अब नीचे दिए गए कार्यान्वयन में समाधान देखें-
उदाहरण
# A Dynamic Programming solution for Rod cutting problem INT_MIN = -32767 # cut function def cutRod(price, n): val = [0 for x in range(n + 1)] val[0] = 0 # bottom up manner for i in range(1, n + 1): max_val = INT_MIN for j in range(i): max_val = max(max_val, price[j] + val[i-j-1]) val[i] = max_val return val[n] # main arr = [2, 4, 7, 9, 11, 16, 16, 21] size = len(arr) print("Maximum Obtainable Value is " + str(cutRod(arr, size)))
आउटपुट
Maximum Obtainable Value is 21
सभी चर स्थानीय दायरे में घोषित किए गए हैं और उनके संदर्भ ऊपर दिए गए चित्र में देखे गए हैं।
निष्कर्ष
इस लेख में, हमने सीखा है कि हम एक रॉड काटने के लिए पायथन प्रोग्राम कैसे बना सकते हैं।