ホームページ >バックエンド開発 >PHPの問題 >PHPでさまざまな乱数を生成する方法

PHPでさまざまな乱数を生成する方法

PHPz
PHPzオリジナル
2023-04-10 09:39:43792ブラウズ

PHP では、多くの場合、いくつかの操作を実行するために乱数を使用する必要があります。乱数の範囲を同じにする必要がある場合がありますが、毎回生成される乱数は異なります。では、さまざまな乱数を生成するにはどうすればよいでしょうか?

  1. タイムスタンプを乱数のシードとして使用する

現在の時刻のタイムスタンプを乱数生成のシードとして使用できます。タイムスタンプは、1970 年 1 月 1 日 00:00:00 GMT から現在時刻までの秒数です。たとえば、次のコードを使用して乱数を生成できます。

mt_srand(time());
$random_number = mt_rand(1, 100);

上記のコードでは、mt_srand(time()) は、現在のタイムスタンプをシード番号として使用することを意味します。 mt_rand(1, 100) は、1 から 100 までの乱数を生成することを意味します。

  1. ランダムな文字列をシードとして使用する

ランダムな文字列を乱数のシードとして使用できます。たとえば、次のコードを使用して乱数を生成できます。

$seed = str_split('abcdefghijklmnopqrstuvwxyz'
                 .'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
                 .'0123456789');
shuffle($seed);
$random_number = '';
foreach (array_rand($seed, 10) as $k) {
    $random_number .= $seed[$k];
}

上記のコードでは、最初にすべての可能な文字を含む文字列を文字配列 $seed に分割し、次にcall shuffle この関数はこの配列を再配置します。次に、array_rand 関数を使用して配列から 10 文字をランダムに選択し、最後にこれらの文字を乱数として連結します。

  1. PHP uniqid 関数を使用する

PHP の uniqid 関数は一意の ID を生成でき、それを使用して乱数を生成することもできます。たとえば、次のコードを使用して乱数を生成できます。

$random_number = uniqid(mt_rand(), true);

上記のコードでは、mt_rand() 関数はランダムな整数を返し、これは乱数のプレフィックスとして使用されます。 uniqid function 、true パラメータは、マイクロ秒のタイムスタンプをサフィックスとして使用することを示します。

概要

タイムスタンプ、ランダムな文字、および uniqid 関数を使用すると、さまざまな乱数を生成できます。実際に使用する場合は、状況に応じて適切な方法を選択する必要があります。乱数は真の乱数ではなく、乱数発生器に依存する疑似乱数であることに注意してください。したがって、真に安全な乱数が必要な場合は、特殊な暗号ライブラリが必要になります。

以上がPHPでさまざまな乱数を生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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