我正在解决一个问题,即我需要将18个项目分成3个桶。一半的物品是红色的,一半是蓝色的。每件物品都有特定的尺寸;但是尺寸不均匀分布(即18,20,24,18,19,26 ......)。我需要一种能够将这些项目分配到3个桶中的算法,如下所示:1)每个桶最终必须有6个项目。 2)每个桶必须最多有3个红色项目和3个蓝色项目。 3)(我挣扎的部分)如果你平均每个桶中六个项目的大小,它们需要尽可能接近其他桶中物品的平均大小。
我正在学习编码,并且正在将这个问题作为项目的一部分来处理;但是,我已经阅读了几天排序算法,但是我没有找到任何有助于解决手头问题的解决方案,而且我很难过。我宁愿自己来解决问题,但非常希望能够朝着正确的方向前进。
谢谢!
答案 0 :(得分:1)
这是一种可能的算法:
让排序顺序的红色项目为r1
,r2
,r3
... r9
。
按排序顺序排列蓝色项目为b1
,b2
,b3
... b9
。
让3个存储桶为B1
,B2
,B3
。
将r1
和r9
放入B1
,r2
和r8
B2
,r3
和r7
} B3
同样,将b1
和b9
放入B1
,b2
和b8
放入B2
,b3
和b7
在B3
。
现在,我们留下r4
,r5
,r6
和b4
,b5
,b6
。
将r4
和b6
放入B1
,r5
和b5
B2
,r6
和b4
} B3
。