array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ja', ), 'this' => array ( 0 => 'function.gmp-random.php', 1 => 'gmp_random', ), 'up' => array ( 0 => 'ref.gmp.php', 1 => 'GMP 関数', ), 'prev' => array ( 0 => 'function.gmp-random-seed.php', 1 => 'gmp_random_seed', ), 'next' => array ( 0 => 'function.gmp-root.php', 1 => 'gmp_root', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ja', 'path' => 'reference/gmp/functions/gmp-random.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4 >= 4.0.4, PHP 5, PHP 7)
gmp_random — 乱数を生成する
この関数は PHP 7.2.0 で 非推奨 になり、PHP 8.0.0 で 削除 されました。この関数に頼らないことを強く推奨します。
乱数を生成します。乱数の範囲は 0 と (2 ** n) - 1 の間です。
n は limb * limiter
のビット数になります。
limiter
が負の場合、負の値が生成されます。
limb は GMP の内部機構です。limb のビット数は固定ではなく、 システムによって変化します。一般的には limb は 16 あるいは 32 ビットですが、それが保証されているわけではありません。
この関数が生成する値は、暗号学的にセキュアではありません。そのため、これを暗号や、戻り値を推測できないことが必須の値として使っては いけません。
暗号学的にセキュアな乱数が必要な場合は、Random\Randomizer を Random\Engine\Secure と一緒に使いましょう。簡単なユースケースの場合、random_int() と random_bytes() 関数が、オペレーティングシステムの CSPRNG を使った、 便利で安全な API を提供します。
ランダムな GMP 数を返します。
例1 gmp_random() の例
<?php
$rand1 = gmp_random(1); // 0 から 1 * limb のビット数までの間の乱数
$rand2 = gmp_random(2); // 0 から 2 * limb のビット数までの間の乱数
echo gmp_strval($rand1) . "\n";
echo gmp_strval($rand2) . "\n";
?>
上の例の出力は以下となります。
1915834968 8642564075890328087