新しい xoshiro256** エンジンを作成する

# Random\Engine\Xoshiro256StarStar::__construct

(PHP 8 >= 8.2.0)

Random\Engine\Xoshiro256StarStar::__construct — 新しい xoshiro256** エンジンを作成する

### 説明

public function 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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open