題名:乱数の生成における乱数
報告者:ログ
乱数はその名の通り、ランダムな数であり、平易に言えば、でたらめな数である。しかしながら、コンピューターにおける乱数の生成は、疑似乱数が用いられ、その出現した値には、でたらめとは言えない印象もある。そのため、それを払拭すべく、乱数の生成にはいろいろな方法が考案されてきた1)。
プログラミングに際して、この乱数を生成させる関数は様々ある。ここでは、例えば、JAVA言語であれば、Math.random( )がある。しかしながら、この関数は、0~1までの間の値となるために、0~9の整数を求めるには、以下の様な方法が用いられる2)。
for (var i = 0 ; i 10 ; i++){ print(Math.floor(Math.random ( ) * 10) + 1); } このプログラムは、10回繰り返して、出た値に10をかけ、それをまるめて0~9の整数として出力することを意味する。そこで、文献3)に従って、これを8000回実施して、0~9の整数の乱数を生成すると、 0:804回 1 : 799回 2 : 852回 3 : 819回 4 : 836回 5 : 790回 6 : 751回 7 : 754回 8 : 811回 9 : 784回
図表のようになる。上は得られた値であり、下の図は横軸が乱数の値、縦軸がその出現回数となる。これらを見て分かるように、乱数の出現回数には偏りがあり、生成した乱数自体も乱数であることがよく分かる。
特定研究員 ナポリたんでも、記事をランダムに表示させる、あるいは、曲をランダムに表示させるような乱数の応用を実施している。しかしながら、その背景には、上記のように乱数のさらなる乱数が潜んでいることに気をつけなければならない。ただし、運命のサイコロも、時には偏り、時には何かが潜んでいる。そのことも大いに気をつけたいところではある(No.155を参照)。
1) 野村久光, テンシリリックンシラ, 池田心: 不満を抱かせにくいゲーム用擬似乱数列の生成と利用. 第9回 E&C シンポジウム. 2015.
2) http://www.ajaxtower.jp/js/math_class/index8.html (閲覧2016.3.9)
3) http://www.ajaxtower.jp/js/math_class/sample8_1.html (閲覧2016.3.9)