体育联盟调度算法

时间:2011-09-07 03:08:41

标签: java algorithm

我正在为排球建立一个小型网站(个人兴趣)。赞赏用于安排游戏的算法的帮助

  1. 它适用于任意数量的团队和团队。每组内循环。因此,如果一个小组中有6个小组,则该特定小组中总共将有15个小组。
  2. 游戏持续30分钟
  3. 时间表均匀分布,即团队不需要连续出场
  4. 每支球队都以大致相等的分布区间进行比赛,即一支球队不应该在上午8点进行第一场比赛,并等到接下来的两场比赛晚上
  5. 我们可以安排从上午8点到下午4点开始的游戏。
  6. 6支球队就是一个例子。我正在寻找适用于任意数量的团队,法院和团体的通用算法。

    的问候。

2 个答案:

答案 0 :(得分:1)

我不确定这需要算法。由于它是循环赛,有固定数量的球队和比赛,你可以真正设定一个赛程表(在两个球场上都是一样的)。

让我解释并告诉我你是否还需要更多东西。

将有15场比赛,每支球队互相比赛,所以每支球队都有5场比赛。您可以通过玩5组3场比赛来运行锦标赛,每组每场比赛一次。

示例:

1-2
3-4
5-6

1-3
2-5
4-6

3-5
1-4
2-6

1-5
2-4
3-6

4-5
1-6
2-3

游戏之间任何团队可能的最长间隔是4个插槽(2小时)。 没有球队会连续两场比赛。只需插入团队名称即可。

总播放时间为7.5小时,恰好适合您上午8点至下午4点的窗口。

注意:我只是快速将它们放在一起。有可能对事物进行重新排序,使得最长间隔实际上是3场比赛,而不是4场而不牺牲无连续比赛规则。目前,只有一个团队进入最大间隔(第3组和第4组之间的团队3)。如果这很重要,那值得研究,但实际上,我认为这样会很好。

答案 1 :(得分:1)

最简单的夹具形式是使用berger表。查看此页面上的计算http://en.wikipedia.org/wiki/Round-robin_tournament

如果你想省下自己的努力,你可以尝试http://www.fixionline.com为你完成所有努力工作。它还与您的网站集成,以显示比赛时间,阶梯和结果。