怎样排循环赛的程序表V5
现在,我们已经知道了怎样计算循环赛的比赛场次,那么怎样排出这种比赛的程序表,使每一队在每一轮比赛中都有不同的对手呢?让我们来看上文留下的题目,女子分成的三组中有一组是6个队,这6个队用单循环制进行比赛。用x表示球队的编号,x∈{1,2,…,6},r表示比赛的轮数,r∈{1,2,…,5},那么每一个队都要进行5轮比赛。
下面就是一张6个队的比赛程序表,在第r行、第x列处的数字y,代表x队在第r轮比赛中的对手。
![]() |
这张表是怎样排出来的呢?
我们先介绍一个概念——“同余”。所谓同余,是指两个整数a、b被另一正整数m去除,有相同的余数,通常用符号
a≡b(mod m)
表示,读作“a,b关于模m同余”。例如34与12被11除余数都是1,就称“34与12关于模11同余”。同余的概念早在公元5世纪时,在我国的《孙子算经》中已经出现。在日常生活中也经常会遇到,比如,某月1日是星期三,那么9日,16日,23日都是星期三,因为它们关于模7同余。
一般地,要排出有N个队参加的循环赛程序表,只需在第r(r=1,2,…,N-1)轮中取能满足x+y≡r(mod N-1)的y值就行了。
因此上例中,只要取能满足x+y被5除余数为r的y值就行了。
![]() |
先看第一轮比赛(r=1,x+y=6),于是有x=1,y=5;x=2,y=4。但是x=3时,y=3,这意味着第3队将与自己比赛,这当然是不可能的。为此,我们规定,在这种情况下,它与最后一队即第6队比赛。于是表中第一行排好了。
再看第二轮比赛(r=2,x+y=7),于是第二行可以毫不费力地排出来。
第三轮比赛(r=3,x+y=8),而x=1时,y=7,无此队,因而这种情况下,可改取x+y=r,则x=1,y=2;x=2,y=1。此后还是按照x+y=8,当x=3,y=5;x=4时,y不可能为4,由上可知,取y=6。
用同样的方法,我们可以把上面列出的表排完。
这样,如果参赛的队数是偶数,每一个队在每一轮比赛中都能有不同的对手。当然这并不是唯一的排法,而且如果参赛的队数是奇数,这种排法也就不适用了。
关键词:同余
- 上一篇
为什么大奖赛评分时要去掉最高分和最低分V5
校园卡拉OK大奖赛正在进行,一位同学唱完后,6个评委亮出了分数(10分为满分),由小到大依次为:9.00、9.50、9.55、9.60、9.75、9.90。按评分规则,去掉最高分和最低分,将其余4个得分作平均,该同学的最后得分是 $\frac{{9.50
- 下一篇
怎样计算用单循环制进行的比赛场数V5!
用淘汰制进行球类锦标赛,比赛场数比较少,所需用的时间较短,所以,报名人数较多的个人锦标赛往往采用这种方法。但有一个缺点,就是要获得冠军,中途不能有失。而且如果两强相遇过早,所产生的亚军和其他名次往往与实际水平不完全相符。因此,在报名单位较少的一些团体锦标赛