1
Mersenne Twister 알고리즘을 PHP로 구현하려고합니다. 나는 자바 스크립트 구현을 가져왔다. http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/VERSIONS/JAVASCRIPT/java-script.htmlPHP에서 MT 구현의 동일한 시드에 대해 서로 다른 출력이 있습니다.
나는 위의 js 코드에서 거의 라인 변환을했다. 그러나 주어진 seed에 대해 생성 된 난수는 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는 (범위) 다른 출력을 제공한다. mt_rand() 기능은 이미 메르 센 트위스터 알고리즘을 구현
mt_rand() 함수는 시드 값을 허용하지 않습니다. myown의 seed 값을 제공해야합니다. –
그런 다음,'mt_srand()'를 사용하거나 원래의 계획을 따르고 모든 것을 다시 구현할 수 있습니다. 그러나 도움이 필요하면 현재 코드를 제공해야합니다. –
http://kingfisher.nfshost.com/sw/twister/는 PHP 구현입니다. 자바 스크립트 구현은 @ https://gist.github.com/300494입니다. –