1から100までの数字の中から、確率的にではなく、正確に40個の数字を選び出す方法はありますか?
100入る配列aを用意して、aの中に40個1を記入、それ以外は0としたいのですが、方法が分かりません。分かる方がいましたら教えてください。よろしくお願いします。
確率にかんして
Re:確率にかんして
コードにするとこんな感じでしょうか。
#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; }