最初のメソッド
$FileID=date("Ymd-His") '-' rand(100,999); 20100903 - 132121-908 こんな乱数?>
2番目の方法
function randomkeys($length) {
$returnStr=''; $pattern = '1234567890abcdefgh ijklmnopqrstuvwxy zABCDEFGHIJKLOMNOPQRSTUVWXYZ' ;
for($ i = 0; $ i< $ length; $ i ++){
$ returnstr。= $ pattern {mt_rand(0、61)}; 4);
?>
3 番目のメソッド
function seed()
{list($msec, $sec) =explode(' ', microtime());
return (float) $sec
}
//乱数生成器のシードを播種し、srand 関数で呼び出します。シード関数の戻り値
srand(seed());
// 生成された乱数を出力します。乱数の範囲は 10 ~ 100 です。
?>次のものは異なりますか? 初心者にとっては、質問は単純すぎるかもしれません。 );
srand はシードです。設定されていない場合、デフォルトは 1 です
rand は通常、シードをパラメータとして使用する固定演算です
試してみるとわかりますが、シードを設定したり、固定シードを設定したりしないでください、 rand を実行します
その後、ブラウザを閉じて再度開き、再度 rand を実行します
結果は常に同じであることがわかります
まず rand() 関数について話しましょう、 rand([int min], [int max] ] ) この関数は、最小値と最大値の間の乱数を受け取ります。乱数の最大値と最小値の範囲が指定されていない場合、この関数は 0 から RAND_MAX までの乱数を自動的に選択します。
しかし、rand() 関数のみを使用する場合、乱数は非常に混沌としたものになります。乱数を取得して新しい乱数シードを構成する前に、毎回 srand() 関数を使用するのが最善です。
次の使用法を説明します (これら 2 つの関数の一般的な使用方法):
srand((double)microtime()*1000000);
microtime() は秒単位のミリ秒数なので、値はすべて 1000000 を掛けて整数に変換します
ワークフローは次のとおりです:
(1): まず、 give srand() unsigned_int 型の値である「シード」を提供します。
(2):_次に、rand() を呼び出します。これは、srand() に提供された値に基づいて乱数 (_0~32767 の範囲) を返します
(3): 必要なだけ rand を呼び出します () 、常に新しい乱数を取得します。
(4): srand() に新しい「シード」を提供できるときはいつでも、それによって rand() の「ランダム化」をさらに進めることができます。