如何创建一种算法,以公平的方式在n个人之间分配货币价值?

时间:2017-01-26 13:35:04

标签: algorithm

我需要创建一种算法,在固定数量的人之间分配不同价值的金钱。钱的数量不能分割。

示例:我有四笔钱:10美元,20美元,50美元和90美元。在两个朋友之间以这样的方式分配这笔钱的最佳方式是什么?它是:值之间的差异是最小的。

对于这种情况,最好的解决方案是: 朋友#1:10美元,20美元和50美元(总计= 80美元)。 朋友#2:90美元。

我怎么能开始?

注意:所有的钱都必须分配。人数可能会有所不同。

我需要用Java实现它。

1 个答案:

答案 0 :(得分:0)

你可以对O(k ^ {2} * MAXSUM ^ {k-1}进行O(k ^ n)或dp的暴力破解。 我认为不可能更快地解决它。 (n是硬币数,k是人数)。