1

我正在制作一个自动足球联赛生成器并按计划进行。我有一个生成所有内容的算法,但没有时间表。看一看:

[tour-id] => Array
    (
        [playing-day] => 2013-03-07
        [tour (tour-id+1)] => 9
        [game-id] => Array
            (
                [blue team-id] => 13
                [red team-id] => 10
            )

例如:

[8] => Array
    (
        [playday] => 2013-03-07
        [tour] => 9
        [0] => Array
            (
                [blue] => 13
                [red] => 10
            )

        [1] => Array
            (
                [red] => 15
                [blue] => 12
            )

        [2] => Array
            (
                [blue] => 6
                [red] => 11
            )

现在,当我获得所有这些数据时,我可以只用很少的数据foreach()来获取我需要的东西。但是 - 我想要的是将团队正常放入红色和蓝色团队。

我是说:

  • 一侧的一支队伍(蓝队或红队)最多可打 2 次;
  • 一轮中的一支球队必须$totalTours/2在一轮中进行比赛。

例如,如果有 9 支球队,在第一轮中,一支球队必须参加 4 场红色巡回赛(总共,不是连续)和 5 场蓝色巡回赛。在第 2 轮中,它必须进行 5 次红色巡回赛,4 次蓝色巡回赛。

即使有 100 个团队,该算法也必须有效。

4

2 回答 2

1

要构建一组固定装置,您需要每支球队精确地互相比赛一次。

一个不错的方法是围绕单个固定元素“旋转”元素。

固定数字 1,我们需要

第一轮将是

 1 2 3 4 5 
 v v v v v
10 9 8 7 6

第二轮将是

 1 10 2 3 4
 v  v v v v 
 9  8 7 6 5

第3轮将是

 1 9 10 2 3
 v v  v v v 
 8 7  6 5 4

依此类推,直到数字一直旋转。

我使用这种方法在 JavaScript 中构建了一组固定装置: https ://jsfiddle.net/jonwinstanley/9dfLm8nq/97/

于 2021-08-31T22:37:07.747 回答
0

我认为您应该检查循环赛-算法。通过这种方式,您可以轻松地安排您的比赛,并且该地点将成为可选的。到达时间后,您可以设置位置homeaway

于 2013-11-07T16:57:11.040 回答