challenge n人中m人が当選するくじ

n人の中から公平にm人を選ぶ、くじ引きプログラムを作ってください。

Posted feedbacks - C

srand(time(NULL)); sel1(M, N); って感じで
1
2
3
4
5
6
7
8
void sel1(unsigned long m, unsigned long n)
{
  unsigned long i, orgN=n;
  for(i=1; i<=orgN; ++i){
    if((double)rand()/(RAND_MAX+1) < (double)m/n){ printf("%lu\n", i);  --m; }
    --n;
  }
}

Index

Feed

Other

Link

Pathtraq

loading...