ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルの関数 rand と mt_rand の違いの比較

PHP_PHP チュートリアルの関数 rand と mt_rand の違いの比較

WBOY
WBOYオリジナル
2016-07-21 15:13:45838ブラウズ

PHP 関数 rand と mt_rand

mt_rand() は rand() より 4 倍高速です

古い libc 乱数ジェネレーターの多くは、いくつかの不確実で未知の特性を備えており、非常に遅いです。 PHP の rand() 関数は、デフォルトで libc 乱数ジェネレーターを使用します。 mt_rand() 関数は非公式にこれを置き換えるために使用されます。この関数は、メルセンヌ ツイスターの既知の機能を乱数生成器として使用しており、mt_rand() は libc が提供する rand() よりも平均して 4 倍高速に乱数値を生成できます。

mt_rand()はrand()より4倍高速です

mt_rand — より良い乱数を生成します

(PHP 3 >= 3.0.6, PHP 4, PHP 5)

int mt_rand ( [int min, int max ] )

多くの古い libc 乱数生成器には、不確実で未知の特性があり、非常に遅いです。 PHP の rand() 関数は、デフォルトで libc 乱数ジェネレーターを使用します。 mt_rand() 関数は非公式にこれを置き換えるために使用されます。この関数は、メルセンヌ ツイスターの既知のプロパティを乱数ジェネレーターとして使用し、libc が提供する rand() よりも平均して 4 倍高速に乱数値を生成できます。

オプションのパラメータ min と max が指定されていない場合、 mt_rand() は

0 から RAND_MAX までの擬似乱数を返します。

たとえば、5から15まで(両端を含む)の乱数が必要な場合は、mt_rand(5, 15)を使用します。

注: PHP 4.2.0 以降、srand() または mt_srand() 関数を使用して乱数ジェネレーターにシードを与える必要はなくなり、自動的に行われるようになりました。

rand — ランダムな整数を生成します

(PHP 3, PHP 4, PHP 5)

int rand ( [int min, int max] )

オプションのパラメータ min と max が指定されていない場合、 rand() は戻ります0 RAND_MAX と RAND_MAX の間の擬似乱数の整数。たとえば、5 から 15 までの範囲の乱数が必要な場合は、rand(5, 15) を使用します。

注: 一部のプラットフォーム (Windows など) では、RAND_MAX は 32768 のみです。 32768 より大きい範囲が必要な場合は、min パラメーターと max パラメーターを指定して RAND_MAX より大きい数値を生成するか、代わりに mt_rand() の使用を検討してください。

注: PHP 4.2.0 以降、srand() または mt_srand() 関数を使用して乱数ジェネレーターにシードを与える必要はなくなり、自動的に行われるようになりました。

mt_rand の定義と使用法

mt_rand() は、メルセンヌ ツイスター アルゴリズムを使用してランダムな整数を返します。

構文
mt_rand(min,max) 説明
オプションのパラメータminとmaxが指定されていない場合、mt_rand()は0からRAND_MAXまでの擬似乱数を返します。たとえば、5 から 15 までの範囲の乱数が必要な場合は、mt_rand(5, 15) を使用します。

古い libc 乱数ジェネレーターの多くは、不確実で未知の特性を備えており、速度が遅いです。 PHP の rand() 関数は、デフォルトで libc 乱数ジェネレーターを使用します。 mt_rand() 関数は非公式にこれを置き換えるために使用されます。この関数は、乱数生成器としてメルセンヌ ツイスターの既知の機能を使用しており、libc が提供する rand() よりも平均して 4 倍高速に乱数値を生成できます。
ヒントとメモ
注: PHP 4.2.0 以降、srand() 関数または mt_srand() 関数を使用して乱数ジェネレーターをシードする必要はなくなり、自動的に行われるようになりました。

注: 3.0.7 より前のバージョンでは、最大は範囲を意味します。これらのバージョンで上記の例と同じ 5 から 15 までの乱数を取得するには、短い例は mt_rand (5, 11) です。


この例では、いくつかの乱数を返します:

コードをコピー コードは次のとおりです:

echo(mt_rand()); );
echo(mt_rand(10,100));
?>

出力は次のようになります:

3150906288
513289678
35

http://www.bkjia.com/PHPjc/326426.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/326426.html技術記事 PHP 関数 rand および mt_rand mt_rand() は rand() より 4 倍高速です。多くの古い libc 乱数ジェネレーターには不確実で未知の特性があり、非常に遅いです。 PHP の rand() 関数はデフォルトで使用します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。