PHP 版本的 (非加密) Alea 伪随机数生成器

1.0.0 2023-02-24 20:36 UTC

This package is auto-updated.

Last update: 2024-09-12 06:16:15 UTC


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()

我们还可以通过 importStateexportState 方法同步两个 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。