課題 1-1: 累積分布密度関数の逆関数を使う手法で指数分布に従う乱数を生成

次のプログラムは、指数分布 (λ = 2) に従う乱数を生成するためのものです。

C コード:

#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 の指数分布に従う乱数です。ここでは、乱数シードを扱っていませんが、適宜設定するとさらに良い結果が得られます。