challenge 総当たり戦の日程作成

任意の偶数Nのチームの総当たり戦を最短日数(N-1日)で行う場合の日程表を1つ作成してください。

解はひとつではない場合もあります。
もし、余力があれば、全ての可能性も求めてください。

これは、スポーツスケジューリングと言う分野の問題で、数学的には、カークマンの問題と言うのが近いようです。

例えば、4チームであれば、

1-2 3-4
1-3 2-4
1-4 2-3

6チームであれば

1-2 3-4 5-6 
1-3 2-5 4-6 
1-4 2-6 3-5 
1-5 2-4 3-6 
1-6 2-3 4-5

が解のひとつです。

Posted feedbacks - Groovy


	
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
def n = 6
def pairs = []
(1..n).each{ x ->
    (1..n).each{ y ->
        pairs << [x, y].sort()
    }
}

// 出力
pairs.findAll{ it[0] != it[1] }.unique().each{
    println it
}

Index

Feed

Other

Link

Pathtraq

loading...