以前に複数の乱数を生成する方法についてお話しました。次に、PHP で N 個の非繰り返し乱数を生成する例を紹介します。興味がある方は参照してください。
この機能の実装は難しくありませんが、とても勉強になりました。
コードは次のとおりです | コードをコピー |
/** * 一定数の一意の乱数を生成します * @param int $min, $max は乱数の範囲を指定します * @param int $max * @param int $num は生成される数量を指定します * @return 配列 */ 関数 unique_rand($min, $max, $num) { $count = 0; $return = 配列();while ($count $return[] = mt_rand($min, $max); $return = array_flip(array_flip($return));$count = count($return); } シャッフル($return) $return }
mt_rand() 関数は乱数を生成するために使用されます。この関数は、rand() よりも平均して 4 倍の速度で乱数を生成します。 |
「flipメソッド」は配列内の重複した値を削除するために使用され、array_flip()を使用して配列のキーと値を2回交換します。このアプローチは、array_unique() を使用するよりもはるかに高速です。
www.bkjia.com