2番目の方法 2番目の方法

ホームページ  >  記事  >  バックエンド開発  >  PHP で乱数と文字を取得する手順の完全なリスト

PHP で乱数と文字を取得する手順の完全なリスト

WBOY
WBOYオリジナル
2016-06-13 13:01:581241ブラウズ

PHP で乱数と文字を取得するメソッドの完全なリスト

最初の方法

$FileID=date("Ymd-His") . rand(100,999);

//$FileID は 20100903-132121-908 のような乱数です

?>

2 番目の方法

関数randomkeys($length) {
$returnStr='';
$pattern = '1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLOMNOPQRSTUVWXYZ';
for($i = 0; $i $returnStr .= $pattern {mt_rand (0, 61)} //php 乱数を生成します
; }
$returnStr;
を返す }
エコーランダムキー(4);
?>

3 番目の方法

//シードユーザー定義関数はマイクロ秒をシードとして使用します

関数シード()

{

list($msec, $sec) =explode(' ', microtime());

return (float) $sec;

}

//乱数ジェネレーターのシードを播種し、srand 関数を使用してシード関数の戻り結果を呼び出します

srand(seed());

//生成された乱数を出力します。乱数の範囲は 10 ~ 100 です

エコーランド(10,100);

?>

上の質問と下の質問は違いませんか? どちらも 10 ~ 100 の数字をランダムに出力します。初心者にとっては、質問が単純すぎるかもしれません (笑)。

エコーランド(10,100);

?>

mt_rand(10,100);


srand はシードです。設定されていない場合、デフォルトは 1 です

rand は通常、シードをパラメータとして使用する固定演算です

試してみるとわかります。シードを設定したり、固定シードを設定したりせずに rand

を実行します。

次にブラウザを閉じて再度開き、rand を実行します

結果は常に同じであることがわかります

まず、rand() 関数について説明します。rand([int min], [int max]) この関数は、最小値と最大値の間の乱数を受け取ります。乱数の最大値と最小値の範囲が指定されていない場合、この関数は 0 から RAND_MAX までの乱数を自動的に選択します。

しかし、rand() 関数のみを使用すると、乱数が非常に乱数になります。乱数を取得して新しい乱数シードを構成する前に、毎回 srand() 関数を使用するのが最善です。

次の使用法を説明します (これが、これら 2 つの関数の一般的な使用方法です):

srand((double)microtime()*1000000);

$rand_number= rand();

microtime() は、現在のミリ秒とタイムスタンプの 2 つの値を返します。乱数を抽出したい場合、(double)microtime() は現在のミリ秒の値のみを返します。

Microtime() はミリ秒単位の秒数なので、値はすべて 1000000 を掛けて整数に変換します。



彼らのワークフローは次のとおりです:

(1): まず、unsigned_int 型の値である「シード」を srand(); に提供します。

(2):_次に、rand() を呼び出します。これは、srand() に提供された値に基づいて乱数 (_0 ~ 32767 の範囲) を返します

(3): rand() を必要な回数だけ呼び出して、新しい乱数を継続的に取得します。

(4): 新しい「シード」をいつでも srand() に提供できるため、rand() の

がさらに「ランダム化」されます。

結果を出力します。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。