PHP は、n (m
##注: これは書籍「Programming Pearls」にも記載されており、タイトルは「n の範囲で m 個の非繰り返し乱数を効率的に生成する方法 (mGetting PHP プログラミングで始める マスターへ )
このアルゴリズムは、乱数そのものを取得するのではなく、乱数の位置 (配列の添字) を非常に巧妙に取得します。が選択された場合は、値の範囲から除外し、次回は残りの数値のみが選択されます。乱数の選択は 1 回の走査で完了するため、非常に効率的です。
function rand_num($num='200'){ for($i=0;$i<$num;$i++){ $n[$i] = $i; } for($i=0;$i<$num;$i++){ $rand = mt_rand($i,$num-1); //数组 随机数交换下标 if($n[$i] == $i){ $n[$i] = $n[$rand]; $n[$rand] = $i; } } }
以上がPHPの乱数は繰り返されませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。