original page : http://ja.doukaku.org/149/
任意の偶数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
が解のひとつです。
#6770
original page : http://ja.doukaku.org/comment/6770/
出力結果を見ると、お題の意図とは違うような気がします(読み間違えてたらすみません)
Rらしさは全くありませんが、参考URLに記載されたアルゴリズムを素直に実装してみました。
kirkman <- function(n=6){ l <- 2:n fold <- n/2 for(i in 2:n){ print(paste(c(1, l[c(2:fold)]), c(i, l[(n-1):(fold+1)]))) l <- c(l[-1], l[1]) } }