全組み合わせの出力
n個の中ならr個を選ぶ、重複を許さない組み合わせは、nCr通りありますが、
これを順番に出力するにはどのようにすればよいでしょうか?
要素を{p1,p2,p3,p4,p5,...,pn}とするとき、例えばr=3ならば
f(i=1)={p1,p2,p3},f(i=2)={p1,p2,p4},f(i=3)={p1,p2,p3},...
f(i=n-2)={p1,p2,pn},f(i=n-1)={p1,p3,p4},f(i=n)={p1,p3,p5},
f(i=n+1)={p1,p3,p6},f(i=n+2)={p1,p3,p7},f(i=n+3)={p1,p3,p8},...
f(i=2n-3)={p1,p4,p5},f(i=2n-2)={p1,p4,p6},...
f(i=nCr)={pn-2,pn-1,pn}
という風になるかと思いますが、その規則性がわかりません。
上記規則に従う必要は無いのですが、java.util.Listに入っているn個の
要素に対して、rとiを指定してその1つの組み合わせを得る方法を
探しています。
ご存知の方がおられましたら、よろしくお願いします。