algorithm - 将元素均匀分布到桶中

标签 algorithm sorting distribution

我正在处理一个问题,我有 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 .

r1r9B1 , r2r8B2 , r3r7B3 .
同样,输入 b1b9B1 , b2b8B2 , b3b7B3 .

现在,我们剩下 r4 , r5 , r6b4 , b5 , b6 .

r4b6B1 , r5b5B2 , r6b4B3 .

关于algorithm - 将元素均匀分布到桶中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38028202/

相关文章:

Java选择布局

ios - 我可以通过 99 美元的发布者帐户 OTA 共享 ipa 文件而不收集 UDID

java - 计算程序运行时间?

python - 递归调用问题后输出为空

algorithm - 确定比较和交换指令列表是否会对长度为 N 的列表进行排序

java - 在 java 中对 ArrayList<Integer> 的数组进行排序

perl - perl中的随机二项分布数据集

string - 给定长度 L 找到仅由 as & bs >= L 组成的最短字符串,这样添加一些字符(a 或 b)不会产生新的回文

algorithm - 为什么这种等式在 Floyd–Warshall 算法中成立?

c++ - 为什么我们在对自定义对象的 vector 进行排序时在结构定义中包含比较函数?