wikimedia / alea
PHP 版本的 (非加密) Alea 伪随机数生成器
1.0.0
2023-02-24 20:36 UTC
Requires
- php: >=7.4
Requires (Dev)
- mediawiki/mediawiki-codesniffer: 40.0.1
- mediawiki/mediawiki-phan-config: 0.12.0
- mediawiki/minus-x: 1.1.1
- ockcyp/covers-validator: 1.6.0
- php-parallel-lint/php-console-highlighter: 1.0.0
- php-parallel-lint/php-parallel-lint: 1.3.2
- phpunit/phpunit: 9.5.28
- wikimedia/update-history: 1.0.1
README
alea.php 是非加密 Alea 伪随机数生成器到 PHP 的移植。
Alea 被设计成非常快速(在 JavaScript 中),并生成非平台依赖的重复随机数集(当提供匹配的种子时)。给定可移植的种子(例如字符串或整数),由 JavaScript 版本的 alea 生成的数字将与这个 PHP 移植生成的数字完全匹配,反之亦然。
安装
此软件包可在 Packagist 上找到
$ composer require wikimedia/alea
使用方法
use Wikimedia\Alea\Alea; $prng = new Alea(); // add an optional seed parameter $nextRandom = $prng->random(); // or ->uint32() or ->fract53()
我们还可以通过 importState
和 exportState
方法同步两个 Alea PRNG(甚至跨平台)。
$prng1 = new Alea(200); $prng1->random(); $prng1->random(); $prng2 = Alea::createWithState( $prng1->exportState() ); assert( $prng1->random() === $prng2->random() ); assert( $prng1->random() === $prng2->random() ); assert( $prng1->random() === $prng2->random() );
致谢
Alea 代码是由 Johannes Baagøe 编写的(在 JavaScript 中),并由 coverslide 打包到 npm。
更多请参阅 Johannes 的网站。
PHP 的移植最初由 C. Scott Ananian 完成,版权所有 2019-2021 维基媒体基金会。
原始 alea 代码库和此移植都采用 MIT 许可证分发;有关更多信息,请参阅 LICENSE。