Algorithm 基于两因素的人群分组算法
我想了很久,但还是想不出来。我正在寻找任何语言的算法,根据以下两条规则将一群人分组: 按技能等级升序分组,以数字表示,技能越高,技能越高。在可能的情况下,小组中最好的和最差的不应相差超过1分。 尽可能分散来自同一国家的人员,即不要将来自同一国家的人员放在同一组中,同时不要违反上述规则1。在可能的情况下,团队不应由来自一个国家的人组成。 如果可能,每组最多可以有4人或3人。例如,如果有18人,则将他们分为3组(4人)和2组(3人) 国家/地区的数据技能水平示例: 5美国 5美国 5美国 5美国 6GB 6GB 6GB 7中国 7中国 7中国 7中国 7香港 8美国 8美国 8美国 8 CA 8中国 8中国 ..分为2组4和2组3 如果你有什么想法,请帮忙?Algorithm 基于两因素的人群分组算法,algorithm,Algorithm,我想了很久,但还是想不出来。我正在寻找任何语言的算法,根据以下两条规则将一群人分组: 按技能等级升序分组,以数字表示,技能越高,技能越高。在可能的情况下,小组中最好的和最差的不应相差超过1分。 尽可能分散来自同一国家的人员,即不要将来自同一国家的人员放在同一组中,同时不要违反上述规则1。在可能的情况下,团队不应由来自一个国家的人组成。 如果可能,每组最多可以有4人或3人。例如,如果有18人,则将他们分为3组(4人)和2组(3人) 国家/地区的数据技能水平示例: 5美国 5美国 5美国 5美国 6
提前谢谢你我建议如下 首先,按国家和技能水平汇总数据,使数据看起来更像:
US 5 4
GB 6 3
. . .
首先按最高排名对其进行排序
然后使用贪婪算法
确定组中成员的数量(大小或大小-1)
从排名最高的第一组中选一个。
继续从符合国家条件的后续小组中抽取一个,这样您可能需要跳过美国。
这定义了第一个组
然后重复
这并不能保证是最优的。但是,问题的最优性并没有定义。哪个更重要?国家多样性还是技能相同?感谢戈登的建议。技能水平最多可以相差一点,同时我们希望避免将来自一个国家的人分为一个单一的群体,这样你就有了国家的多样性。你如何确定排名?