इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे।
समस्या कथन
हमें N सिक्के दिए गए हैं और हम उन सिक्कों का परिवर्तन करना चाहते हैं ताकि S में प्रत्येक मूल्य की अनंत आपूर्ति हो। हमें प्रदर्शित करना है कि हम कितने तरीकों से क्रम की परवाह किए बिना परिवर्तन कर सकते हैं।
हम समय जटिलता को कम करने के लिए समस्या कथन को हल करने के लिए डायनामिक प्रोग्रामिंग की अवधारणा का उपयोग करेंगे।
उदाहरण
# डायनामिक दृष्टिकोण
def count(S, m, n):
# आधार मामला
table = [[0 for x in range(m)] for x in range(n+1)]
# n=0 के लिए
for i in range(m):
table[0][i] = 1
# शेष मान बॉटम-अप तरीके से भरे जाते हैं
for i in range(1, n+1):
for j in range(m):
# S[j] सहित समाधान
x = table[i - S[j]][j] if i-S[j] >= 0 else 0
# S[j] को छोड़कर समाधान
y = table[i][j-1] if j >= 1 else 0
# कुल
table[i][j] = x + y
return table[n][m-1]
# मुख्य
arr = [1, 3, 2, 4]
m = len(arr)
n = 5
print("Number of coins:", end="")
print(count(arr, m, n))
आउटपुट
Number of coins: 6
निष्कर्ष
इस लेख में हमने सिक्का परिवर्तन के पायथन प्रोग्राम के बारे में सीखा।