leigh / mt-rand
MT19937算法的PHP实现
0.1.0
2016-02-25 13:26 UTC
Requires
- php: >=5.5
Requires (Dev)
- phpunit/phpunit: ~5.0
This package is not auto-updated.
Last update: 2024-09-14 18:58:36 UTC
README
此库包含Mersenne Twister伪随机数生成算法的纯PHP实现。
有3个类可用
MersenneTwister\MT
这是按照算法作者定义的Mersenne Twister算法。
它可以在32位和64位的PHP构建上运行,并输出32位整数。
$mt = new \MersenneTwister\MT(); $mt->init(1234); // mt_srand(1234); $mt->int31(); // int31() per mt19937ar.c, positive values only $mt->int32(); // int32() per mt19937ar.c, high bit sets sign
MersenneTwister\MT64
这是按照算法作者定义的64位Mersenne Twister算法。
它**仅在64位PHP构建上运行**,并输出64位整数。
$mt = new \MersenneTwister\MT64(); $mt->init(1234); $mt->int63(); // int63() per mt19937-64.c, positive values only $mt->int64(); // int64() per mt19937-64.c, high bit sets sign
MersenneTwister\PHPVariant
这是在PHP 5.2.1+中定义的Mersenne Twister算法。它与原始算法略有不同,并输出不同的数字集
它可以在32位和64位的PHP构建上运行,并输出32位整数。
$mt = new \MersenneTwister\MT(); $mt->init(1234); // mt_srand(1234); $mt->int31(); // mt_rand(); // Breaks on huge ranges (i.e. PHP_INT_MIN, PHP_INT_MAX) // PHP also breaks on huge ranges, but breaks differently. $mt->rand(min, max); // mt_rand(min, max);