プロが教えるわが家の防犯対策術!

よろしくお願いします。当方プログラミング初心者です。

ある配列a[]={1,1,2,2,3,3}があります。
この配列の重複組合せを全列挙したいのですが、
どういうプログラムを組めばいいのでしょうか?

よろしくお願いします!

A 回答 (2件)

その6個の要素から、重複を許して「何個の」要素を取り出したいのですか?

    • good
    • 0

各要素が、「ある」「なし」のすべての組み合わせと言うことですよね。


こんな感じで、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");
}
}
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!