組み合わせでfor文を回す
N個の数字からr個取り出した値の組み合わせで処理をするプログラムをfor文使って作ることが必要になって考えたのでメモ。高速に計算するなら別ので。
nC3の場合。(nはNに置き換えてね)
for i = 0; i < N-3; i++
j = i + 1
for k = j + 1; k < n-1; k++
以下 i, j, kを用いた処理の記述
nC4の場合は
for i = 0; i < N-4; i++
j = i + 1
k = j + 1
for l = k + 1; l < n-1; l++
以下 i, j, k, lを用いた処理の記述
要は、
- 1番目のループの範囲は0からN-(nCrのr)
- 1番目とr番目のループの間はr-2個分の引数を、前の引数+1で用意。
- r番目のループの範囲は(r-1)番目の引数 + 1 から N-1まで。