(PHP 8 >= 8.2.0)
Random\Engine\Xoshiro256StarStar::__construct — 建構新的 xoshiro256** 引擎
此函數目前沒有說明文件;僅提供其參數列表。
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