以前就碰到过找零钱问题,寻找最优解有时候可以用贪心(保证得到最优解),有时候又不能,只好用动规(0-1背包,NP)。当时我就在想,满足什么条件的硬币系统,可以保证,贪心解一定是最优解呢?找到了这个问题的答案,最不济也能帮助我们设计一套“简洁高效”的货币系统啊~
当时想推导一下,苦于没有好的思路。今天无意间看到有人贴了几篇论文,才知道这个问题还是很艰深复杂的,至今都很难用简单的几个条件就构造出一个系统,特别是当需要的硬币种类很多的时候。
举两个论文代表一下最近几年,找零钱问题的研究成果:
- Pearson, David. "A polynomial-time algorithm for the change-making problem."Operations Research Letters 33.3 (2005): 231-234.