次のプログラムは、指数分布 (λ = 2) に従う乱数を生成するためのものです。
#include <stdio.h> #include <stdlib.h> #include <math.h> int main() { double lambda = 2.0; double randomValue = (double)rand() / RAND_MAX; // 0から1までの一様乱数を発生させる double result = -log(1 - randomValue) / lambda; printf("%f\n", result); return 0; }
出力される結果は、λ = 2 の指数分布に従う乱数です。ここでは、乱数シードを扱っていませんが、適宜設定するとさらに良い結果が得られます。