九州算术数学论坛's Archiver

belle 发表于 2007-9-30 22:58

乒乓球赛问题

[color=#006699]某中学将举行乒乓球比赛,小明他们班有5人先进行淘汰赛,选出一人参加学校的决赛,班主任杨老师计算了一下比赛的次数:"嗯,由于5是奇数,所以第一轮有一个队员轮空,第二轮中还得出现一次轮空,一共需要进行4场比赛.选拔出一个队员后,学校共有37个班级参加决赛,也采用淘汰赛,你知道需要多少场比赛吗?你还没有算出来吗?哈哈!还在画表格呀?告诉你吧,每场比赛淘汰一名队员,一共要淘汰36名队员,所以要进行36场比赛.不过,如果你想轻易地算出轮空的次数却没有这么容易,那么,怎样计算轮空的次数呢?,请看如下的分析:
    不知道你注意了没有,如果比赛人数正好是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的奇偶性,下面的a1,a2,a3...也一样,假定2k<n<2k+1,并且规定n>=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
                        = ∑as+L(1/2k∑as2s+n/2k)
                        s=0 s=0
                        由于最后总有:
                    k-1
                        1/2k∑as2s+n/2k=2
                  s=0
                  即:
                  k-1
                  ∑as2s=2k+1-n
                  s=0
                  我们看到,L(n)=a0+a1+a2+...+ak-1
                      所以,只要将2k+1-n化成二进制表示,其系数和就是轮空数,也就是其中1的个数.对于n=37,我们可以算出2k+1-n=64-37=27=11011,其中有4个1,所以共有四次轮空.[/color]

[[i] 本帖最后由 belle 于 2007-9-30 23:03 编辑 [/i]]

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.