PHP에서 반복 없이 난수를 얻는 방법: 1. [rand(min,max)] 함수를 사용하여 난수를 생성합니다. 2. [array_unique(arr)]를 사용하여 생성된 배열을 중복 제거합니다. 고유한 난수를 생성합니다.
PHP에서 반복 없이 난수를 얻는 방법:
가장 먼저 떠오르는 것은 실제로 난수를 생성하는 rand(min,max)
함수입니다. , mt_rand(min ,max)
는 난수를 더 빠르게 생성할 수 있습니다. rand(min,max)
函数产生随机数,实际上使用mt_rand(min,max)
能更加迅速的产生随机数。
其次使用array_unique(arr)
对生成的数组进行去重,实际上使用array_flip(array_flip(arr))
array_unique(arr)
를 사용하세요. 실제로 array_flip(array_flip(arr))
을 사용하면 더 빠르게 중복을 제거할 수 있습니다. 위의 두 가지 사항을 이해하면 약간 최적화된 함수를 작성할 수 있습니다. /** * 生成指定长度不重复的字符串. * * @param integer $min 最小值. * @param integer $max 最大值. * @param integer $len 生成数组长度. * * @return array */ function uniqueRandom($min, $max, $len) { if ($min < 0 || $max < 0 || $len) { throw new LogicException('无效的参数'); } if ($max <= $min) { throw new LogicException('大小传入错误'); } $counter = 0; $result = array(); while ($counter < $len) { $result[] = mt_rand($min, $max); $result = array_flip(array_flip($result)); $counter = count($result); } shuffle($result); return $result; }
/** * 生成指定长度不重复的字符串. * * @param integer $min 最小值. * @param integer $max 最大值. * @param integer $len 生成数组长度. * * @return array */ function uniqueRandom2($min, $max, $len) { if ($min < 0 || $max < 0 || $len < 0) { throw new LogicException('无效的参数'); } if ($max <= $min) { throw new LogicException('大小传入错误'); } if (($max - $min + 2) < $len) { throw new LogicException("传入的范围不足以生成{$len}个不重复的随机数}"); } $index = array(); for ($i = $min; $i < $max + 1; $i++) { $index[$i] = $i; } $startOne = current($index); $endOne = end($index); for ($i = $startOne; $i < $endOne; $i++) { $one = mt_rand($i, $max); if ($index[$i] == $i) { $index[$i] = $index[$one]; $index[$one] = $i; } } return array_slice($index, 0, $len); }
🎜관련 학습 권장사항: 초보부터 마스터까지 PHP 프로그래밍
위 내용은 PHP에서 반복 없이 난수를 얻는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!