【mt_rand】PHPで乱数を生成する方法

PHPで乱数を発生させる方法について紹介します。

PHPで乱数を発生させる関数はrand()とmt_rand()がありますが、mt_rand()はrand()より高速に乱数を生成させることができます。また、mt_rand()の方がよりよい質の乱数を生成します。この記事ではmt_rand()を使用した乱数の生成方法を紹介します。

mt_rand()を使用して乱数を生成する

mt_rand()は乱数を生成することができ、ランダムな処理をしたいときに非常に便利な関数です。
たとえば、広告をランダムに表示させたり、ゲームの計算処理などでよく使用されます。

mt_rand()の書式は以下のようになります。

変数 = mt_rand(); // 0〜getrandmax()の間の数値を返す
変数 = mt_rand(最小値,最大値); // 最小値〜最大値までの乱数を返す

以下はmt_rand()を使用したコード例です。

<?php
for ($i = 1; $i <= 10; $i++) {
print mt_rand(0, 10) . "\n";
}
?>

上の実行例は以下のようになります。(結果は実行するたびに異なります。)

3
8
8
3
1
8
10
8
4
4

mt_rand()関数を使う上での注意点

mt_srand()で生成される乱数は「擬似乱数」であり、完全なランダムな値ではありません。乱数はシード値というものをもとに生成されます。シード値が同じ場合は必ず同じ乱数のパターンで生成されてしまいます。このようなことを防止するためにmt_rand()を使用して乱数を発生させるときは、mt_srand()を使用し、シード値を事前に初期化しておくことが重要です。

<?php
mt_srand(); 
$var = mt_rand()
?>