在单项淘汰赛中,例如网球大满贯锦标赛,每个失败的球员都会立即从随后的回合中淘汰,直到确定一名球员为止。如果比赛开始时有N位玩家,请回答以下问题。
- 赢得冠军所需的比赛总数是多少?
- 这样的比赛有几轮?
- 根据锦标赛产生的信息,还需要进行多少场比赛才能确定第二名的选手?
解决方案
- 由于我们在每场比赛中都淘汰一名球员,因此只有一名获胜者。然后,总共需要淘汰N-1名球员。因此,需要N-1场比赛才能获得冠军。从数学上来说,如果有N个玩家,那么我们在第一轮将有N / 2场比赛,在第二轮将有N / 4场比赛,依此类推,直到最后一轮有1场比赛。因此,匹配的总数只是几何级数的总和,其中项N / 2,N / 4直到1 。
设总人数为N的球员,然后是获得获胜者的比赛总数:
=> N/2 + N/4 + N/8 + …. + 2 + 1
This is a geometric progression with
a = N/2, r = 1/2
The number of terms in the progression will beHence,
=> N/2(1 – (1/2)^{log_2N}) / 1 – 1/2)
=> N(1 – 1/2^{log_2N})
=> N(1 – 1/N)
=> (N – 1) - 如果N为2的幂,则锦标赛的总回合数为2 N ,因为在每一回合中有一半的玩家被淘汰,直到只剩下一名玩家。如果N不是2的幂,则回合数是2的最小幂,即大于或等于N,等于ceil(log 2 N) 。
- 次佳的玩家可以是输给获胜者的任何玩家,而没有其他玩家。可以使这些玩家玩自己的单场淘汰赛。由于获胜者将出现在锦标赛的所有回合中,因此总的来说,他们将是ceil(log 2 N)个玩家争夺第二名。由于对于N个球员锦标赛,要进行N-1场比赛来找出获胜者,因此, ceil(log 2 N)–需要1场比赛来确定竞争者中的获胜者,这将是我们的第二佳玩家。