想象一个有 6 个小组和每组 4 个团队的锦标赛。每组的 2 支队伍(从现在起称为“发起人”)进入淘汰阶段(锦标赛树/括号阶段......)。现在有 6 组,每组有 2 个进程,总进程数为 12。因为 12 不是 2 的幂,所以我们需要更多的团队,进入这个状态。这些额外的参赛者(从现在开始称为“幸运失败者”)是所有组中最好的 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组第2对战C组第2而不是B组。但是如果我们得到这个信息,我是否总是需要跳过第1组,或者第1组第2对阵( n/2) 组。考虑到这场比赛,下一场比赛是D组的第1对先前跳过的B组或随后的E组或F组的第3。(如果有更多组,是否继续G,H,...? )。在这一点上,我不能再用 n, m ... 来表达它了。
我没有截断特定的代码,因为我仍然无法弄清楚如何迭代它的方法。首先,您跳过一个组(不知道是否总是一组或取决于组的数量)并且第 m 名的球队与另一组的第 1 队比赛。然后是前面没有提到的组的幸运失败者。我想不出一个合适的结构或任何相似之处。
也许有人知道如何使用未定义数量的组、执行者和幸运失败者创建这种播种的方法,同时考虑到根本没有任何幸运失败者。当然它只需要工作,如果总执行者 + 幸运失败者的数量是 2 的幂,那么可以创建一棵合适的树。