メモ/phpでmt_randを試してみた



phpのmt_rand()がどの程度か試してみた。

コード
<?php

$a=0;
$b=0;
$c=0;
$d=0;
$e=0;
$f=0;
$i=0;

while(1){

	$ret=mt_rand(0,5);
	$ret=intval($ret);
	if($ret===0){
		$a++;
	}elseif($ret===1){
		$b++;
	}elseif($ret===2){
		$c++;
	}elseif($ret===3){
		$d++;
	}elseif($ret===4){
		$e++;
	}elseif($ret===5){
		$f++;
	}

	$i++;

	if($i%10000){
		echo "\rLOOP=$i\t\t0=$a\t1=$b\t2=$c\t3=$d\t4=$e\t5=$f";
	}else{
		echo "\rLOOP=$i\t\t0=$a\t1=$b\t2=$c\t3=$d\t4=$e\t5=$f\n";
	}

}

なかなか良い結果.

LOOP回数0がHITした数1がHITした数2がHITした数3がHITした数4がHITした数5がHITした数
LOOP=100000=17031=15712=17243=16224=17145=1666
LOOP=200000=34161=32322=34393=32744=33475=3292
LOOP=300000=51171=48832=51213=49684=49995=4912
LOOP=400000=67281=65332=68333=66144=66575=6635
LOOP=500000=84161=81872=84813=82914=83425=8283
LOOP=600000=101521=98572=102103=99744=99595=9848
LOOP=700000=118681=115152=118863=116144=116345=11483
LOOP=800000=135521=131782=135903=132354=132665=13179
LOOP=900000=151891=148542=152663=148884=149395=14864
LOOP=1000000=169071=165092=169433=165014=165335=16607
LOOP=1100000=185791=181972=186363=181244=181485=18316
LOOP=1200000=202841=198532=202803=198394=198105=19934
LOOP=1300000=219241=215552=219663=215034=214255=21627
LOOP=1400000=235491=231302=236943=231474=231845=23296
LOOP=1500000=252901=248252=253133=248394=248035=24930
LOOP=1600000=269021=265552=269203=265124=265105=26601
LOOP=1700000=285091=282382=286263=281724=281895=28266
LOOP=1800000=302341=299232=302123=298924=297975=29942
LOOP=1900000=319171=316362=318163=315004=315335=31598
LOOP=2000000=336201=332662=335303=332654=331165=33203
LOOP=2100000=353811=349442=352263=348924=346985=34859
LOOP=2200000=370061=366042=368973=365314=363675=36595
LOOP=2300000=386761=382792=385683=381874=380225=38268
LOOP=2400000=403391=399292=401893=398534=397565=39934
LOOP=2500000=420721=416192=418893=415214=413135=41586
LOOP=2600000=437101=432792=435773=431894=430225=43223
LOOP=2700000=454321=448962=452853=448004=446955=44892
LOOP=2800000=470581=466912=469493=464694=463755=46458
LOOP=2900000=486621=483772=485963=481734=480445=48148
LOOP=3000000=503771=500632=502633=498424=496185=49837

だいたいいい感じにランダムで帰ってきている感じ。 といってもちょいとばらついてるけど精度を求めない場合はいいかも。


[ 戻る ]

トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-10-03 (日) 15:58:33 (2423d)