我正在寻找瑞士式和循环赛的组合。我们有一个为期 4 周的(排球)锦标赛。 64支球队被分为16个小组,每组4支球队,第一轮根据地域进行。在每个小组中,每支球队都会与所有其他球队进行比赛。在每队第一轮3场比赛之后,我想应用一些瑞士配对来组成新的实力相当的球队组,地理位置不再那么重要。同样,在第二轮和第三轮之后,应使用瑞士语创建新的小组。第四轮结束后,每组公布获胜者。
有这方面的算法吗,特别是瑞士配对部分?
蒂亚
瑞士并没有专门的算法,而更多的是一个程序或过程。您的第一轮决定了基本排名。因此,在第 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 轮瑞士比赛之后,如果我们再次应用这个逻辑,那么一些球队将会再次互相比赛。理想情况下,如果您想要总冠军,您可以选择根据总体排名挑选列表并重新开始(因此为了瑞士的目的/规则而忽略之前的比赛)或从那里使用循环赛方法。
如果您想继续瑞士,请通过该数据集的第四轮,然后 将此视为排序算法,请按照以下步骤操作:
循环各个团队,直到获得第一组。 然后从占位组中取出团队(保持排名顺序)以及原始列表的其余部分,并再次开始该过程。