您现在的位置是:首页 >

怎样排循环赛的程序表V5

火烧 2016-12-15 07:35:15 1084
现在,我们已经知道了怎样计算循环赛的比赛场次,那么怎样排出这种比赛的程序表,使每一队在每一轮比赛中都有不同的对手呢?让我们来看上文留下的题目,女子分成的三组中有一组是6个队,这6个队用单循环制进行比赛。用x表示球队的编号,x∈{1,2,…,6},r表示比赛

现在,我们已经知道了怎样计算循环赛的比赛场次,那么怎样排出这种比赛的程序表,使每一队在每一轮比赛中都有不同的对手呢?让我们来看上文留下的题目,女子分成的三组中有一组是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。

用同样的方法,我们可以把上面列出的表排完。

这样,如果参赛的队数是偶数,每一个队在每一轮比赛中都能有不同的对手。当然这并不是唯一的排法,而且如果参赛的队数是奇数,这种排法也就不适用了。

关键词:同余

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

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