在之前的一次演讲中,我们被告知使用贪婪的方法来解决变更问题并不总是有效。
这方面的一个例子如下:
我们希望到达n = 14
,我们有三个不同价值的硬币:d1 = 1
,d2 = 7
,d3 = 10
。
使用贪婪的方法,这将导致我们10 + 1 + 1 + 1 + 1
(5个硬币)。
据说动态问题方法可以准确地解决这个问题。我尝试了它,但它又回到了5。
假设F持有赚取金额所需的硬币数量
F[14] = min {F[14 – 1] , F[14 – 7], F[14 – 10]} + 1
= F[14 – 10] + 1 = 4 + 1 = 5
这再次显示我们需要5个硬币,这可以通过使用2个硬币(7 + 7)清楚地完成。
是什么给出的?感谢。
答案 0 :(得分:1)
如果情况并非如此,您认为min {F[14 – 1] , F[14 – 7], F[14 – 10]}=F[14-10]
。最小值实际为F[14-7]=1
,因此最佳值为2