- いかにも、どこかにアルゴリズムがありそうだが見つからないので作る
- 偶数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