对一组价格种类不同的商品进行平均分配的问题
我现在在设计一个程序,是对一组价格不同的商品进行平均分配的问题,要求每个人所分配的商品价格总数和商品个数相差不超过指定的范围。
比如说现在有一组商品(数量比较大):
白菜:1元
萝卜:1.5元
芹菜:2元
苹果:3元
西瓜:2元
以上商品对2个人平分,要求2个人的个数和所分的商品总价差不多,
如分成:张三(白菜,萝卜,芹菜) = 4.5,
李四(苹果,西瓜) = 5.
再如分成3份:张三(白菜,芹菜) = 3
李四(萝卜,西瓜) = 3.5
王五(苹果) = 3
个数相差不超过10个,金额相差不超过5000即可.
请各位大大帮忙!
对于我的而言在数量上平均分问题不大,因为总数和需要分的几个人都已确定,但是在于分给每个人的商品价格加起来总价必须差不多。
对于问题补充下:每个商品的价格基本都不一样,就相当于白菜,萝卜只会出现一次,每种种类不同,价格不同的商品只会出现一次!
[解决办法]
可是如果极端一点
就2个东西
电视机:10000
电灯泡:10
怎么都不可能均分的
[解决办法]
可以这样,先把商品按价格从大到小排序,第一轮先从最贵的商品中每人分配一个,从第二轮开始,先找出最穷的那个人,把余下最贵的那个分配给他,以此类推,循环直到分配完成。
[解决办法]