rand() を用いて、 与えられた実数値(
) に対して、 確率
で 1、確率
で 0 を返す関数を作るには どのようにするのがいいか
容易に想像できるだろうが、 if 文を使ってほぼこれを満たす関数を作ることはそれほど難しくはない。 例えば C の関数として書けば次のような具合である:
int rand_real(double r)
{
int x;
double y;
x = rand();
y = x/(double)RAND_MAX; /* 0.0 <= y <= 1.0 */
if (y <= r) return 1;
else return 0;
}
すなわち、竹野茂治@新潟工科大学