我正在寻找一种在帐户之间转移资金的最佳方法,以确保每个人的帐户金额都相同。我已经正确计算了每个帐户应产生的数字,但我正在寻找一种算法,确定谁应该向谁转移以及多少资金(没有中央银行),以便每个人都拥有相同的余额。
+--------+---------+
| person | balance |
+--------+---------+
| A | 7 500 |
| B | -2 500 |
| C | -10 000 |
| D | 15 000 |
+--------+---------+
在此示例中,每个人的结余应为o 2500。要实现这一目标:
总结一下我拥有的数据是:
有什么算法吗?那是一个NP完全问题吗?
答案 0 :(得分:0)
此问题很难解决。它基本上等效于this other problem:
给定一组人和一定数量的贷方和借方,找到这些人之间结清所有贷方和借方的最小转账数。
在这里,您的目标是使每个人的总数等于平均值,一旦从每个人的帐户中减去了平均总数,这基本上就是上述问题。