比赛配对算法,4人一组循环赛,然后瑞士?

问题描述 投票:0回答:1

我正在寻找瑞士式和循环赛的组合。我们有一个为期 4 周的(排球)锦标赛。 64支球队被分为16个小组,每组4支球队,第一轮根据地域进行。在每个小组中,每支球队都会与所有其他球队进行比赛。在每队第一轮3场比赛之后,我想应用一些瑞士配对来组成新的实力相当的球队组,地理位置不再那么重要。同样,在第二轮和第三轮之后,应使用瑞士语创建新的小组。第四轮结束后,每组公布获胜者。

有这方面的算法吗,特别是瑞士配对部分?

蒂亚

chess round-robin tournament
1个回答
0
投票

瑞士并没有专门的算法,而更多的是一个程序或过程。您的第一轮决定了基本排名。因此,在第 1 轮(以及随后的每一轮)之后,对列表中的所有球队进行排名,然后应用瑞士逻辑,但不是检查 1 个对手,而是检查下 3 个对手。

  • 在这里,我们将瑞士队定义为在随后的几轮比赛中不会有两支球队被分配到同一组,但在每一轮比赛中,球队都会根据技能/能力进行匹配,这样排名靠前的球队只会与其他排名靠前的球队进行比赛。

第二轮:

R2 第 1 组

  • 第 1 组的#1
  • 第 2 组的#1
  • 第 3 组的#1
  • 第 4 组第 1 名

R2 第 2 组

  • 第 5 组第 1 名
  • 第 6 组第 1 名
  • 第 7 组第 1 名
  • 第 8 组第 1 名

R2 第 3 组

  • 第 9 组第 1 名
  • 第 10 组第 1 名
  • 第 11 组第 1 名
  • 第 12 组第 1 名

R2 第 4 组

  • 第 13 组第 1 名
  • 第 14 组第 1 名
  • 第 15 组第 1 名
  • 第 16 组第 1 名

R2 第 5 组

  • 第 1 组的#2
  • 第 2 组的#2
  • 第 3 组的#2
  • 第 4 组的#2

...

R2 第 16 组

  • 第 13 组的#4
  • 第 14 组的#4
  • 第 15 组第 4 名
  • 第 16 组第 4 名

这个硬编码的时间表应该与您应用瑞士程序得到的时间表相同,但是在第 2 轮之后,顶级团队仍然没有见过对方,因此我们仍然可以使用第 1 轮的固定结果,而不是动态分配,并且是保证两支球队没有交手过:

R3 第 1 组

  • R2 第 1 组的#1(仅参加过#1 R1G1-4)
  • R2 第 2 组的#1(仅参加过#1 R1G5-8)
  • R2 第 3 组的#1(仅参加过#1 R1G9-12)
  • R2 第 4 组的#1(仅参加过#1 R1G13-16)

R3 第 2 组

  • R2 第 5 组的#1(仅参加过#2 R1G1-4)
  • R2 第 6 组的#1(仅参加过#2 R1G5-8)
  • R2 第 7 组的#1(仅参加过#2 R1G9-12)
  • R2 第 8 组的#1(仅参加过#2 R1G13-16)

R3 第 2 组

  • R2 第 9 组的#1(仅参加过#3 R1G1-4)
  • R2 第 10 组的#1(仅参加过#3 R1G5-8)
  • R2 第 11 组的#1(仅参加过#3 R1G9-12)
  • R2 第 12 组的#1(仅参加过#3 R1G13-16)

...

R3 第 16 组

  • R2 第 13 组的#4(仅参加过#4 R1G1-4)
  • R2 第 14 组的#4(仅参加过#4 R1G5-8)
  • R2 第 15 组的#4(仅参加过#4 R1G9-12)
  • R2 第 16 组的#4(仅参加过#4 R1G13-16)

我们可以再次将相同的逻辑应用于第 4 轮,但第 4 轮是最后一次可以保证唯一配对:

第四轮

R4 第 1 组

  • R3 第 1 组的#1(仅参加过#1 R1、#1 R2G1-4)
  • R3 第 2 组的#1(仅参加过#2 R1、#1 R2G5-8)
  • R3 第 3 组的#1(仅参加过#3 R1、#1 R2G9-12)
  • R3 第 4 组的#1(仅参加过#4 R1、#1 R2G13-16)

R4 第 2 组

  • R3 第 5 组的#1(仅参加过#2 R1G1-4)
  • R3 第 6 组的#1(仅参加过#2 R1G5-8)
  • R3 第 7 组的#1(仅参加过#2 R1G9-12)
  • R3 第 8 组的#1(仅参加过#2 R1G13-16)

...

R4 第 16 组

  • R3 第 13 组的#4(仅参加过#4 R1G1-4)
  • R3 第 14 组的#4(仅参加过#4 R1G5-8)
  • R3 第 15 组的#4(仅参加过#4 R1G9-12)
  • R3 第 16 组的#4(仅参加过#4 R1G13-16)

在 4 轮瑞士比赛之后,如果我们再次应用这个逻辑,那么一些球队将会再次互相比赛。理想情况下,如果您想要总冠军,您可以选择根据总体排名挑选列表并重新开始(因此为了瑞士的目的/规则而忽略之前的比赛)或从那里使用循环赛方法。

如果您想继续瑞士,请通过该数据集的第四轮,然后 将此视为排序算法,请按照以下步骤操作:

  1. 拿前4名
  2. #1 团队保持领先
  3. 如果#2 队已经对阵#1、#3、#4(前 4 名中的任何一个),将他们移至下一组(暂时占位)
  4. 从原始列表中选择下一个团队(#5) ...

循环各个团队,直到获得第一组。 然后从占位组中取出团队(保持排名顺序)以及原始列表的其余部分,并再次开始该过程。

© www.soinside.com 2019 - 2024. All rights reserved.