📜  拼图 |单人淘汰赛

📅  最后修改于: 2021-10-23 07:40:27             🧑  作者: Mango

在单淘汰赛中,例如网球大满贯冠军赛——每名输掉的选手都将立即从随后的几轮淘汰赛中淘汰,直到确定一名选手为止。如果比赛开始时有 N名选手,请回答以下问题。

  1. 获得胜利所需的比赛总数是多少?
  2. 这样的比赛有几轮?
  3. 根据锦标赛产生的信息,还需要进行多少场比赛才能确定第二好的球员?

解决方案

  1. 由于我们在每场比赛中淘汰一名球员,因此只有一名获胜者。然后,总共需要淘汰 N-1名玩家。因此,需要N-1场比赛才能获胜。从数学上讲,如果有N 个玩家,那么我们将在第一轮进行 N/2场比赛,在第二轮进行N/4场比赛,依此类推,直到最后一轮我们有 1场比赛。因此,匹配的总数只是几何级数的总和,项N/2, N/4 直到 1

    假设总共有N个玩家,那么获得胜利者的比赛总数:

  2. 如果N是 2的幂,则锦标赛的总轮数为log 2 N ,因为在每一轮中,一半的玩家被淘汰,直到只剩下一个玩家。如果N不是 2的幂,则轮数是2的最小幂,即大于或等于 N,即等于ceil(log 2 N)
  3. 第二好的玩家可以是输给获胜者而不是其他任何人的任何玩家。可以让这些玩家参加他们自己的单场淘汰赛。由于获胜者将出现在锦标赛的所有轮次中,因此他们总共将是ceil(log 2 N)玩家,争夺第二好的玩家。因为,对于N人锦标赛,进行N-1场比赛来找出获胜者,因此,需要ceil(log 2 N) – 1场比赛来确定竞争者中的获胜者,这将是我们第二好的球员。