Random\Engine\Xoshiro256StarStar::__construct

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::__construct构造一个新的 xoshiro256** 引擎

描述

public Random\Engine\Xoshiro256StarStar::__construct(string|int|null $seed = null)

警告

此函数目前没有文档;只有它的参数列表可用。

参数

seed

内部 256 位 (32 字节) 状态(由四个无符号 64 位整数组成)的种子方式取决于用作 seed 的类型。

类型 描述
null 使用 CSPRNG 生成 32 个随机字节填充状态。
int 使用以 seed(解释为无符号 64 位整数)为种子的 SplitMix64 算法生成四个连续的值填充状态。
string 通过将 32 字节的 string 解释为四个小端无符号 64 位整数来填充状态。

错误/异常

  • 如果 string seed 的长度不是 32 字节,则将抛出 ValueError
  • 如果 string seed 由 32 个 NUL 字节 ("\x00") 组成,则将抛出 ValueError

示例

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

<?php
// 使用随机 256 位种子。
$e = new \Random\Engine\Xoshiro256StarStar();

$r = new \Random\Randomizer($e);
?>

示例 #2 从 string 中推导出种子

<?php
$string
= "My string seed";

// 使用二进制输出对字符串使用 SHA-256 哈希,将
// $string 转换为 256 位种子。使用相同的字符串将导致
// 相同的随机序列。
$e = new \Random\Engine\Xoshiro256StarStar(
hash('sha256', $string, binary: true)
);

echo
bin2hex($e->generate()), "\n";
?>

上面的示例将输出

6e013453678388c2
添加注释

用户贡献的注释

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