こんばんは いつの間にか新学期が始まっていました。 今年で大学生活も4年目に突入です。 最近は研究室に配属されて、ゼミやら発表やらで忙しくしています。 今回は研究で組み合わせの列挙が必要になって、そのときにまあまあ効率のいい再帰アルゴリズムを思いついたので紹介します。 そもそも組み合わせとは何ぞ?という人のために少し解説します。 組み合わせとは、例えば 4人の中から2人を選ぶとき、人をa,b,c,dとおくと選び方は {(a,b),(a,c),(a,d),(b,c),(b,d),(c,d)} になります。 この選び方を組み合わせと言います。 一般的に組み合わせ(Combination)はn個の中からm個を選ぶときの選び方です。 ここで注意が必要なのは似たようなもので順列(Permutation)というのがありますが、これは選び方だけではなく並べ方も考慮に入れるところが違います(実際に私もよく