반복 없이 난수 생성: 종합 가이드
Yelp 목록을 무작위로 생성하는 웹 사이트를 개발하려는 과정에서 다음과 같은 방법을 찾습니다. 반복이 발생하기 전에 20개 목록이 모두 한 번 표시되도록 합니다. 이 문제를 해결하기 위한 다양한 접근 방식을 살펴보겠습니다.
PHP의 rand(0, 19) 접근 방식
현재 구현에서는 PHP의 rand(0, 19)를 사용하여 다음을 생성합니다. Yelp 목록을 선택하기 위한 임의의 색인입니다. 그러나 이 방법에는 숫자가 반복될 수 있다는 제한이 있습니다. 이를 극복하려면 좀 더 정교한 접근 방식이 필요합니다.
숫자 범위 섞기
효과적인 해결책 중 하나는 목록 지수를 나타내는 숫자 범위를 섞는 것입니다. 이는 다음과 같이 range() 및 shuffle()을 사용하여 달성할 수 있습니다.
<code class="php">$numbers = range(0, 19); shuffle($numbers);</code>
이렇게 하면 0부터 19까지의 숫자가 무작위 순서로 포함된 배열이 생성됩니다.
다음을 사용하는 대체 솔루션 RandomGen() 함수
또 다른 접근 방식은 최소값, 최대값 및 수량을 매개변수로 받아들이는 사용자 정의 RandomGen() 함수를 사용하는 것입니다. 지정된 범위 내에서 고유한 난수 목록을 생성합니다.
<code class="php">function randomGen($min, $max, $quantity) { $numbers = range($min, $max); shuffle($numbers); return array_slice($numbers, 0, $quantity); } print_r(randomGen(0, 20, 20)); // generates 20 unique random numbers</code>
사용된 숫자 저장 및 데이터베이스에 업데이트
모든 목록이 표시되지 않도록 하려면 반복하면 표시된 목록을 데이터베이스에 저장할 수 있습니다. 무작위 목록을 표시할 때마다 해당 ID가 데이터베이스의 항목과 일치하는지 확인하세요. 그렇지 않은 경우 목록을 표시하고 해당 ID를 데이터베이스에 추가하십시오. 모든 목록이 표시될 때까지 이 과정을 반복합니다.
이 방법을 사용하면 반복이 발생하기 전에 각 목록이 정확히 한 번 표시됩니다.
위 내용은 포괄적인 목록 Randomizer를 위해 반복 없이 난수를 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!