ページ 11

コンビネーション

Posted: 2010年6月11日(金) 13:26
by ねこんぶ
箱に入ったボール1~6の数字
のボールを3つ取り出し
その取り出した数字を毎回表示させる
すべて表示されたら終了というDxで書こうと思っています。
頭が悪いのでどうやって関数を書いていいのかわかりません。
どなたかヒントだけでも教えていただけないでしょうか。

int n;//1~6の数字
int r[3];//3つ取り出す。
int p[6];//フラグスイッチ1~6が使われているかどうか
int i,j//ループの時に使う数字

conb(){//ここで処理する
/*ここがわからない
for(j=0;,j<3;,j++){//3つ取るという意味
for(i=0;,i<6;,i++){//1~6の数字を取る
p=1; //使われた数字にフラグをたて次は使えないようにする。
r[j]=i;//取り出したボールの順番と番号
       //箱に戻す
//組み合わせた種類を記憶?????
}
}
*/
}

main(){
while(){
conb();//
      for(i=0;,i<3;,i++){
   DrawFormatString(i*20,, White , "%d",r);//パチンコのスロットのように表示させる。
}
}
}

Re:コンビネーション

Posted: 2010年6月11日(金) 14:19
by たいちう
他にも色々やり方はありますが、、、
#include <stdio.h>

int main() {
    int i, j, k;
    for (i = 1; i <= 6; i++)
        for (j = 1; j <= 6; j++)
            for (k = 1; k <= 6; k++)
                if (i != j && i != k && j != k)
                    printf("%d %d %d\n", i, j, k);

    return 0;
}

Re:コンビネーション

Posted: 2010年6月11日(金) 15:24
by ねここんぶ
たいちうさん、ありがとうございます。
とても助かります^^
2,1,3の組み合わせも3,2,1の2,1,3同じとみなして
処理したいのですが
そこでずっと頭をかかえてます;;

頭の悪い私にご教授をお願いします;;

Re:コンビネーション

Posted: 2010年6月11日(金) 15:34
by たいちう
これでいいですか?
for (i = 1; i <= 6; i++)
    for (j = i + 1; j <= 6; j++)
        for (k = j + 1; k <= 6; k++)

Re:コンビネーション

Posted: 2010年6月11日(金) 15:47
by ねここんぶ
たいちうさん、
ありがとうございます。
自分、頭が悪いのでとても助かります。
でも、がんばりますのでまた機会があれば教えてください^^