Random\Engine\Mt19937::__construct

(PHP 8 >= 8.2.0)

Random\Engine\Mt19937::__construct构造一个新的 Mt19937 引擎

描述

public Random\Engine\Mt19937::__construct(?int $seed = null, int $mode = MT_RAND_MT19937)

注意

由于 Mt19937(“梅森旋转器”)引擎只接受一个 32 位整数作为种子,因此即使 Mt19937 的周期非常大,为 219937-1,可能的随机序列数量也仅限于 232(即 4,294,967,296)。

当依赖于隐式或显式随机播种时,重复将在更早的时间出现。根据生日问题,在随机生成少于 80,000 个种子后,重复的种子以 50% 的概率出现。随机生成大约 30,000 个种子后,重复种子的概率为 10%。

这使得 Mt19937 不适合于重复序列不能以超过可忽略不计的概率出现的应用。如果需要可重复的播种,Random\Engine\Xoshiro256StarStarRandom\Engine\PcgOneseq128XslRr64 引擎都支持更大的种子,这些种子不太可能随机碰撞。如果不需要可重复性,Random\Engine\Secure 引擎提供密码学安全的随机性。

警告

此函数目前未记录;仅提供其参数列表。

参数

seed

用线性同余生成器生成的数值填充状态,该生成器以 seed 作为种子,该种子被解释为一个无符号的 32 位整数。

如果省略了 seed 或为 null,将使用一个随机的无符号 32 位整数。

mode

使用以下常量之一来指定要使用的算法实现。

警告

此功能已在 PHP 8.3.0 中弃用。强烈建议不要依赖此功能。

示例

示例 #1 Random\Engine\Mt19937::__construct() 示例

<?php
// 使用一个随机的 32 位种子。
$e = new \Random\Engine\Mt19937();

$r = new \Random\Randomizer($e);
?>
添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top