php note



 

PHP Note(トップページ) > 02.基本的な関数 > 07.数値処理 > rand関数 mt_rand関数







[Note] rand関数 mt_rand関数

乱数(ランダムな数)を発生させたいときに使うのが、このrand関数です。rand関数の使い方は、とても簡単で

<?php

 echo  rand();

?>

もしくは

<?php

 $data = rand();
 echo  $data;

?>

のように使います。

デフォルト(初期設定)では、最小値0、最大値32678(OSやディストリビューションにより異なる場合がある)の間のランダムな数が選ばれます。しかしながら、開発している際には、最小値0、最大値1とは最小値1、最大値100などの乱数を発生させたい場合がほとんどです。その場合は、

<?php

 echo rand(0,1);
 echo rand(1,100);

?>

もしくは

<?php

 $data = rand(0,1);
 $data2 = rand(1,100);

 echo $data;
 echo $data2;

?> 

などのようにすれば、任意の大きさの乱数を発生させることができます。

mt_rand関数は、機能としては同じですが、こちらの方が乱数としては優秀です。大量にランダムな数を生成する際の生成速度の面からも、またその乱数の数学的性質からも非常に優秀な乱数が生成されます。これはメルセンヌ・ツイスター法という手法で乱数を発生させるもので、現在、世の中にある乱数発生アルゴリズムの中でも、その乱雑性が極めて高いことが数学的に示されて論文として発表されている手法です。ちなみに開発者は日本人です。従来のいくつかの乱数発生法(例えば、線形合同法など)は、場合によっては、予測可能な数であったり、偏りが見られたりということが指摘されていました。

さて、本題に戻り、mt_rand関数ですが、単純にrand関数と置き換えるだけで使用することが可能です。

<?php

 echo mt_rand();

 $data mt_rand(0,100);
 echo $data;

?>

などのように用います。







[ カテゴリ一覧 ]

 |  01.基本構文  |  02.基本的な関数  |