首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >优化组合算法

优化组合算法
EN

Stack Overflow用户
提问于 2018-06-02 14:50:44
回答 1查看 167关注 0票数 1

一周后我要组织一场比赛。我开始考虑如何在数学上安排团队(这样他们才能真正平衡,从而更有竞争力)。以下是数据:

  • 参加比赛的20名选手
  • 每个玩家都被分配一个技能等级(高数量=熟练)
  • 4支每队5人的球队(虽然我更喜欢建立一个以这些变量为变量的算法)
  • 我正在用电脑解决这个问题

所以,我有20个球员。我想组建4支队伍,每个队有5名球员。为此,我希望生成所有可能的团队组合的列表。为了评估团队组合,我:

  • 生成团队组合(一场比赛)
  • 根据每支队伍中的队员来总结每支球队的总技术。
  • 将每支球队与对方进行比较,比赛中任何两支球队之间最大的差异就是对那场比赛的“容忍”程度。如果公差级别高于某一上限,则放弃匹配。

我目前的方法是生成一个基X数,即N位长,其中X是我想要的队数,N是球员数。然后将基数X值增加1,我将得到每一个可能的团队组合,并且我可以生成一个具有低容忍值的匹配列表。

这方面的问题,你可能知道,是4支球队有20名球员,即(4-1)^20在基础3,这是1E12比赛通过。(这在我的电脑上花了很长时间)。有没有一种数学方法可以简化这个计算,使之在短时间内可行?

按照目前的方法,还允许球员人数分布不均的可能性,这是可取的。如果不能使用高性能的算法,那么不使用它是可以的。

EN

回答 1

Stack Overflow用户

发布于 2018-06-02 14:58:54

尝试以下方法:

  • 从1队到4队:从剩下的球员中选出最强的球员。
  • 在另一个方向相同:从4到1
  • 再一次从1比4
  • 再一次4比1
  • 在最后一轮中使用随机

当玩家的技能分配得差不多均匀的时候,这是很好的。如果没有,那么团队之间出现更大差异的可能性就会更高。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50658097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档