rai*_*7ow 11
对于给定的数字N,找到它与2的最小幂之间的差值至少与N一样大.对于59,那将是5(64-59).这5名球员将被添加到第二轮的比赛日程中.
当第二轮开始时 - 即尽可能早地,该算法允许所有玩家成为游戏的一部分.它的解释非常简单:想象一下原本有2**N个玩家 - 但是有些人没有参加他们的比赛,所以他们的对手在没有战斗的情况下走得更远.)
作为旁注,你的公式应该考虑到它是第二轮应该进入比赛的最强的球员,而不是最弱的球员.)
第一步显然是计算将参加第一轮的球员数量.现在,让我们继续"缺少玩家"的比喻 - 假设最初有64名玩家,所以第一轮应该有32场比赛.但是有5名球员(64-59)没有参加这些比赛 - 因此真实比赛的数量是27(64/2 - 5),第一轮的真实参赛者数量是54(27*2).
在第一轮比赛之后,将有27人离开比赛 - 那些人将加入其他5人,所以第二轮选手的总数是32.其余的是微不足道的,我想.)
实际上,这很容易普及.比方说,我们拥有N的球员,和2最小功率至少一样大N的P.现在...
(N - (P - N))(或只是(2*N - P))球员.(N - P/2).(P - N)第一轮中没有比赛的球员将参加比赛,因此第二轮比赛的球员总数将是......N - P/2 + P - N => P - P/2 => P/2