Algorithm 尽可能均匀地拆分组
我有n个小组。每组中的项目数为c1、…、cn。我需要将其分成k个大小相等的新组(+/-d%大小偏差),这样我就可以最小化每个新组中旧组的数量,即min[和(每个k中的c)] 你知道怎么做吗?也许是一些标准算法?对不起,我的问题含糊不清。我很乐意回答任何关于细节的问题Algorithm 尽可能均匀地拆分组,algorithm,grouping,Algorithm,Grouping,我有n个小组。每组中的项目数为c1、…、cn。我需要将其分成k个大小相等的新组(+/-d%大小偏差),这样我就可以最小化每个新组中旧组的数量,即min[和(每个k中的c)] 你知道怎么做吗?也许是一些标准算法?对不起,我的问题含糊不清。我很乐意回答任何关于细节的问题 提前谢谢 让总人数为m。如果原始群体的规模大致相同,此简单程序应大致将任何新群体中相同旧群体的最大人数降至最低: 如果m/k是分数,那么一些新组将需要比其他组多1人。设e=m-四舍五入(m/k)*k。将会有更大的新群体,我们将(任
提前谢谢 让总人数为m。如果原始群体的规模大致相同,此简单程序应大致将任何新群体中相同旧群体的最大人数降至最低:
- 如果m/k是分数,那么一些新组将需要比其他组多1人。设e=m-四舍五入(m/k)*k。将会有更大的新群体,我们将(任意)首先选择
- 安排人员,使旧组形成行,并且行“左对齐”。行的顺序以及每行中的人的顺序并不重要
- 从左上角开始,沿着最左边的列,将人员添加到第一个新组中。如果你到了底部,你仍然没有为这个新组选择舍入(m/k)+1人,继续在第二列的顶部,等等。如果你到了一个“洞”(因为这个列位置的行已经在左边的某个地方完成),继续往下走。基本上,这意味着来自同一个旧组(行)的任何两个人进入同一个新组时,会被尽可能地分开。
- 对第一个新组重复此操作
- 对于其余的k-e新组,也可以这样做,但只为每个组选择汇总(m/k)人员