1、乒乓球赛问题某中学将举行乒乓球比赛,小明他们班有 5 人先进行淘汰赛,选出一人参加学校的决赛,班主任杨老师计算了一下比赛的次数:“嗯,由于 5 是奇数,所以第一轮有一个队员轮空,第二轮中还得出现一次轮空,一共需要进行 4 场比赛.选拔出一个队员后,学校共有 37 个班级参加决赛,也采用淘汰赛,你知道需要多少场比赛吗?你还没有算出来吗?哈哈!还在画表格呀?告诉你吧,每场比赛淘汰一名队员,一共要淘汰 36 名队员,所以要进行 36 场比赛.不过,如果你想轻易地算出轮空的次数却没有这么容易,那么,怎样计算轮空的次数呢?,请看如下的分析:不知道你注意了没有,如果比赛人数正好是 2 的幂,那么轮空次数就
2、是 0,也就是说,如果比赛人数是 2,4,8,16,32 等等,就不会出现轮空,如果不是这样类型的数,则至少要有一次轮空.假设有 n 个队员参赛,如果是奇数,那么第一轮就有一名队员要轮空,从第二轮开始的轮空数与(n+1)/2 个队员参赛的轮空数是一样的,所以这时总的轮空数是:(用 L(n)表示 n 个队员参赛的轮空数)L(n)=1+L(n+1)/2)如果 n 是偶数,那么,第一轮没有轮空,从第二轮开始的轮空数与 n/2 个队员参赛的轮空数是一样的,所以有:L(n)=L(n)/2)我们可以统一处理以上两个公式:L(n)=a0+L(n+a0)/2)其中 a0为 1 或为 0 取决于 n 的奇偶性,
3、下面的 a1,a2,a3.也一样,假定 2k=2,因为最后总是冠亚军决赛,所以最后一场比赛总是 2 名队员.继续往下推,我们有:L(n)=a0+a1+L(a0/4+a1/2+n/4)=a0+a1+a2+L(a0/8+a1/4+a2/2+n/8)=a0+a1+a2+.+ak-1+L(a0/2k+a2/2k-1+.+ak-1/2+n/2k)k-1 k-1= a s+L(1/2ka s2s+n/2k)s=0 s=0 由于最后总有:k-11/2ka s2s+n/2k=2s=0 即:k-1a s2s=2k+1-ns=0我们看到,L(n)=a 0+a1+a2+.+ak-1所以,只要将 2k+1-n 化成二进制表示,其系数和就是轮空数,也就是其中 1 的个数.对于 n=37,我们可以算出 2k+1-n=64-37=27=11011,其中有 4 个 1,所以共有四次轮空.