我正在制作一个HTML/JS驱动的单/双消除支架Web应用程序.我正在努力弄清楚如何从种子队/球员名单中分配第一轮比赛.例如,在8名球员的支架中,第一轮比赛是:
1v8 4v5 2v7 3v6
在更通用的术语中,种子可以被认为是一个数组(因为我通过弹出一个数组来指定团队匹配):1,2,3,4,5,6,7,8
需要分类到:1,8,4,5,2,7,3,6
为了澄清,较高的种子需要在排序的阵列中具有它们之间的最大距离,这使得在没有扰乱的括号中,较低的种子首先被淘汰并且与高种子的匹配尽可能晚地发生.实际上,想想一个网球锦标赛,你想要阻止16或32等支架的前4名球员互相比赛直到半决赛.因此,16种子支架的正确数组输出是:
1,16,8,9,4,13,5,12,2,15,7,10,3,14,6,11
转换为以下第一轮比赛:
1v16 8v9 4v13 5v12 2v15 7v10 3v14 6v11
感谢Matt Ball提供8种子支架的正确算法
我一直在对这个主题进行大量研究,虽然我发现了许多与我类似的问题,但我还没有找到我正在寻找的答案。我正在创建一个种子单淘汰锦标赛支架。这种类型的括号规则规定,最好的两支球队将参加决赛。例如,如果我们有 8 个团队,其中第 1 队最好,第 8 队最差。
如果我们有 8 个团队,它将导致:
第 1 轮 ==========> 第 2 轮 ==========> 第 3 轮 1
队 vs 8
队 4 队 vs 5 队 ==> 1 队 vs 4 队 ==> 1 队 vs 队团队 2
团队 3 对团队 6 ==> 团队 3 对团队 2
团队 2 对团队 7
请注意第 1 轮中的团队顺序,因为我的问题将围绕正确的团队顺序展开。您将看到团队 1 位于顶部,团队 2 位于底部。
现在我想出了一个简单的函数,它可以在第 1 轮中配对团队以产生正确的对决:
//Bracket Structure represents the order of teams in which they should be …
Run Code Online (Sandbox Code Playgroud)