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;
	}
}