有 n 个团队、m 个组、k 个胜者和幸运失败者的锦标赛树播种

Tournament Tree seeding with n Teams, m Groups, k Proceeder and Lucky loser

想象一场比赛有 6 个小组,每组 4 个团队。每组的 2 支队伍(从现在起称为 "proceeder")进入淘汰阶段(锦标赛树/分组阶段...)。现在有 6 个组,每个组有 2 个 proceeder,proceeder 的总数是 12。因为 12 不是 2 的幂,我们需要更多的团队,进入这个状态。这些额外的前锋(从现在起称为 "lucky loser")是所有组中排名第三的 4 支最佳队伍。

您可以在 EC 2016(法国)游戏计划中看到此设置。 https://www.fussball-em-2016.com/wp-content/uploads/2016/01/em-2016-spielplan.jpg

打完最后的小组赛表就可以看出,16强谁对谁了,问题来了。是否有针对 n 个组、m 个获胜者和 k 个幸运失败者的特定种子。 如果我尝试总结给定的示例,它会以某种方式如下。

组 n-(n+1) 的第 m 个进行者(没有幸运失败者)与组 n-(n+1) 的第 m 个进行者(没有幸运失败者)。但这是为什么呢。为什么 A 组的第二名与 C 组的第二名而不是 B 组的比赛。但是如果我们获取该信息,我是否总是需要跳过 1 组,或者第一组的第二名是否与( n/2)第组。 考虑到这场比赛,下一场比赛是 D 组的第 1 名 vs 先前跳过的 B 组的第 3 名或以下 E 或 F 组。 ).到这里就不能再用n,m ...来表达了

我没有截取特定的代码,因为我仍然想不出如何迭代它的方法。首先,您跳过一个组(不知道是否总是 1 个组或取决于组数),第 m 名的球队与另一组的第一支球队比赛。然后是之前未提及的组中的幸运失败者。我想不出合适的结构或任何相似之处。

也许有人知道如何使用未定义数量的组、获胜者和幸运失败者创建这种种子,同时考虑到根本没有任何幸运失败者。当然只需要起作用,如果总的proceeder + lucky losers的数量是2的幂,那么就可以创建一棵合适的树。

我不确定你撞墙的具体位置。如果您查看 actual plan for the Euro 2016,您可能会发现它相对简单。我无法完全匹配,但得到这样的东西似乎并不难。

由于您没有对最终的比赛提供任何明确的限制,我假设第一轮淘汰赛的规则是:

  • 一个组的获胜者不应与另一组的获胜者进行比赛(只能与第二名或第三名比赛)
  • 同组的两支球队不得相互匹配。

首先要注意的是m,幸运失败者的数量必须是偶数。每组提供2名直接获胜者,总人数也为偶数。现在让我们将 n,组的总数,分成区域:

1. 最后 n-m 组。这是更简单(更传统的部分):这些组的获胜者永远不会与幸运的失败者一起玩。如果 n-m 是偶数,您可以将它们分成两对并玩交叉游戏(1A 对 2B 和 1B 对 2A)。如果是奇数,最简单的解决方案是轮换 1 场比赛(1A 对 2B,1B 对 2C,... 1Z 对 2A)。

2.m 组。在这些小组中,我们说所有第一名都会和一些幸运的松手一起玩,所有第二名都会自己玩。所以我们现在想要的是一种不会让同一组的胜者和幸运者再次配对的方案。

让我们假设所有幸运失败者都来自前 m 组。如果这不一样,则将来自这些组的那些留在他们的组中,并以递增的顺序用另一组的幸运失败者填补空白。例如,假设有 m = 4 并且实际幸运失败者来自 B、C、E 和 F 组。那么 B 和 C 留在他们的组中,3A 组的空缺由 3E 填补,空缺在 3D 乘以 3F 的组中,得到的顺序是 3E、3B、3C、3F。此规则是确保同一组的球队不会再次匹配的简单方法:我们只是不匹配来自同一(重新分配)组的球队,这就是我们所需要的。

由于m是偶数,我们可以将所有组分成两对。我们从每一对中构建 3 个游戏:

  • 1A 对 3B
  • 1B 对 3A
  • 2A 对 2B

这可能会在下一轮中提供有点倾斜的分布。如果你以两种不同的方式将小组分成两对,你可以改进这一点。例如,一种方法是加入 #i#(i+1) 组,另一种方法是加入 #i#(i+m/2) 组。然后你从一对建立第 1 对第 3 个比赛,从另一个配对建立第 2 个对第 2 个比赛。

要完成 2016 年欧洲杯的例子,它会是这样的:

1. n-m = 2 所以最后两组是EF。所以下一阶段是1E vs 2F和1F vs 2E。

2a. 第一对 (#i vs #(i+1)) 是 A 和 B,C 和 D。它给我们匹配 2A vs 2B 和 2C与 2D

2b. 第二对(#i vs #(i+m/2))是A配C,B配D。实际输家是3B,3C, 3E、3F 所以根据算法我们把它们分别为 3E、3B、3C、3F。这给了我们 4 场比赛 1A 对 3C、3E(重新分配给 3A)对 1C、1B 对 3F(重新分配给 3D)、3B 对 1D。

总结所有匹配项是

  • 1E 与 2F
  • 1F 对 2E
  • 2A 对 2B
  • 2C 与 2D
  • 1A 与 3C
  • 3E 对 1C
  • 1B 与 3F
  • 3B 与 1D

我觉得这还不错。

显然你还可以重新安排游戏,以满足下一轮的更多限制。例如,1E vs 2F 和 1F vs 2E 的获胜者应该在下一轮再次对决还是直到决赛才相遇? AFAIK 这两种选择都已在实践中使用,因为它们各有利弊。将他们相互匹配的明显缺点是这对观众来说很无聊并且有点不公平(如果两支最好的球队分在同一组,他们就不能获得第一名和第二名)。不明显的好处是,在现实生活中,比赛之间的休息时间很重要,这样的比赛在这方面提供了更公平的时间表。