এই নিবন্ধে, আমরা নীচে দেওয়া সমস্যার বিবৃতিটির সমাধান সম্পর্কে জানব৷
সমস্যা বিবৃতি − আমাদেরকে N কয়েন দেওয়া হয়েছে এবং আমরা সেই কয়েনগুলির পরিবর্তন করতে চাই যাতে, S-তে প্রতিটি মানের একটি অসীম সরবরাহ থাকে। অর্ডার নির্বিশেষে আমরা কত উপায়ে পরিবর্তন করতে পারি তা আমাদের প্রদর্শন করতে হবে। পি>
আমরা সময় জটিলতা কমাতে সমস্যা বিবৃতি সমাধান করতে ডায়নামিক প্রোগ্রামিং ধারণা ব্যবহার করব।
এখন নিচের বাস্তবায়নে সমাধানটি পর্যবেক্ষণ করা যাক -
উদাহরণ
# dynamic approach def count(S, m, n): # base case table = [[0 for x in range(m)] for x in range(n+1)] # for n=0 for i in range(m): table[0][i] = 1 # rest values are filled in bottom up manner for i in range(1, n+1): for j in range(m): # solutions including S[j] x = table[i - S[j]][j] if i-S[j] >= 0 else 0 # solutions excluding S[j] y = table[i][j-1] if j >= 1 else 0 # total table[i][j] = x + y return table[n][m-1] # main arr = [1, 3, 2, 4] m = len(arr) n = 5 print(“Number of coins:”,end=””) print(count(arr, m, n))
আউটপুট
Number of coins:6
সমস্ত ভেরিয়েবল স্থানীয় সুযোগে ঘোষণা করা হয়েছে এবং তাদের উল্লেখ উপরের চিত্রে দেখা যাচ্ছে।
উপসংহার
এই নিবন্ধে, আমরা শিখেছি কিভাবে আমরা মুদ্রা পরিবর্তনের জন্য একটি পাইথন প্রোগ্রাম তৈরি করতে পারি