確率を計算する
戻る


[12]数学関数:rand

【確率を計算するには】

確率を計算するにはrand()という乱数という数学関数を使います。 詳しくは「 数学関数のrand項目 」をご覧ください。

では実際に使ってみましょう。

<?php
///////////////////////////////////////////
//PHPプログラムの動作テスト1
//数学関数:rand
///////////////////////////////////////////

//これは1/1000の確率で0〜999を選出する
echo rand(0,999). " ←は「0〜999」までのどれかの値は0.1%の出現率<br>\n";

//これは1/100の確率で0〜99を選出する
echo rand(0,99). " ←は「0〜99」までのどれかの値は1%の出現率<br>\n";

//これは1/10の確率で0〜9を選出する
echo rand(0,9). " ←は「0〜9」までのどれかの値は10%の出現率<br>\n";
?>

それではこのスクリプトはこちらで動作を確認してみてください。
なんか簡単すぎましたね。
rand(0,9)0,9の意味は「0から9までをランダムに出力しなさい」という意味です。 つまり0〜9までの10個の値のうち1つをランダムに出力しますので10%の確立となります。
これはrand(1,10)にしても同じ確立で値を得られますがあまりこういう使い方はしません。 なぜなら、これは配列に問題があるからです。 [1]PHPの基本:変数の使い方:配列で簡単に説明してしまいましたが、配列array()の中の配列先頭番号は0です。 つまり次のようなおみくじプログラムを作成した際に・・・
<?php
///////////////////////////////////////////
//PHPプログラムの動作テスト2
//数学関数:rand
//おみくじプログラム
///////////////////////////////////////////

//まず、おみくじの配列を作成する
$kuzi=array("大吉","吉","中吉","小吉","末吉","凶","大凶");

//おみくじの種類をカウントし、乱数にセットして引いた番号を変数にセット
$hit=rand(0,count($kuzi)-1);

//引いたおみくじを表示する
echo "あなたの今日の運勢は・・・<hr>";
echo "<font size=\"+2\" color=\"0000ff\">【<b>".$kuzi[$hit]."</b>】</font><hr>";
echo "・・・のようですよ!";
?>

$kuziという配列の各項目の場所を示すカウントは0からはじまりますので乱数の発生も0からでないと 最初の項目が選出されません。
それではこのスクリプトはこちらで動作を確認してみてください。
また、count($kuzi)で配列の数を数えていますが、このカウントは1から始まりますので-1をしないといけません。 (通常のカウントは0から始まりますが、配列をカウントする関数のcount()は1から始まってしまいます。)
確率はこういった簡単な使い方以外に結構複雑なものにも応用できますので、いろいろと試してみると面白い でしょう。
このサイトのJavaスクリプトのページで遊べるドリルなどはこの確率計算を多用しているんですよ。一度覗いてみてください。

この項はここで終わりです。



TOPへ