記事の詳細

PHPでランダムに近い数値を出力する三つの方法をご紹介します!

いざ実装するときに少し迷うランダムな数値の出し方に関して。
出力の仕方はいろいろとありますが、自身が過去に使用したことのある三種類の出力方法をご紹介致します!
※本記事では1~100の範囲でランダムに近い数値を出す方法をご紹介致します。

mt_rand関数を使用する

もっとも簡単な方法は、mt_rand関数を使用してランダムな数値を出力する方法となります。
実際の使い方としては、下記のようなコードになります。

上記のコードを実行すると、1~100の間でランダムな数値を出力して表示します。

これが、ランダムに近い数値を取得する一つ目の方法となります。

microtime関数を使用する

次に簡単な方法としては、microtime関数を使用して数値を出力する方法となります。

microtime関数はランダムな数値を出力する関数ではなく、現在時刻を秒数で出力する関数になります。
microtime関数はマイクロ秒までの時間を出力するため、マイクロ秒の末尾二桁の数値を「ランダムな数値」として活用します。

厳密な意味での「ランダムな数値」とは異なりますが、マイクロ秒の数値を狙って取得することは難しいため、簡単なランダム値が欲しい場合に使用することがあります。

実際の使い方としては、下記のようなコードになります。

上記のコードを実行すると、1~100の間で数値を出力して表示します。

これが、ランダムに近い数値を取得する二つ目の方法となります。

mb5関数を使用する

三つ目の方法としては、mb5関数を使用して数値を出力する方法となります。

mb5関数はmd5ハッシュ値を出力する関数となります。
md5ハッシュ値は16進数の数値となりますので、16進数の数値の下二桁を切り取って、10進数に直した数値のさらに下二桁を切り取って「ランダムな数値」として活用します。

mb5関数はmd5ハッシュ値に変換するために文字列を入力する必要がありますので、今回はmicrotime関数で取得した値を入れてみましょう。

実際の使い方としては、下記のようなコードになります。

上記のコードを実行すると、1~100の間で数値を出力して表示します。

これが、ランダムに近い数値を取得する三つ目の方法となります。

ランダムに近い値を生成する方法はいろいろとあります

いかがでしたか?

今回ご紹介した三つの方法は、簡単な出力方法ではありますがそこそこ良い値が取れると思います。
完全にランダムな値を作成する事は難しいですが、mb関数を使用した方法のように、いくつかの関数を使用して値を作ることで、よりランダムに近い値を作成することは可能だと思います。

おそらくセキュリティ専門の方が見たら「こんなの法則性があってランダムな値とは違う!」というお叱りを受けそうな内容なので言及しておきますが…。
セキュリティ対策として使う場合の「ランダム値」はもっと厳密なものとなりますので、本記事のような方法で取得した値を使用するのは控えたほうが良いかもしれません…。

ではまた!

この記事であなたの課題を解決することができましたか?

疑問点があったり、解決できなかったことがありましたら、お気軽にご相談してください。

The following two tabs change content below.
網干 裕介

網干 裕介

コーダーの網干裕介(あぼしゆうすけ)と申します。webサイトは見た目が非常に重要なのですが、サイトを構成するソースコードも見た目が重要だと考えています。内も外も魅力的なコンテンツが作れる人物になれるよう、日々努力しています。

ほかの投稿も読んでみませんか?

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

仕事ではパソコンが使いこなせるのが当たり前

相模原市産業会館パソコン教室

AD

ページ上部へ戻る