PHP Conference Japan 2024

Random\Engine\Xoshiro256StarStar::__construct

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::__construct建構新的 xoshiro256** 引擎

說明

public Random\Engine\Xoshiro256StarStar::__construct(字串|整數|null $seed = null)

警告

此函數目前沒有說明文件;僅提供其參數列表。

參數

seed(種子)

內部 256 位元(32 位元組)狀態(由四個無符號 64 位元整數組成)的播種方式取決於用作 seed 的類型。

類型 說明
null(空值) 使用 CSPRNG 生成的 32 個隨機位元組填充狀態。
int(整數) 使用 SplitMix64 演算法生成的四個連續值填充狀態,該演算法以 seed 作為無符號 64 位元整數進行播種。
string(字串) 透過將 32 位元組的 字串 解釋為四個小端序無符號 64 位元整數來填充狀態。

錯誤/例外

  • 如果 字串 seed 的長度不是 32 位元組,則會拋出 ValueError
  • 如果 字串 seed 由 32 個 NUL 位元組 ("\x00") 組成,則會拋出 ValueError

範例

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

<?php
// 使用隨機的 256 位元種子。
$e = new \Random\Engine\Xoshiro256StarStar();

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

範例 #2 從 字串 衍生種子

<?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