单循环比赛的贝格尔编排法
| 單循環是指所有參賽隊在競賽中均能相遇一次,最后按各隊在競賽中的得分多少、勝負場次來排列名次。 單循環一般在參賽隊不太多,又有足夠的競賽時間才能采用。單循環由于參加競賽的各隊都有相遇比賽的機會, 是一種比較公平合理的比賽制度。 一) 單循環比賽的輪數和場數的計算 ① 比賽輪數:在循環制的比賽中,各隊都參加完一場比賽即為一輪。 | ? |
② 比賽場數:單循環比賽的場數,可用下面的公式計算(簡單的數學組合公式):
比賽場數= 隊數*(隊數-1)/2
如6個隊或7個隊參加比賽,則比賽場數為:
6 *(6-1)/2 =15(場) 7*(7-1)/2 =21(場)
二)編排競賽輪次表
???????不論參賽隊是奇數或偶數,均按偶數進行編排。如果參賽隊為奇數,則在隊數最后加一個“0”,使其成為
偶數。碰到0的隊輪空。在編排時,把參賽隊平均分成左、右各一半,左一半號數由序號1依次自上向下排,右一半號數按數序依
次自下向上排,然后用橫線相連,即構成比賽的第一輪。從第二輪開始,輪轉的方法有多種。
常用的有兩種:
(1)固定輪轉編排法
固定輪轉法也叫常規輪轉法,是我國傳統的編排方法。表17-6為7個隊參賽輪次表,它以左邊第一號固定不動,逆時針轉動,逐一排出。
如表所示:
JAVA 程序如下
public class FootBallTeam { public static void main(String [] args) { String [] team = {"1","2","3","4","5","0"};//參賽的各隊 int len = team.length; for(int i=1;i< len;i++) { System.out.println(); System.out.println("第"+i+" 輪"); for(int j=0;j< len/2;j++) { System.out.println(team[j]+" ----- "+ team[len-1-j]); } String temp=team[len-1]; //將最后一隊的值賦給臨時變量temp for(int k=len-1;k>0;k--) { team[k]=team[k-1]; } team[1]=temp; //將臨時變量temp賦給數組的第二值 } } }運行結果:C:\java>java FootBallTeam
第1 輪
1 ----- 0
2 ----- 5
3 ----- 4
第2 輪
1 ----- 5
0 ----- 4
2 ----- 3
第3 輪
1 ----- 4
5 ----- 3
0 ----- 2
第4 輪
1 ----- 3
4 ----- 2
5 ----- 0
第5 輪
1 ----- 2
3 ----- 0
4 ----- 5
(2)“貝格爾”編排法
??????從1985年起,世界性比賽多采用“貝格”“編排法。其優點是單數隊參加時可避免第二輪的輪空隊從第四輪起每場都與前一輪的輪空隊比賽的不合理現象。
??????采用“貝格爾”編排法,編排時如果參賽隊為雙數時,把參賽隊數分一半(參賽隊為單數時,最后以“0”表示形成雙數),前一半由1號開始,自上而下寫在左邊;后一半的數自上而下寫在右邊,然后用橫線把相對的號數連接起來。這即是第一輪的比賽。
?????第二輪將第一輪右上角的編號(“0”或最大的一個代號數)移到左角上,第三輪又移到右角上,以此類推。
即單數輪次時“0”或最大的一個代號在右上角,雙數輪次時則在左上角。如下表示:
??????
7個隊比賽的編排方法
| 第一輪 | 第二輪 | 第三輪 | 第四輪 | 第五輪 | 第六輪 | 第七輪 |
| 1-0 | 0-5 | 2-0 | 0-6 | 3-0 | 0-7 | 4-0 |
| 2-7 | 6-4 | 3-1 | 7-5 | 4-2 | 1-6 | 5-3 |
| 3-6 | 7-3 | 4-7 | 1-4 | 5-1 | 2-5 | 6-2 |
| 4-5 | 1-2 | 5-6 | 2-3 | 6-7 | 3-4 | 7-1 |
無論比賽隊是單數還是雙數,最后一輪時,必定是“0”或最大的一個代號在右上角,“1”在右下角。
根據參賽隊的個數不同,“1”朝逆時針方向移動一個位置時,應按規定的間隔數移動(見表),“0”或最大代號數應先于“1”移動位置。
?? 間隔移動
| 參賽隊數 | 間隔數 |
| 4隊以下 | 0 |
| 5~6隊 | 1 |
| 7~8隊 | 2 |
| 9~10隊 | 3 |
| 11~12隊 | 4 |
?????? “1”進行間隔移動時,凡遇到“0”或最大代號數時應先越過,不作間隔計算。
?????? 一般國內比賽,各隊以上屆比賽所取得的名次數作為代號,如第1名為“1”,第2名“2”,依此類推。世界性比賽大都采用東道主代號為“1”,上屆第1名為“2”,依此類推。有的比賽也采用抽簽方法確定代號。
最后是"貝格爾"排法的java程序:
更精簡的程序(我的朋友寫的):
程序運行結果:
C:\java>java Test1
輸入隊伍的數量: 12
第1輪
1--12
2--11
3--10
4--9
5--8
6--7
第2輪
12--7
8--6
9--5
10--4
11--3
1--2
第3輪
2--12
3--1
4--11
5--10
6--9
7--8
第4輪
12--8
9--7
10--6
11--5
1--4
2--3
第5輪
3--12
4--2
5--1
6--11
7--10
8--9
第6輪
12--9
10--8
11--7
1--6
2--5
3--4
第7輪
4--12
5--3
6--2
7--1
8--11
9--10
第8輪
12--10
11--9
1--8
2--7
3--6
4--5
第9輪
5--12
6--4
7--3
8--2
9--1
10--11
第10輪
12--11
1--10
2--9
3--8
4--7
5--6
第11輪
6--12
7--5
8--4
9--3
10--2
11--1
總結
以上是生活随笔為你收集整理的单循环比赛的贝格尔编排法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 两张图读懂Saas Paas Iaas
- 下一篇: 曼联足球俱乐部披露安全漏洞