【PHP】ランダムな数値を出力する「rand()」「mt_rand()」
今回はPHPで使用できる、ランダムな数値を生成する「rand()」関数の使い方をメモしていきます。
RPGやギャンブルなど、ゲームプログラムでは結構使われる関数のようですね。
しっかり使いこなせるようになりたいです(`・ω・´)
目次
「rand()」 関数とは
ランダムな整数を生成するPHPの関数です。引数を指定しなければ非常に大きな整数をランダムで生成します。
引数に”最小値”と”最大値”を設定した場合、その間の範囲の数値をランダムに生成します。
|
1 2 3 4 |
<?php rand(引数無し);//非常に大きな数値範囲でランダム生成 rand(最小値,最大値);//最小値と最大値の間でランダム生成 ?> |
それではサンプルコードで見てみましょう。まずは引数なしで数値を生成してみます。
「rand()」 関数の引数無しで、数値をランダム生成する
|
1 2 3 4 5 6 7 8 9 10 11 |
<?php //rand(引数無し);//非常に大きな数値範囲でランダム生成 $test1 = rand(); $test2 = rand(); $test3 = rand(); echo "1回目:".$test1; echo "2回目:".$test2; echo "3回目:".$test3; ?> |
|
1 2 3 |
1回目:186778965 2回目:1327998563 3回目:785239905 |
「rand()」 関数の引数に、最小値と最大値を設定して、範囲内でランダム数値を生成する
|
1 2 3 4 5 6 7 8 9 10 11 |
<?php //rand(最小値,最大値);//最小値と最大値の間でランダム生成 $test1 = rand(0,10); $test2 = rand(0,10); $test3 = rand(0,10); echo "1回目:".$test1; echo "2回目:".$test2; echo "3回目:".$test3; ?> |
|
1 2 3 |
1回目:2 2回目:4 3回目:6 |
これを利用してサイコロの「1~6」や、トランプの「1~13」といった数値をランダム生成することができます。
「mt_rand()」 関数というランダムな数値を生成する関数もある?
実は 「rand()」 関数は古い、乱数発生器という技術が用いられているようで、様々な問題がありました。その中で問題とされていたのが処理速度が遅いという問題でした。mt_rand() 関数はこの点を改善した関数であり、「rand()」 関数の4倍もの処理速度があると言われています。
「rand()」 関数と使い方は全く同じなので、これから使用するならこちらのほうがよさそうですね。
終わりに
「rand()」関数の使用方法についてはまだまだ奥が深い使い方があります。例えば今回は記述していませんが、小数点以下の数値をランダムで生成したり、ランダムに文字列を生成したりすることができます。
これらの使い方も別記事でメモしていきたいと思っています。
それでは今回はここまでです。お疲れ様でした(・ω・)ノシ