Math 如何找到n美分的邮资可以由4美分、6美分、10美分支付的方法?
比如说, n=4(4x1)1路 n=10(4x1,6x1)(10x1)2路Math 如何找到n美分的邮资可以由4美分、6美分、10美分支付的方法?,math,recurrence,Math,Recurrence,比如说, n=4(4x1)1路 n=10(4x1,6x1)(10x1)2路 是否有任何方程式可以表示路径数?您使用了递归关系标记-是的,可以使用递归来计算路径数 P(N) = P(N-10) + P(N-6) + P(N-4) P(0) = 1 说明-您可以使用(N-10)美分的总和和10美分的硬币等获得总和N。 对于相当大的N值,递归算法的工作时间太长,因此可以构建动态规划算法来加速计算(DP将重复使用计算值进行较小的求和)假设您有一个面额列表。在您的例子中,它是A=[4,6,10]。因此,
是否有任何方程式可以表示路径数?您使用了
递归关系标记-是的,可以使用递归来计算路径数
P(N) = P(N-10) + P(N-6) + P(N-4)
P(0) = 1
说明-您可以使用(N-10)美分的总和和10美分的硬币等获得总和N。
对于相当大的N值,递归算法的工作时间太长,因此可以构建动态规划算法来加速计算(DP将重复使用计算值进行较小的求和)假设您有一个面额列表。在您的例子中,它是A=[4,6,10]。因此,假设您有以下内容:
A = [4,6,10]
Length of list A = N
Sum = K
问题可以写为:
# Given the list of denominations, its length and the sum.
P(A,N,K) = 0 if N < 0 or K < 0,
1 if K = 0,
P(A,N-1,K) + P(A,N-1,k-A[N]) #A[N]-> Nth element of list
#给定面额列表、长度和总和。
如果N<0或K<0,P(A,N,K)=0,
1如果K=0,
P(A,N-1,K)+P(A,N-1,K-A[N])#A[N]>list的第N个元素
正如我们可以看到重复使用子问题的可能性一样,DP将非常有效。我投票结束这个问题,因为它与编程或软件开发无关。