n個の物からk個を選ぶプログラム

長さnの配列を全て0に初期化し、その後ランダムにk個の要素を1にする。

長さnの配列を全て0に初期化し、その後ランダムにk個の要素を1にする。

  • タグ:
  • タグはありません
#include<stdlib.h>
void randomSelect(int *flag, int n, int k){
int i, j, r;
srand((unsigned int)time(NULL));
for(i = 0; i < n; i++){
flag[i] = 0;
}
for(i = n; i > n - k; i--){
r = rand() % i;
for(j = 0; !(flag[j] == 0 && r == 0); j++){
if(flag[j] == 0) r--;
}
flag[j] = 1;
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX