指定した確率分布に従った乱数発生を効率的に行う「別名法 (alias method)」を Perl で実装してみた 2014-04-16-3 [Algorithm][Programming][学び] 取りうる値の個数が有限個の任意の離散分布に従う乱数を発生させる「別名法 (alias method)」を Perl で実装してみました。ロジックは下記参考文献に載っていたのそのままで、ソース中のコメントは引用となっています。 ■東京大学教養学部統計学教室 (編集), "自然科学の統計学", 東京大学出版会, 1992. 別名法は、例えば「大吉15%、中吉30%、吉30%、凶20%、大凶5%」の割合でランダムにおみくじを出すプログラムを書くときの効率的なアルゴリズムです。 深く考えない実装だと、 $r = rand(1) if ($r < 0.15) { return "大吉"; } elsif
![指定した確率分布に従った乱数発生を効率的に行う「別名法 (alias method)」を Perl で実装してみた](https://cdn-ak-scissors.b.st-hatena.com/image/square/c122c92f4e969bb2e6ac2065704663c352e9e97b/height=288;version=1;width=512/https%3A%2F%2Fasin.ta2o.net%2Fimg%2F4130420674-l.jpg)