诗集古诗网

您现在的位置是: 首页 > 网球

比赛轮空数计算?

2021-07-07 19:58:05诗集古诗网
如何快速求出N个人参加的淘汰赛中轮空的场次数?N可以使任意数,也就是任意人数参加的比赛。 例如:37个人参加淘汰赛,那么无论怎么安排比赛顺序,总是有4场比赛有运动员会轮空。 答

如何快速求出N个人参加的淘汰赛中轮空的场次数?N可以使任意数,也就是任意人数参加的比赛。

 

例如:37个人参加淘汰赛,那么无论怎么安排比赛顺序,总是有4场比赛有运动员会轮空。

 

答案是:假如m个人参加比赛,N是大于或者等于m的最小2次幂。例如对于m=37来说,N就是2^6=64。那么,令s=N-m。对于m=37来说s=27。那么轮空数Result等于s的二进制表示方法中为1的位的个数!

 

例如对于s=27来说,二进制为11011,那么就一定是4次轮空。而且轮空的场次也跟1出现的次数一致,也就是说,第1,2,4,5场有人轮空比赛。

 

总结,只需要做减法就能规避掉复杂的计算,真是巧夺天工。

 

由此可以推算出世界杯足球赛参赛队伍永远是2的幂,32或者64,不然肯定会有球队少打比赛,造成不公。中国只能期望共有128支球队参加比赛的日子了