Algorithm 硬币兑换:贪婪的方法

Algorithm 硬币兑换:贪婪的方法,algorithm,dynamic-programming,greedy,Algorithm,Dynamic Programming,Greedy,问题是用四分之一硬币、一角硬币、五分镍币和一分钱换n美分,并且使用的硬币总数最少。在四种面额分别为四角五分、一角、五分和一分的特殊情况下,我们有c1=25、c2=10、c3=5和c4=1 如果我们只有四分之一硬币、一角硬币和一分钱(没有镍币)可以使用, 贪婪算法将使用六枚硬币兑换30美分,即四分之一和五便士,而我们可以使用三枚硬币,即三个一角硬币 给定一组面额,我们如何判断贪婪方法是否创造了最佳解决方案?您要问的是如何确定给定的硬币系统是否是变革决策问题的标准。如果贪婪算法总是给出最优解,则系统

问题是用四分之一硬币、一角硬币、五分镍币和一分钱换n美分,并且使用的硬币总数最少。在四种面额分别为四角五分、一角、五分和一分的特殊情况下,我们有c1=25、c2=10、c3=5和c4=1

如果我们只有四分之一硬币、一角硬币和一分钱(没有镍币)可以使用, 贪婪算法将使用六枚硬币兑换30美分,即四分之一和五便士,而我们可以使用三枚硬币,即三个一角硬币


给定一组面额,我们如何判断贪婪方法是否创造了最佳解决方案?

您要问的是如何确定给定的硬币系统是否是变革决策问题的标准。如果贪婪算法总是给出最优解,则系统是正则的。你可以在有限的步骤中决定一个包含1分硬币的硬币系统是否是标准的。有关详细信息以及某些情况下更有效的算法,请参见。

您是否在询问如何解决此问题?这里有一个简单的动态规划解决方案。@AmiTavory我在读Rosen的《离散数学及其应用》,他在书中引用了这个例子。甚至我也认为这个问题类似于背包问题,并对贪婪的解决方案感到惊讶,但是(至少)我不明白你到底在问什么。也许你可以修改一下你的问题。@AmiTavory他要求的是一个充分条件,如果给定的话,贪婪的硬币兑换方法是最优的。啊,我被“它是适合这个问题的贪婪方法”抛弃了一点。由于某种原因(可能是其他人(您?)正在编辑该问题),无法编辑该问题。