ホームページ  >  記事  >  バックエンド開発  >  PHPで非反復乱数を生成する方法のまとめ

PHPで非反復乱数を生成する方法のまとめ

不言
不言オリジナル
2018-06-06 11:33:581980ブラウズ

この記事では、非反復乱数を生成する 5 つの方法をまとめています。方法 1、2、および 3 は私がよく使用する方法であり、方法 4 と 5 は簡単に使用できます。他にも方法はまだあります。一緒に進歩できるように、不足している方法について皆さんもぜひ教えてください

Web アプリケーション、WAP、モバイル アプリケーションのいずれであっても、乱数は重要な役割を果たします。私が最近関わったいくつかの小規模なプロジェクトでは、乱数またはランダム配列を扱う必要があることが多いため、PHP で非反復乱数を生成するための一般的な方法をいくつかまとめます。

方法 1:


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


$numbers = range (1,50);
//shuffle は配列の順序を乱します。
shuffle ($numbers ; :





コードをコピーします

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

$numbers = range (1,20);

//乱数ジェネレータのシードをまきます、オプション、テスト後に確認します 結果は影響しません

srand ((float)microtime()*1000000); shuffle ($numbers); //リストの最初の値をスキップします (インデックスは保存されます)

while (list (, $number) = each ($numbers)) {

echo "$number ";
?> =0,$end=20,$limit=5){
$rand_array=range($begin,$end) );
shuffle($rand_array);//既製の配列のランダム配置関数を呼び出します
return array_slice($rand_array, 0,$limit);//最初の $limit をインターセプトします
}
print_r(NoRand());
?>


上記は 1 ~ 20 の間で 5 つの非繰り返し値をランダムに生成できます

方法 4:


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

$tmp=array();
while(count($tmp)<5){
$tmp[]=mt_rand(1, 20);
$tmp=array_unique($tmp); tmp);
?> php
$tmp = range(1,30);
print_r(array_rand($tmp,10));
?>

これは、それを呼び出すよりも簡単かもしれません(追記:ステップの場合) size を範囲で指定する場合は、array_rand の第 2 パラメータが $tmp の長さを超えるかどうかに注意する必要があります。

PHP は非常に豊富な配列関数を提供します。もちろん、より良い方法がある場合は、この記事を紹介してください。


興味がありそうな記事:

WeChat 赤い封筒のランダム生成アルゴリズム php バージョン




WeChat 赤い封筒の金額アルゴリズムをランダムに生成する php バージョン



jquery+php 赤い封筒の金額コードをランダムに生成共有

宝くじプログラムやランダム広告に適したPHP確率アルゴリズムの例


phpの配列を介して指定されたレコードを効率的にランダムに抽出するアルゴリズム

phpで乱数を生成する3つの方法




PHP n 繰り返しのない乱数生成コード

PHPはランダムな文字列を生成します(3つの方法)

PHPのランダムな文字列生成コード(大文字と小文字を含む)

    PHPで数字と文字の組み合わせをランダムに生成する方法
  • PHP で実装されたランダムな赤いエンベロープ アルゴリズムの例

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

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