逆関数法による指数分布に従う乱数生成
指数分布
指数分布の密度関数は次のとおりである。
逆関数法による指数分布に従う乱数生成
#/usr/bin/env perl use strict; use warnings; # 逆関数法による指数分布の生成 sub dexp { my $lambda = shift; my @x = @_; my @y; for my $xx (@x) { print "$xx"."\n"; push @y, -log($xx) / $lambda; } return \@y; } # 連続一様分布の配列作成 my @x; for my $i (1..100) { push @x, rand(1); } # 指数分布に従う乱数の生成 my $y = dexp(0.1,@x); # 出力 for my $i (@$y) { print "$i"."\n"; }