emonkak / random
随机数生成器库
v3.0.0
2020-06-04 01:10 UTC
Requires
- php: >=7.1
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- php-coveralls/php-coveralls: ^2.0
- phpunit/phpunit: ^7.0
- vimeo/psalm: ~3.11.0
README
此库提供伪随机数生成器和概率分布。
要求
- PHP 7.1 或更高版本
许可证
MIT 许可证
示例
use Emonkak\Random\Engine\MT19937Engine; use Emonkak\Random\Distribution\NormalDistribution; $seed = 100; // Initial seed $engine = new MT19937Engine($seed); // 32bit Mersenne Twister engine $distribution = new NormalDistribution(0, 1); // Standard normal distribution // Generate a random number with the normal distribution. $distribution->generate($engine);
引擎
-
KnuthBEngine -
线性同余引擎 -
MinstdRand0Engine -
MinstdRandEngine -
MT19937Engine基于 Mersenne Twister 的随机生成器引擎。它与内置的
mt_rand()完全兼容。// Also, the initial seed algorithm is full-compatible to the built-in `mt_srand()` $engine = new MT19937Engine(/* $seed */); // Get a next random number from the current generator state. $number = $engine->next(); // as int $number = $engine->nextDouble(); // as float // Get the minimum and maximum number which generate a value by the engine. $minimum = $engine->min(); $maximum = $engine->max(); // Iterate the generator engine. foreach (new LimitIterator($engine, 0, 100) as $n) { }
-
MTRandWrapper内置
mt_rand()的包装器。 -
ShuffleOrderEngine -
XorShift128Engine根据 Xorshift 128 位算法的随机生成器引擎。
分布
BernoulliDistribution二项分布离散分布分布迭代器指数分布伽玛分布几何分布对数正态分布正态分布分段常数分布分段线性分布均匀整数分布均匀实数分布