您现在的位置是:首页 >

怎样排循环赛的程序表

火烧 2016-11-17 08:07:45 1059
学校决定在高一、高二两个年级开展一次班级之间的篮球比赛,要求每一个队在每一轮比赛中都有不同的对手。怎样排出这种循环赛的程序表呢? 假如共有八个队参加比赛,用x表示球队的编号,r表示比赛的轮数,那么每一个队都要进行七轮比赛,即: x∈{1,2,…,8},r∈

学校决定在高一、高二两个年级开展一次班级之间的篮球比赛,要求每一个队在每一轮比赛中都有不同的对手。怎样排出这种循环赛的程序表呢?

假如共有八个队参加比赛,用x表示球队的编号,r表示比赛的轮数,那么每一个队都要进行七轮比赛,即:

x∈{1,2,…,8},r∈{1,2,…,7}。

下面就是一张八个队的比赛程序表,在第r行、第x列处的数字,表示x队在第r轮比赛中的对手。


这张表是怎样排出来的呢?


要排出这张表,就要求出在每一轮比赛中每一个队各自的对手。我们可以这样做:设在第r轮比赛中x队的对手为y队,由于每一个队要与其他七个队都比赛一次,共七轮,因此只要取能满足x+y被7除余数为r的y值就行了。

先看第一轮比赛(r=1,x+y=8),

当x=1时,y=7,即第一队的对手是第七队。

当x=2时,y=6,即第二队的对手是第六队。

当x=3时,y=5,即第三队的对手是第五队。

当x=4时,可取y=4,但是这意味着第四队将与自己比赛,这当然是不行的。为此,在这种情况下,我们规定第四队与最后一队即第八队比赛,于是表中第一行排好了。

再看第二轮比赛(r=2,x+y=9),

当x=1时,y=8;

当x=2时,y=7;

当x=3时,y=6;

当x=4时,y=5。这样,表中第二行也排好了。

第三轮比赛(r=3,x+y=10):

当x=1时,由于y的数值等于9,无此队,因而可改取y=2,x+y=3;

当x=2时,由上已知第二队的对手是第一队;

当x=3时,y=7;

当x=4时,y=7;

当x=5时,y=5,此时我们仍可按规定取第五队的对手为最后一队即第八队。这样表中第三行排好了。

用同样的方法,可排出其余四行。

在上述排表过程中,我们应用了“同余”的有关数学知识。所谓同余,是指两个整数a、b被另一正整数m去除,有相同的余数,通常用符号

a≡b(modm)

表示,读作“a,b关于m模余”。例如34与12被11除余数都是1,就称“34与12关于模11同余”,记作

34≡12(mod11)。

一般地,要排出有N个队参加的循环比赛程序表,只需在第r(r=1,2,…,N-1)轮中取能满足

x+y≡r(modN-1)

的y值,就是x队的对手。

同余的概念早在公元5世纪,我国的《孙子算经》中已经可见,在日常生活中经常会遇到。比如,某月2日是星期三,那么9日,16日,…都是星期三,它们关于模7同余。

永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码