php mt_srand より良い乱数ジェネレーターのシードを蒔く
mt_srand
(PHP 3 >= 3.0.6, PHP 4, PHP 5)
mt_srand -- より良い乱数ジェネレーターのシードを蒔く
説明
void mt_srand ( int シード)
seed を使用して乱数ジェネレーターをシードします。 PHP バージョン 4.2.0 以降、シード パラメータはオプションになり、空の場合は定数に設定されます。
例 1. mt_srand() example
code
// マイクロ秒でシード
function make_seed()
{
list ( $usec , $sec ) =explode ( ' ' , microtime () ) ;
return
注: PHP 4.2.0 以降、乱数ジェネレーターのシードに srand() または mt_srand() 関数を使用する必要はなくなり、自動的に行われるようになりました。
mt_rand()、mt_getrandmax()、および srand() を参照してください。
PHP mt_rand() 関数
定義と使用法
mt_rand() は、メルセンヌ ツイスター アルゴリズムを使用してランダムな整数を返します。
構文
<p class="sycode"> <p class="sycode"> mt_rand ( min , max ) </p> </p><p> </p>
多くの古い 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) です。
例
この例では、いくつかの乱数を返します:
<p class="sycode"> <p class="sycode"> <? php echo ( mt_rand ()); echo ( mt_rand ()); echo ( mt_rand ( 10 , 100 )); ?> </p> </p><p> </p>
<p class="sycode"> <p class="sycode"> 3150906288 513289678 35 </p> </p><p> </p><p> </p><p></p><p> </p>
Code
php
/* * $length: 乱数文字列の長さ
* $type: Generate乱数 Type
functionrandom( $length , $type = "" ) {
$chars = ! $type ? " ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz " : " 012 3456789abcdef " ; strlen ( $chars ) - 1 ;
" mt_srand (( double ) microtime () * 1000000 );
for ( $i = 0 ; $i $string .= $chars [ mt_rand ( 0 , $max )];
}
6437cb3a92b92643ead6