修改后的变更问题

change-making problems with some modifications

本文关键字:问题 修改      更新时间:2023-10-16

在以下Greedy算法的找零问题中,解决了以下问题:如何用最少的硬币来赚一定数量的钱?

算法:如果可能的话,使用最有价值的硬币。假设我们有无限数量的每一套硬币。

我的教授写道,(4)不是产生最优解,有人会说为什么?(或者为什么其他不是反例?)

1- {1,2,5}
2- {1,4,7}
3-{1,5,10}
4-{1,7,10}

在需要表示14:的情况下,对集合#4中的硬币应用贪婪策略不会产生最佳结果

  • 贪婪策略将尽快花费10枚硬币,最终获得4枚硬币,总共5枚硬币
  • 一个最佳策略是拿两个七分硬币,总共两个硬币

很容易看出,如果存在一个硬币C,使得值k*C可以由至少k+1个硬币组成,如果你取更高面额的硬币中的任何一个,那么贪婪算法将不会成功。

在您的最后一组C=7k=2kC=14中。如果你用10来制作14,你需要五个硬币,比k多。