PHPで乱数を発生させる方法について紹介します。
PHPで乱数を発生させる関数はrand()とmt_rand()がありますが、mt_rand()はrand()より高速に乱数を生成させることができます。また、mt_rand()の方がよりよい質の乱数を生成します。この記事ではmt_rand()を使用した乱数の生成方法を紹介します。
mt_rand()を使用して乱数を生成する
mt_rand()は乱数を生成することができ、ランダムな処理をしたいときに非常に便利な関数です。
たとえば、広告をランダムに表示させたり、ゲームの計算処理などでよく使用されます。
mt_rand()の書式は以下のようになります。
1 |
変数 = mt_rand(); // 0〜getrandmax()の間の数値を返す |
1 |
変数 = mt_rand(最小値,最大値); // 最小値〜最大値までの乱数を返す |
以下はmt_rand()を使用したコード例です。
1 2 3 4 5 |
<?php for ($i = 1; $i <= 10; $i++) { print mt_rand(0, 10) . "\n"; } ?> |
上の実行例は以下のようになります。(結果は実行するたびに異なります。)
1 2 3 4 5 6 7 8 9 10 |
3 8 8 3 1 8 10 8 4 4 |
mt_rand()関数を使う上での注意点
mt_srand()で生成される乱数は「擬似乱数」であり、完全なランダムな値ではありません。乱数はシード値というものをもとに生成されます。シード値が同じ場合は必ず同じ乱数のパターンで生成されてしまいます。このようなことを防止するためにmt_rand()を使用して乱数を発生させるときは、mt_srand()を使用し、シード値を事前に初期化しておくことが重要です。
1 2 3 4 |
<?php mt_srand(); $var = mt_rand() ?> |