ページ 11

確率にかんして

Posted: 2010年10月20日(水) 13:55
by まあ
1から100までの数字の中から、確率的にではなく、正確に40個の数字を選び出す方法はありますか?

100入る配列aを用意して、aの中に40個1を記入、それ以外は0としたいのですが、方法が分かりません。分かる方がいましたら教えてください。よろしくお願いします。

Re:確率にかんして

Posted: 2010年10月20日(水) 13:59
by へろりくしょん
とりあえず、0~39まで1で埋め、それ以降を0で埋めた後に、シャッフルすればいいのではないかと。

Re:確率にかんして

Posted: 2010年10月20日(水) 14:06
by へろりくしょん
コードにするとこんな感じでしょうか。

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    int i, a[100] = {0};

    for(i = 0; i < 40; i++) a = 1;
    for(i = 0; i < 100; i++){
        int tmp, p = rand() % 100;

        tmp = a;
        a = a[p];
        a[p] = tmp;
    }

    for(i = 0; i < 100; i++){
        printf("%d, ", a);
        if(i % 10 == 9) printf("\n");
    }

    return 0;
}

Re:確率にかんして

Posted: 2010年10月20日(水) 14:14
by まあ
>へろりさん

コードまで書いてくださりありがとうございます!
良く解りました!!