PHP Conference Nagoya 2025

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

符号なし64ビット整数で構成される 256ビット(32バイト) の内部ステートが、 どのように与えられるかは seed のタイプに依存します。

タイプ 説明
null ランダムな32バイトのステートを、 CSPRNG を使って生成し、埋めます。
int seed を64ビットの符号なし整数と解釈し、 その値を SplitMix64 アルゴリズムに与えて生成した、 4つの連続した値でステートを埋めます。
string 32バイトの文字列を、4つのリトルエンディアン、 かつ符号なし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";

// $string を256ビットのシードに変換するために、SHA-256 で文字列をハッシュ化し、
// バイナリで出力します。
// 同じ文字列を使うと、同じランダムなシーケンスが生成されます。
$e = new \Random\Engine\Xoshiro256StarStar(
hash('sha256', $string, binary: true)
);

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

上の例の出力は以下となります。

6e013453678388c2
add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top