【发布时间】:2013-02-09 02:22:47
【问题描述】:
我正在制作一个自动足球联赛生成器,但未能如期进行。 我有一个生成所有内容的算法,但没有时间表。看看:
[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 个团队,算法也必须有效。
【问题讨论】:
-
我觉得,您的规则约束(一侧的一个团队(蓝色或红色)最多可以玩 2 次;)无法为无限数量的团队生成时间表
-
感谢您的回答。这一定是可能的。看看真正的足球联赛,例如英超联赛。连续的一方不超过 2 场比赛。我知道这有点复杂,工作了 7 个小时,仍然无法得到答案。
-
@eicto 只提出关于无限数的问题。还应该注意的是,您所比较的足球联赛可能拥有一半的球队。更多团队 = 计算时间更长。
-
@MC 如果无法获得银河冠军,那么制造这样的发电机是浪费时间:)
-
@eicto:没错,但他们可能有大量的量子计算机可以使用...... :)
标签: php algorithm schedule sports-league-scheduling-problem