【PHP8.x】mt_srand関数の使い方

作成日: 更新日:

mt_srand関数は、Mersenne Twister乱数生成器にシードを設定する関数です。Mersenne Twisterは、PHPで高品質な擬似乱数を生成するために使用されるアルゴリズムです。シードを設定することで、乱数列の開始点を指定できます。同じシード値を指定した場合、常に同じ乱数列が生成されるため、テストや再現性の必要な処理に役立ちます。シードを設定しない場合、PHPは自動的にシードを設定しますが、予測可能性が低くなります。

この関数は、引数として整数型のシード値を受け取ります。このシード値は、乱数生成器の内部状態を初期化するために使用されます。シード値が小さいほど、乱数列の周期が短くなる可能性があります。より複雑な乱数列を生成するためには、より大きなシード値を指定することを推奨します。

mt_srand関数は、rand関数で使用される乱数生成器には影響を与えません。rand関数には、srand関数を使用して別途シードを設定する必要があります。PHP 7.1.0以降では、mt_rand関数がrand関数の内部で使用されるため、srand関数の使用は推奨されなくなりました。mt_srand関数を使用することで、より予測可能で再現性のある乱数生成が可能になります。特に、セキュリティに関連する処理や、統計的なシミュレーションを行う際には、適切なシード値を設定することが重要です。

基本的な使い方

構文(syntax)

mt_srand(int $seed, int $mode = MT_RAND_MT19937): void

引数(parameters)

int $seed, int $mode = MT_RAND_MT19937

  • int $seed: 乱数生成器のシード値を指定する整数。この値によって生成される乱数列が決まります。
  • int $mode = MT_RAND_MT19937: 乱数生成アルゴリズムのモードを指定する整数。デフォルトはMT_RAND_MT19937です。

戻り値(return)

void

この関数は乱数生成器のシード値を設定しますが、直接的な戻り値はありません。

【PHP8.x】mt_srand関数の使い方 | いっしー@Webエンジニア