এই নিবন্ধে, আমরা নীচে দেওয়া সমস্যার বিবৃতিটির সমাধান সম্পর্কে জানব৷
সমস্যা বিবৃতি − আমাদের 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
সমস্ত ভেরিয়েবল স্থানীয় সুযোগে ঘোষণা করা হয়েছে এবং তাদের উল্লেখ উপরের চিত্রে দেখা যাচ্ছে।
উপসংহার
এই নিবন্ধে, আমরা শিখেছি কিভাবে আমরা একটি রড কাটার জন্য একটি পাইথন প্রোগ্রাম তৈরি করতে পারি।