0
我已经想了很长时间了,但无法弄清楚。我正在寻找一种算法(用任何语言)按照以下2条规则对一群人进行分组:通过两个因素对人进行分组的算法
- 按照数字表示的升序技能水平进行分组(技能越高)。在可能的情况下,团队中最好和最弱的人差不应超过1分。
- 尽可能传播来自同一国家的人,即不要将来自同一国家的人放在同一组中,同时不要违反上述规则1。一个小组不应该由来自一个国家的人组成,如果可能的话。
每组最多可以有4人(如果可能)或3人例如如果有18人,然后将它们分成3个组,每组4和2组的3
样本数据(随后国家技能等级):
- 5 US
- 5 US
- 5美国
- 5美国
- 6 GB
- 6 GB
- 6 GB
- 7 CN
- 7 CN
- 7 CN
- 7 CN
- 7 HK
- 8 US
- 8 US
- 8 US
- 8 CA
- 8 CN
- 8 CN 如果你有任何想法
..to分为4S的2groups和3S
请帮助2groups? 谢谢你
谢谢Gordon的建议。技能水平最多可以相差一个点,同时我们希望避免将来自1个国家的人组合成一个团体(因此您拥有不同的国家)。你如何确定排名? – smn