nCrの組み合わせを得る
参考ページ
ちなみにソースはDelphiです。読めねぇ。
ちなみにソースはDelphiです。読めねぇ。
よく考えると、rが決まっている時(例えばr=3)は、
size = n;
for(i=0; i < size; i++)
for(j=1; j < size; j++)
for(k=2; k < size; k++)
if(i < j && j < k) cout << i,j,k << endl;
でいいんよね。rが大きくなると大変だけど。
一般的に得るのはちょっと大変で、真面目に考えてない。
文字数の問題は配列にしたら終わりでいいけど、ループが増えるのはちょっと面白くない。
なんかスマートなのはないもんかね。Delphi読むとか本買う以外で(w
文字数の問題は配列にしたら終わりでいいけど、ループが増えるのはちょっと面白くない。
なんかスマートなのはないもんかね。Delphi読むとか本買う以外で(w
nCrの組み合わせを得る2
再帰関数使ったら書ける。所要時間は知らん。まぁ、組み合わせなので元々爆発します。仕方ないです。そういう意味では全組み合わせをサーチする時点で無謀ともいえる。
C++コードです。
C++コードです。
int full=n;
int choose=r;
void comb_search(int iter, int* cmb){
if(iter < choose){
for(int cmb[iter]=iter; cmb[iter] < full; cmb[iter]++){
comb_search(iter+1, cmb);
}
}else{
for(int i=0; i < choose; i++)
cout << cmb[i] << " ";
}
cout << endl;
}
}
int main(){
int cmb[choose];
comb_search(0, cmb);
}
みたいな感じ?
デバッグしてないのでよくわかんないです。
sizeを配列にして各要素の数を入れておくと固定サイズでなくてもできるはず。
デバッグしてないのでよくわかんないです。
sizeを配列にして各要素の数を入れておくと固定サイズでなくてもできるはず。