PHP でMersenne Twisterアルゴリズムを実装しようとしています。http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/VERSIONS/JAVASCRIPT/java-script.htmlから Javascript の実装を取得しました。
上記のjsコードからほぼ行ごとの変換を行いました。ただし、特定のシードに対して生成される乱数は、PHP では異なります。
PHP で実装する場合に従うべき特定の手順はありますか (データ型の選択など)。
以下のコードスニペット
/************* PHP ***************************/
<?php
require_once "mersenne_twister.php";
use mersenne_twister\twister;
$range = array(1,2,3,5,6,7,8,9,12,13,15);
$twister1 = new twister(1347299472.0059);
$t1 = $twister1->int32()* (1.0 / 4294967296.0) ;
$foo = $t1 * count($range);
echo $foo;
/************* Javascript ***************************/
var seed = 1347299472.0059;
var range = [1,2,3,5,6,7,8,9,12,13,15];// the numbers to chose from
var foo = Math.floor(genrand_float(range ) * range .length);
document.write(foo);
$twister1->int32() * (1.0 / 4294967296.0)と genrand_float(range) では異なる出力が得られます。
ありがとう、