|
こんにちは。
>例えば引数に35.6と入れると、35.6%の確率で1,それ以外なら0を返す
>といったような関数はどうすればいいのでしょうか?
0.00〜100.0 までの擬似乱数を求め、必要な%以下なら 1 を返しては
どうでしょう。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int i, cnt = 0;
double percent, r;
srand((unsigned) time(NULL));
printf("何%? ");
scanf("%lf", &percent);
for (i=0; i<10000; i++) {
/* r = 0.00〜100.00 の擬似乱数 */
r = ((double)rand() / (double)RAND_MAX * 10000) / 100.0;
if (r <= percent)
cnt++;
}
printf("%f\n", cnt / 100.0);
return 0;
}
|