組み合わせ\(_nC_r\)、重複組み合わせ\(_nH_r\)の一覧を求めるfortranコードです。
\(_nH_r=~_{n+r-1}C_r\)
組み合わせ\(_nC_r\)の場合
1 2 3 4
1 2 3 5
1 2 3 6
1 2 4 5
1 2 4 6
1 2 5 6
1 3 4 5
1 3 4 6
1 3 5 6
1 4 5 6
2 3 4 5
2 3 4 6
2 3 5 6
2 4 5 6
3 4 5 6
1 2 3 5
1 2 3 6
1 2 4 5
1 2 4 6
1 2 5 6
1 3 4 5
1 3 4 6
1 3 5 6
1 4 5 6
2 3 4 5
2 3 4 6
2 3 5 6
2 4 5 6
3 4 5 6
を得たい場合
重複組み合わせ\(_nH_r\)の場合
1 1 1 1
1 1 1 2
1 1 1 3
1 1 2 2
1 1 2 3
1 1 3 3
1 2 2 2
1 2 2 3
1 2 3 3
1 3 3 3
2 2 2 2
2 2 2 3
2 2 3 3
2 3 3 3
3 3 3 3
1 1 1 2
1 1 1 3
1 1 2 2
1 1 2 3
1 1 3 3
1 2 2 2
1 2 2 3
1 2 3 3
1 3 3 3
2 2 2 2
2 2 2 3
2 2 3 3
2 3 3 3
3 3 3 3
を得たい場合
組み合わせをrecursionを使わないで得るために、全ての行を初めの値で引いてみました。
+------------+
0 0 0 0
0 0 0 1
0 0 0 2
0 0 1 1
0 0 1 2
0 0 2 2
0 1 1 1
0 1 1 2
0 1 2 2
0 2 2 2
1 1 1 1
1 1 1 2
1 1 2 2
1 2 2 2
2 2 2 2
+------------+
0 0 0 0
0 0 0 1
0 0 0 2
0 0 1 1
0 0 1 2
0 0 2 2
0 1 1 1
0 1 1 2
0 1 2 2
0 2 2 2
1 1 1 1
1 1 1 2
1 1 2 2
1 2 2 2
2 2 2 2
+------------+
すると、ちょうどr進数と同じになります。なので、これを復元するプログラムを書きました。
始めまして。荒といいます。
Rで(並べ替え)Brunner-Munzel検定を行うためのbrunnermunzelパッケージを作成しました (https://CRAN.R-project.org/package=brunnermunzel)。
並べ替えのサブルーチンとしてこのページのプログラムを多少改変して使用させて頂きました。このプログラムがなかったらパッケージが完成することはありませんでした。
非常に有用なプログラムを公開して頂きありがとうございました。
荒様
ご報告ありがとうございます。お役に立てて誠に光栄です。