8 最後に

結局今回は、(2) で (も (5) でも) それなりに妥当であることがわかったが、 さらに改善したものとして、$y_6$ のように rand() を 2 回使う方法もあり、 これは $y_2$ よりもはるかに均等になる。

しかし、通常はこのような方法で精度を向上しようとしても、 疑似乱数 rand() の乱数としての質 (ランダムさ) が問題になるだろうし、 むしろそちらの方の影響の方が強いのではないかとも思う。 よって、通常は単に $y_2$ を使っておけば十分だろうと思う。

また、0.0 以上 1.0 未満の実数の乱数を返す drand48() のような実装を使って、

  y=(int)(drand48()*L+1);
のようにすればもっと楽だし、多分それなりに品質もよいのだろうと思う。

竹野茂治@新潟工科大学
2007年6月22日