- いかにも、どこかにアルゴリズムがありそうだが見つからないので作る
- 偶数kにつき、(1,2,...,k)をk/2ペアに分けるわけ方を列挙する
- 作戦としては、k個から2つを取り出す場合を列挙、ついでk-2個から2つを取り出す場合を列挙、、、繰り返す
- そうすると重複して列挙されるので、ユニークを取る
- ペアのユニーク確認のために、数ラベルペアを文字列化して、そのユニーク確認をし、文字列になったものを数字に戻す
- 第1,2列がペア、第3,4列がペア、…、第2n-1, 2n列がペア
> my.all.pairs(2)
[,1] [,2]
[1,] 1 2
> my.all.pairs(4)
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 1 3 2 4
[3,] 1 4 2 3
> my.all.pairs(6)
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 2 3 4 5 6
[2,] 1 3 2 4 5 6
[3,] 1 4 2 3 5 6
[4,] 1 5 2 3 4 6
[5,] 1 6 2 3 4 5
[6,] 1 3 2 5 4 6
[7,] 1 3 2 6 4 5
[8,] 1 2 3 5 4 6
[9,] 1 2 3 6 4 5
[10,] 1 4 2 5 3 6
[11,] 1 5 2 4 3 6
[12,] 1 6 2 4 3 5
[13,] 1 4 2 6 3 5
[14,] 1 5 2 6 3 4
[15,] 1 6 2 5 3 4