C 「貝格爾」編排法

2021-09-07 16:43:08 字數 2366 閱讀 1812

採用「

貝格爾」編排法,編排時如果參賽隊為雙數時,把參賽隊數分一半(參賽隊為單數時,最後以「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」移動位置。

c#實現:

protected void page_load(object sender, eventargs e)

; int array = teams.toarray();

//參賽隊數數量

int initlen = array.length;

//比賽輪次

int turns = initlen - 1;

//如果為奇數,用0補空

if (convert.toboolean(initlen % 2))

list.add(teams.toarray());

int max = teams[teams.count - 1];

//間隔數,計算公式為(n-4)/2+1

int steps = initlen <= 4 ? 1 : (initlen - 4) / 2 + 1;

listparselist = teams;

int temp = 0;

for (int n = 0; n < turns; n++)

temparray[0] = temp;

}//補空位

string tempstring = ismax ?

string.format(",", string.join(",", temparray), max) :

string.format(",", max, string.join(",", temparray));

int parsearray = array.convertall(tempstring.split(','), s => int.parse(s));

parselist = new list(parsearray);

list.add(parsearray);

}//分隊

for (int i = 0; i < list.count; i++)

輪--------

", i));

int ar = list[i];

int length = ar.length / 2;

int left = new int[length], right = new int[length];

listlll = new list();

for (int j = 0; j < length; j++)

array.reverse(right);

for (int j = 0; j < left.length; j++)

,", left[j], right[j]));}}

}

結果:---------第0輪--------

1,02,7

3,64,5

---------第1輪--------

0,56,4

7,31,2

---------第2輪--------

2,03,1

4,75,6

---------第3輪--------

0,67,5

1,42,3

---------第4輪--------

3,04,2

5,16,7

---------第5輪--------

0,71,6

2,53,4

---------第6輪--------

4,05,3

6,27,1

---------第7輪--------

0,12,7

3,64,5

資源編排(YAML)

k8s 裡所有的資源或者配置檔案都可以用 yaml 或 json 定義。yaml 是乙個 json 的超集,任何有效 json 檔案也都是乙個有效的yaml檔案。縮排表示層級關係 不支援製表符 tab 縮排,使用空格縮排 通常開頭縮排 2 個空格 字元後縮排 1 個空格,如冒號 逗號等 表示yaml...

容器編排技術

容器編排技術 兩台docker環境 docker compose 拖到 usr local bin cd usr local bin chmod x docker compose 以nginx為案列 寫資源建立模板 yaml格式 mkdir compose nginx cd compose ngin...

編排的藝術 K8S 中的容器編排和應用編排

眾所周知,kubernetes 是乙個容器編排平台,它有非常豐富的原始的 api 來支援容器編排,但是對於使用者來說更加關心的是乙個應用的編排,包含多容器和服務的組合,管理它們之間的依賴關係,以及如何管理儲存。在這個領域,kubernetes 用 helm 的來管理和打包應用,但是 helm 並不是...