gpt4 book ai didi

php - 足球联赛调度算法(同步主/客)

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:25:46 27 4
gpt4 key购买 nike

我正在制作一个自动足球联赛生成器,但在进度上遇到了困难。我有一个生成所有内容的算法,但不是时间表。看一看:

[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 场蓝色巡回赛。在第二轮中,它必须以红色进行 5 次巡回赛,以蓝色进行 4 次巡回赛。

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

最佳答案

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

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

固定数字 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

第三轮是

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

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

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

关于php - 足球联赛调度算法(同步主/客),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14784286/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com