PHPでは、rand関数を用いて、乱数を生成することができます。
乱数とは、みなさんもよくご存じのように、ランダムな数字のことをいいます。
rand関数を実行すると、そのたびに前回値とは異なるランダム数字を取得することができます。
例えば、rand関数を1回実行すると、「10236」という数値が生成されます。また、2回目に実行すると「31472」というように異なった数値が生成されます。
今回は、rand関数を使って、乱数を生成する方法について解説します。
引数指定しない乱数の生成
説明
引数を指定しないでrand関数を実行すると、0以上で乱数の最大値以下の数値を返します。
乱数の最大値は、実行する環境によって異なります。
書式
rand( )
範囲を指定した乱数の生成
説明
乱数の範囲を指定することができます。rand関数の引数に0から20を指定して実行すると、0から20までの範囲で乱数を発生します。
書式
rand( n , m )nは最小値、mは最大値
奇数や偶数の乱数の生成
説明
引数を2倍にしたり、2倍-1することにより、乱数を、偶数や奇数にしぼって発生させることができます。
たとえば、
rand( 1 , 50 )*2 を実行すると、2から100までの偶数をランダムに生成します。
rand( 1 , 50 )*2-1 を実行すると、1から99までの奇数をランダムに生成します。
書式
rand( n , m )*2 指定した範囲の偶数を生成する。 rand( n , m )*2-1 指定した範囲の奇数を生成する。
使用例
それでは、実際にrand関数を使用して、乱数を生成するプログラムを作成してみましょう。
サンプルプログラム1(引数なし)
<?php echo'<p>','乱数を生成します。','</p>'; echo'<p>','1回目 乱数 = ',rand(),'</p>'; echo'<p>','2回目 乱数 = ',rand(),'</p>'; echo'<p>','3回目 乱数 = ',rand(),'</p>'; echo'<p>','4回目 乱数 = ',rand(),'</p>'; ?>
実行結果
1回目 乱数 = 8174
2回目 乱数 = 19599
3回目 乱数 = 23324
4回目 乱数 = 805
サンプルプログラム2(範囲指定された乱数の生成)
<?php echo'<p>','範囲(0から2)指定して、乱数を生成します。','</p>'; echo'<p>','1回目 乱数 = ',rand(0,2),'</p>'; echo'<p>','2回目 乱数 = ',rand(0,2),'</p>'; echo'<p>','3回目 乱数 = ',rand(0,2),'</p>'; echo'<p>','4回目 乱数 = ',rand(0,2),'</p>'; ?>
実行結果
1回目 乱数 = 2
2回目 乱数 = 0
3回目 乱数 = 1
4回目 乱数 = 0
サンプルプログラム3(乱数を利用したじゃんけんゲーム)
<?php echo'<p>','0:グー、1:チョキ、2:パー','</p>'; echo '<img src="item',rand(0,2),'.png">'; >
グー(item0.png)、チョキ(item1.png)、パー(item2.png)の画像ファイルをそれぞれ用意します。
プログラムを実行するたびに、発生した乱数から画像ファイル名を編集し、ファイル名に応じた画像を表示させるというものです。
実行結果3(生成された乱数に応じて、グー、チョキ、パーが変わります。)
おわりに
いかがでしたでしょうか。
乱数の生成をすることによって、いろいろな活用の仕方ができそうです。
今回のサンプルプログラムでは、0,1,2の範囲で発生させた乱数に応じて、「グー」、「チョキ」、「パー」を表示するようにしましたが、ほかにもいろいろなゲームができそうです。
ぜひ一度、工夫しながら、使ってみてください。