確率にかんして

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
まあ

確率にかんして

#1

投稿記事 by まあ » 14年前

1から100までの数字の中から、確率的にではなく、正確に40個の数字を選び出す方法はありますか?

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

へろりくしょん

Re:確率にかんして

#2

投稿記事 by へろりくしょん » 14年前

とりあえず、0~39まで1で埋め、それ以降を0で埋めた後に、シャッフルすればいいのではないかと。

へろりくしょん

Re:確率にかんして

#3

投稿記事 by へろりくしょん » 14年前

コードにするとこんな感じでしょうか。

#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:確率にかんして

#4

投稿記事 by まあ » 14年前

>へろりさん

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

閉鎖

“C言語何でも質問掲示板” へ戻る