広告
乱数の出力はボックスミューラー法。
1 2 3 4 5 6 7 8 9 10 11 12 |
#!/usr/bin/perl $Pi = 3.14159265359; sub RandBoxMuller { my ($u, $sigma) = @_; my ($r1, $r2) = (rand(), rand()); while ($r1 == 0) { $r1 = rand(); } return ($sigma * sqrt(-2 * log($r1)) * sin(2 * $Pi * $r2)) + $u; } |
広告
広告