「PHPでランダムな数字の生成」の編集履歴(バックアップ)一覧はこちら

PHPでランダムな数字の生成」(2015/08/01 (土) 12:11:12) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

PHPでランダムな数字を作っていきたいと思います。これを応用すれば、くじ引き的な機能をつけることができます。8月6日記事 ~ ~ 目次 #contents ~ ~ *二つのランダムな数字を作る関数 **rand関数 rand(); rand(min,max) と指定できます。minは0からmaxは32767まで指定できます。 ~ ~ **mt_rand関数 mt_rand(); mt_rand(min,max) と指定できます。minは0からmaxは2147483647まで指定できます。 ~ ~ *コード <?php echo rand() . "<br>"; echo rand() . "<br>"; echo rand(1, 100)."<br>"; echo getrandmax()."がrandの最大値<br><br>";//最大値取得 echo mt_rand() . "<br>"; echo mt_rand() . "<br>"; echo mt_rand(1, 100)."<br>"; echo mt_getrandmax()."がmt_randの最大値<br><br><br>";//最大値取得 ?> getrandmaxを使えば最大値を確認することができます。マニュアルみるとmt_rand()のほうが処理が4倍以上はやいそうです。 mt_randを使うといいと思います。[[PHPマニュアル:http://php.net/manual/ja/function.mt-rand.php]] ~ ~ 結果は以下のようになりました。 9170 27811 22 32767がrand関数の最大値 343663964 1805102422 84 2147483647がmt_rand関数の最大値 ~ ~ *何か作ってみる1。20%であたりになるくじ引き <?php //なにか作ってみる。20%の確率であたるクジ引き $point = mt_rand(1,100) . "<br>"; if($point % 5 == 0){//1から100までの乱数を作り、それを5で割ってあまりが0な場合はあたりにする。 echo "あたり"; }else{ echo "はずれ"; } ?> ~ ~ *何か作ってみる2。ガチャシステム <?php $point2 = mt_rand(1,100); echo $point2."<br>"; if($point2 < 30){ echo "雑魚キャラA"; }elseif($point2 < 50){ echo "雑魚キャラB"; }elseif($point2 < 70){ echo "雑魚キャラC"; }elseif($point2 < 80){ echo "レアキャラA"; }elseif($point2 < 90){ echo "レアキャラB"; }elseif($point2 < 95){ echo "超レアキャラA"; }elseif($point2 < 101){ echo "超レアキャラB"; } ?> ~ ~ *まとめ mt_rand関数を使って、最小値と最大値を設定すれば、意図する確率を生成することができると思います。 何も設定しないと0から2147483647となり5で割っても&color(red){純粋な5%}の数字にはならないと思います。 ~ ~ 以上
PHPでランダムな数字を作っていきたいと思います。これを応用すれば、くじ引き的な機能をつけることができます。8月1日記事 ~ ~ 目次 #contents ~ ~ *二つのランダムな数字を作る関数 **rand関数 rand(); rand(min,max) と指定できます。minは0からmaxは32767まで指定できます。 ~ ~ **mt_rand関数 mt_rand(); mt_rand(min,max) と指定できます。minは0からmaxは2147483647まで指定できます。 ~ ~ *コード <?php echo rand() . "<br>"; echo rand() . "<br>"; echo rand(1, 100)."<br>"; echo getrandmax()."がrandの最大値<br><br>";//最大値取得 echo mt_rand() . "<br>"; echo mt_rand() . "<br>"; echo mt_rand(1, 100)."<br>"; echo mt_getrandmax()."がmt_randの最大値<br><br><br>";//最大値取得 ?> getrandmaxを使えば最大値を確認することができます。マニュアルみるとmt_rand()のほうが処理が4倍以上はやいそうです。 mt_randを使うといいと思います。[[PHPマニュアル:http://php.net/manual/ja/function.mt-rand.php]] ~ ~ 結果は以下のようになりました。 9170 27811 22 32767がrand関数の最大値 343663964 1805102422 84 2147483647がmt_rand関数の最大値 ~ ~ *何か作ってみる1。20%であたりになるくじ引き <?php //なにか作ってみる。20%の確率であたるクジ引き $point = mt_rand(1,100) . "<br>"; if($point % 5 == 0){//1から100までの乱数を作り、それを5で割ってあまりが0な場合はあたりにする。 echo "あたり"; }else{ echo "はずれ"; } ?> ~ ~ *何か作ってみる2。ガチャシステム <?php $point2 = mt_rand(1,100); echo $point2."<br>"; if($point2 < 30){ echo "雑魚キャラA"; }elseif($point2 < 50){ echo "雑魚キャラB"; }elseif($point2 < 70){ echo "雑魚キャラC"; }elseif($point2 < 80){ echo "レアキャラA"; }elseif($point2 < 90){ echo "レアキャラB"; }elseif($point2 < 95){ echo "超レアキャラA"; }elseif($point2 < 101){ echo "超レアキャラB"; } ?> ~ ~ *まとめ mt_rand関数を使って、最小値と最大値を設定すれば、意図する確率を生成することができると思います。 何も設定しないと0から2147483647となり5で割っても&color(red){純粋な5%}の数字にはならないと思います。 ~ ~ 以上

表示オプション

横に並べて表示:
変化行の前後のみ表示: