- 締切済み
C言語で重複組合せを全列挙
よろしくお願いします。当方プログラミング初心者です。 ある配列a[]={1,1,2,2,3,3}があります。 この配列の重複組合せを全列挙したいのですが、 どういうプログラムを組めばいいのでしょうか? よろしくお願いします!
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- asuncion
- ベストアンサー率33% (2127/6290)
回答No.2
その6個の要素から、重複を許して「何個の」要素を取り出したいのですか?
- notnot
- ベストアンサー率47% (4900/10361)
回答No.1
各要素が、「ある」「なし」のすべての組み合わせと言うことですよね。 こんな感じで、intが32bitならaの要素が31個までは出来ると思います。 #include <stdio.h> #include <math.h> main() { int a[]={1,1,2,2,3,3}; #define N (sizeof a/sizeof a[0]) int i,j; for(i=0;i<pow(2,N);i++){ printf("%d:",i+1); for(j=0;j<N;j++){ if(i & 1<<j){ printf("%d ",a[j]); } } printf("\n"); } }