确定组中最低付款额的算法

确定组中最低付款额的算法,第1张

确定组中最低付款额算法

仅弄清楚接收者和给予者是不够的。虽然我认为这种策略是正确的,但它也无法确保找到最低付款额的算法。

例如,

  • 人欠25
  • 人欠50
  • 人欠75
  • 欠人D 100
  • 欠人50

很明显,这可以用3次付款完成(A和C到D,B到E)。我想不出一个能满足所有问题集的高效算法。

更好的例子

  • 人欠10
  • 人欠49
  • 人欠50
  • 人欠65
  • 欠人E 75
  • 欠F人99

如果我们采用让D付给F的贪婪方法,我们将得到次优解而不是最优解(A&D到E,B&C到F)。

这个问题与Bin
Packing
问题有很多相似之处,而Bin
Packing问题
已被证明是NP难的。唯一的区别是我们有多个大小不同的纸箱,而且条件是所有纸箱中的总空间等于所有物品的总大小。这使我相信该问题可能是NP难题,但加上更多的限制,有可能在多项式时间内解决。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5016631.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存