ホームページ >バックエンド開発 >PHPチュートリアル >PHP が複数の非反復乱数を生成するサンプル プログラム_PHP チュートリアル
PHP でのランダム データの生成は、mt_rand を使用して直接実現できます。非繰り返しの乱数を生成したい場合は、unique_rand 関数を使用します。一般的に使用される方法をまとめます。
コードは次のとおりです:
コードは次のとおりです | コードをコピー |
//範囲は 1 から 100 を配列にリストすることです
シャッフル ($numbers) |
コードをコピー
$numbers = 範囲 (1,20) | |
エコー "$number ";
}
?> |
コードをコピー
関数 NoRand($begin=0,$end=20,$limit=5){ | $rand_array=範囲($begin,$end) | shuffle($rand_array);//既製の配列のランダム配置関数を呼び出します
print_r(NoRand());
?>
|
印刷結合(',',$tmp); ?> | |||||||||||||
上記はすべて机上の話であり、実際の要件は次のとおりです 。投票対象作品は25作品あります。1回の投票で16作品を選択する必要があります。プログラマーが以前にミスを犯し、200 人のユーザーによって生成された投票シーケンスが空でした。では、このギャップをどのように埋めるのでしょうか? もちろん、上司に状況を報告してください。しかし、ここで議論しているのは、1 ~ 25 の非繰り返しの乱数を 16 個生成して埋める必要があるテクノロジーです。具体的に機能をどう設計するか?乱数を配列に格納し、配列内の重複する値を削除して、一定数の非反復乱数を生成します
いくつかの追加メモ: •mt_rand()関数は乱数を生成するために使用されます。この関数は、rand() よりも平均して 4 倍の速度で乱数を生成します。 •配列を返す前に、 shuffle() を使用して新しいキー名を配列に割り当て、キー名が 0 から n までの連続した番号であることを確認します。この手順を実行しないと、重複した値を削除するときにキー名が不連続になり、トラバーサルに問題が発生する可能性があります。
36 文字の 0 ~ z のいずれかを生成します。 getOptions() メソッドを呼び出すたびに文字が生成され、array[0] = 0、array[1] = 1、…、array[35] = z のように格納されます。
声明: この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。 |