関数・クラス解説
mt_rand
version:PHP 4, PHP 5, PHP 7 (公式)メルセンヌ・ツイスター乱数生成器を介して乱数値を生成する
公式リファレンス
書式
mt_rand ( ) : int
mt_rand ( int $min , int $max ) : int
説明
警告
この関数が生成する値は、暗号学的に安全ではありません。そのため、これを暗号として使ってはいけません。暗号学的に安全な値が必要な場合は、random_int() か random_bytes() あるいは openssl_random_pseudo_bytes() を使いましょう。
古い libc の多くの乱数発生器は、怪しげであるか特性が不明であったりし、 また低速でした。 mt_rand() 関数は、古い rand() の代替品となるものです。 この関数は、その特性が既知の乱数生成器 » メルセンヌ・ツイスター を使用し、 平均的な libc の rand()よりも 4 倍以上高速に乱数を生成します。
オプションの引数 min,max を付けずに コールした場合、mt_rand() は 0 から mt_getrandmax() の間の擬似乱数値を返します。 例えば、5 から 15 まで(端点を含む)の間の乱数値を得たい場合には mt_rand(5, 15) としてください。
パラメータ
- min
- オプションで指定する、返される値の最小値 (デフォルトは 0)。
- max
- オプションで指定する、返される値の最大値 (デフォルトは mt_getrandmax())。
返値
min (あるいは 0) から max (あるいは mt_getrandmax()、それぞれ端点を含む) までの間のランダムな整数値を返します。 max が min より小さい場合は FALSE を返します。
注意
警告 min から max までの幅を mt_getrandmax() の範囲内におさめる必要があります。 つまり、(max - min) <= mt_getrandmax() でなければいけないということです。この範囲をこえてしまうと、 mt_rand() が返す値のランダム性が、 本来あるべき姿よりも低くなってしまいます。警告 min から max までの幅を mt_getrandmax() の範囲内におさめる必要があります。 つまり、(max - min) <= mt_getrandmax() でなければいけないということです。この範囲をこえてしまうと、 mt_rand() が返す値のランダム性が、 本来あるべき姿よりも低くなってしまいます。
更新履歴
バージョン | 説明 |
---|---|
7.2.0 | mt_rand() 関数の モジュロバイアスに関するバグが 修正されました。 これは、特定のシードを用いて生成したシーケンスは、64bit マシン上での PHP 7.1 と出力が異なる可能性があることを意味します。 |
7.1.0 | rand() は、mt_rand() の エイリアスになりました。 |
7.1.0 | mt_rand() は、固定の、正しいバージョンのメルセンヌツイスタ の アルゴリズム を使うように 更新されました。 古い振る舞いに戻すには、 mt_srand() 関数の第二引数に MT_RAND_PHP を指定して使ってください。 |
サンプル
例1 mt_rand() の例
echo mt_rand() . "\n";
echo mt_rand() . "\n";
echo mt_rand(5, 15);
上の例の出力は、たとえば以下のようになります。
1604716014
1478613278
6
参考
ワード検索
※入力キーワードが、関数名・説明文・タグに含まれるものを検索関数名アルファベット別
最終更新一覧
●stristr
大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却
●stripslashes
バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
●stripos
大文字小文字を区別せずに文字列が最初に現れる位置を取得する
●stripcslashes
addcslashes() でクォートされた文字列をアンクォートする
●strip_tags
文字列から HTML と PHP のタグを除去して返却
●strcspn
指定した文字が最初に現れる位置を調べる
●strcoll
ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する
●strcmp
2つの文字列を比較し同じか(あるいは大小)を判定する
●strchr
strstr() のエイリアス
●strcasecmp
2つの文字列を比較(大文字小文字を区別せず同じとみなす)
カテゴリー一覧
PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール