এই নিবন্ধে, আমরা নীচে দেওয়া সমস্যার বিবৃতিটির সমাধান সম্পর্কে জানব৷
সমস্যা বিবৃতি − আমাদের 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

সমস্ত ভেরিয়েবল স্থানীয় সুযোগে ঘোষণা করা হয়েছে এবং তাদের উল্লেখ উপরের চিত্রে দেখা যাচ্ছে।
উপসংহার
এই নিবন্ধে, আমরা শিখেছি কিভাবে আমরা একটি রড কাটার জন্য একটি পাইথন প্রোগ্রাম তৈরি করতে পারি।