PHPのmicrotimeの精度によるmt_srandへの影響

このエントリーをはてなブックマークに追加
はてなブックマーク - PHPのmicrotimeの精度によるmt_srandへの影響
LINEで送る
Pocket

Screen Shot 2013-03-27 at 19.44.03

PHP5.3以下を使っていて、microtime()を元に乱数を生成している人は注意!

オフィシャルサイトのサンプルコード通りだとシードがランダムになりません。

ユニットテストで確率計算しているときに、「なかなか数字が分散しない」と思って調べました。

PHP5.2.14

これはやばい。

PHP5.3.15

あんまり分散しない。。。

PHP5.4.12

これは良い。

microtime関数のμタイム部分の精度が悪いのが原因ですなー。たぶん。
でも、PHPのソースコードは差分無かった。なので、実行環境の違いかも知れないなー。

このエントリーをはてなブックマークに追加
はてなブックマーク - PHPのmicrotimeの精度によるmt_srandへの影響
LINEで送る
Pocket

matsubokkuri

Please feel free to contact me via e-mail, twitter and facebook!

あわせて読みたい

コメントを残す