如何找到4美分,6美分,10美分的邮资数量?

时间:2016-10-26 04:33:05

标签: math recurrence

例如,

n = 4(4x1)1路

n = 10(4x1,6x1)(10x1)2路

有没有方程可以表达方式的数量?

2 个答案:

答案 0 :(得分:0)

您使用了recurrence-relation标记 - 是的,可以使用重复计算方式的数量。

P(N) = P(N-10) + P(N-6) + P(N-4)
P(0) = 1

说明 - 您可以使用(N-10)美分和10美分硬币获得总和N,等等。 对于相当大的N递归算法值将会工作太长时间,因此可以构建动态编程算法来加速计算(DP将重用较小总和的计算值)

答案 1 :(得分:0)

假设您有一个面额列表。在你的情况下,它是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

正如我们可以看到重新使用子问题的可能性,DP将会非常有效。