循环制比赛要赢几场可能(一定)晋级

Posted 陆嵩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了循环制比赛要赢几场可能(一定)晋级相关的知识,希望对你有一定的参考价值。

循环制比赛要赢几场可能(一定)晋级

最近,世界杯正在如火如荼地进行。它的晋级规则胜平负分别积3、1、0分。每个小组积分的前两名球队出线进入淘汰赛阶段的1/8决赛,共16支队,即“16强”。积分相同的接下来看总净胜球数,还相同看总进球数,再相同只能抽签。16强后是对分PK剩下一半,一直选出冠军和亚军,前四强中的第三名和第四名要额外比一场,选出季军。

今天,我一直在想一个问题。在小组中,要赢了几场才能保证出线?有赢几场才有可能出线?显然,4 进 2 的情况比较简单。下面考虑一般情况。

假如有 n 支队伍,两两进行 pk,共比 n ∗ ( n − 1 ) 2 \\fracn*(n-1)2 2n(n1) 场,没有平局,最后选出 m 个赢的场数最多的队伍(这里先不说积分的事),如果选最后一支晋级队伍时,多个并列,那么就抽签决定。

通过简单的数学计算,有以下结果:

  • 要想有可能晋级,要赢的场数至少为:
    ⌈ n − m 2 ⌉ \\left\\lceil \\fracn-m2 \\right\\rceil \\\\ 2nm
  • 一定晋级,赢的场数最小为:
    ⌈ 2 n − m − 1 2 ⌉ \\left\\lceil \\frac2n-m-12 \\right\\rceil \\\\ 22nm1 or ⌊ 2 n − m 2 ⌋ \\left\\lfloor \\frac2n-m2 \\right\\rfloor \\\\ 22nm
  • 可能淘汰,只要输:
    ⌈ m 2 ⌉ \\left\\lceil \\fracm2 \\right\\rceil 2m
  • 一定淘汰,只要输:
    ⌈ m + n − 1 2 ⌉ \\left\\lceil \\fracm+n-12 \\right\\rceil 2m+n1 or
    ⌊ m + n 2 ⌋ \\left\\lfloor\\fracm+n2 \\right\\rfloor 2m+n
1、事实上,只考虑取整符号里面的内容的话,可能晋级需要赢的场数+一定淘汰输的场数=n,一定晋级需要赢的场数+可能淘汰输的场数=n。所以其实只要考虑前两种即可。
2、可能晋级的情况,如果 n − m 2 \\fracn-m2 2nm是个整数,那么有可能在选取最后一名晋级时,待选的n-m+1支队伍赢的场数都是$\\fracn-m2 $,这时候就要额外抽签决定晋级队伍。
3、可以把 ⌈ 2 n − m − 1 2 ⌉ \\left\\lceil \\frac2n-m-12 \\right\\rceil 22nm1 记为 ⌈ n − m 2 + n − 1 2 ⌉ \\left\\lceil \\fracn-m2 +\\fracn-12\\right\\rceil 2nm+2n1,表示要想保证晋级,感性上我们知道首先要有足够可能晋级的场数,另外至少要打败一半的队伍,方便记忆。更方便,只要记可能晋级赢的场数和可能淘汰输的场数即可。
4、世界杯主要考虑平局的情况,所以采用了积分制,给了平局一个权重。如果没有,只考虑胜负,那么积分制其实是没有意义的。不可能说我赢得场数比你多,输的比你少,结果最后积分没你高吧。
5、在比赛不考虑的平局的情况下,我们赢p局就有可能出线,赢q局一定出线,那么在考虑平局的时候,赢p局是不是仍然有可能出线,赢q局仍然一定出线呢?只是实际数据可能比这小点?这就意味着世界杯小组赛赢一局就有可能出线,赢3局必然出线(看起来像废话),为什么赢2局不一定出线呢?因为有可能有三个队伍都赢两局,并列第一,这时候就要看其他的因素了。

算例

比如说10进3的循环赛,只要赢4场就有出线的可能,只要赢8场,那么就一定出线。(赢4场有晋级可能,输2场有淘汰可能)。

计算思路

这里的计算比较简单,不妨考虑第一种情况:至少要赢 a a a 场能保证出线。该问题等价于求至多赢了 a − 1 a-1 a1 场还不能出线,也就是要求第 M + 1 M+1 M+1 名的最大胜场数加 1。假设前 M + 1 M+1 M+1 名为集合 A,剩下的 N − M − 1 N-M-1 NM1 名为集合 B。前 M + 1 M+1 M+1 名的胜场数之和最多为 s = ( M + 1 ) ∗ ( N − M − 1 ) + ( M + 1 ) M 2 s = (M+1)*(N-M-1)+\\frac(M+1)M2 s=(M+1)(NM1)+2(M+1)M 场(第一个部分为集合 A 全赢集合 B,第二部分为集合 A 的内部胜场数总和),那么第 M + 1 M+1 M+1 名的胜场数肯定不会超过 a − 1 = s M + 1 = ⌊ 2 N − M − 2 2 ⌋ a-1 = \\fracsM+1 = \\left\\lfloor \\frac2N-M-22\\right\\rfloor a1=M+1s=22NM2。那么,第 M + 1 M+1 M+1 名能达到这个胜场数吗?能!最简单地说,集合 A 全赢集合 B,且内部胜场均分即可。A 内部胜场均分是很容易构造的,排好序后以相同的间隔赢取下一个人即可,因为不同的玩家以这种方式达到了某种对称性。此时, a = ⌊ 2 N − M − 2 2 ⌋ + 1 = ⌊ 2 N − M 2 ⌋ a = \\left\\lfloor \\frac2N-M-22\\right\\rfloor+1=\\left\\lfloor \\frac2N-M2\\right\\rfloor a=22NM2+1=22NM。赢 a a a 场必然出线,那么赢 a − 1 a-1 a1 场还是有可能不能出线。

那么赢几场有可能出线呢?只要考虑输几场一定出不了线即可,只要在此基础上少输一场就有可能出线。那么,和上面的计算一样了。只不过 A 集合变成了输最多的 N − M + 1 N-M+1 NM+1 名,B 集合为前 M − 1 M-1 M1 名。将上面的结果中的 M M M 变成 N − M N-M NM,可以得到只要输 ⌊ N + M 2 ⌋ \\left\\lfloor \\fracN+M2\\right\\rfloor 2N+M 场肯定出局,即只赢 ⌈ N − M − 2 2 ⌉ \\lceil \\fracN-M-22\\rceil 2NM2 一定要被淘汰的,只要多赢一局,即 ⌈ N − M 2 ⌉ \\lceil \\fracN-M2\\rceil 2NM 就有可能出线了。

计算中,符号进入上下取整符号的时候,上取整要变为下取整,反之亦然。

以上是关于循环制比赛要赢几场可能(一定)晋级的主要内容,如果未能解决你的问题,请参考以下文章

最大流总结

网络流

力扣 1688比赛中的配对次数

力扣 1688比赛中的配对次数

快乐水题1688. 比赛中的配对次数

力扣每日一题 1688 比赛中的匹配次数