我正在处理一个问题,我有 18 件元素需要分类到 3 个桶中。一半的项目是红色的,一半是蓝色的。每件元素都有特定的尺寸;但是尺寸分布不均匀(即 18、20、24、18、19、26 ...)。我需要一种可以将这些项目分配到 3 个桶中的算法,如下所示:1) 每个桶最终必须包含六个项目。 2) 每个桶最终必须有 3 个红色元素和 3 个蓝色元素。 3)(我正在努力解决的部分)如果您平均每个桶中的六个项目的大小,则它们需要尽可能接近其他桶中项目的平均大小。
我刚刚开始学习编码,并且正在将这个问题作为项目的一部分来解决;然而,几天来我一直在阅读有关排序算法的内容,但我还没有找到任何有助于解决手头问题的解决方案,我感到很困惑。我更愿意自己找到解决方案,但非常感谢朝着正确方向的插入。
谢谢!
最佳答案
这是一个可能的算法:
让排序后的红色项为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
.
关于algorithm - 将元素均匀分布到桶中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38028202/