현재 위치: > 최신 기사 목록> srand () 함수를 통해 PHP 랜덤 번호의 분포 범위를 제어하는 ​​방법은 무엇입니까? 실용적인 기술을 공유하십시오

srand () 함수를 통해 PHP 랜덤 번호의 분포 범위를 제어하는 ​​방법은 무엇입니까? 실용적인 기술을 공유하십시오

gitbox 2025-09-23
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 머리말:기사의 내용과 관련이없는 예 PHP 암호</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"환영 PHP 랜덤 번호 생성기 샘플 프로그램!\n"</span></span><span>;
</span><span><span class="hljs-variable">$date</span></span><span> = </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">"Y-m-d H:i:s"</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"현재 시간:"</span></span><span> . </span><span><span class="hljs-variable">$date</span></span><span> . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">str_repeat</span></span><span>(</span><span><span class="hljs-string">"-"</span></span><span>, </span><span><span class="hljs-number">40</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>

---

</span><span><span class="hljs-comment"># 통과하는 방법 srand() 제어 기능 PHP 랜덤 숫자의 분포 범위?실용적인 기술을 공유하십시오</span></span><span>

존재하다 PHP 일반적으로 난수를 생성합니다 `</span><span><span class="hljs-title function_ invoke__">rand</span></span><span>()` 또는 `</span><span><span class="hljs-title function_ invoke__">mt_rand</span></span><span>()` 기능,그리고 `</span><span><span class="hljs-title function_ invoke__">srand</span></span><span>()` 이것은 임의 번호 생성기의 시드를 설정하는 데 사용됩니다.,从그리고能够控制生成的随机数序列。존재하다一些需要可重复随机结果的场景中,합리적인 사용 `</span><span><span class="hljs-title function_ invoke__">srand</span></span><span>()` 개발자가 임의 숫자의 분포 범위를보다 정확하게 제어하는 ​​데 도움이 될 수 있습니다.。

</span><span><span class="hljs-comment">## 1. srand() 기본 사용</span></span><span>

`</span><span><span class="hljs-title function_ invoke__">srand</span></span><span>()` 구문은 매우 간단합니다:

```php
</span><span><span class="hljs-title function_ invoke__">srand</span></span><span>(</span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$seed</span></span><span>);
</span></span>
  • $ 씨앗 : 임의의 숫자 생성기를 초기화하는 데 사용되는 씨앗. 동일한 씨앗은 동일한 랜덤 숫자 순서를 생성합니다.

예를 들어:

 <span><span><span class="hljs-title function_ invoke__">srand</span></span><span>(</span><span><span class="hljs-number">1234</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">rand</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>); </span><span><span class="hljs-comment">// 각 실행은 동일한 임의의 숫자를 출력합니다</span></span><span>
</span></span>

시드를 설정하면 랜덤 숫자 시퀀스가 ​​"고정"될 수 있으며, 이는 임의 로직을 디버깅하고 테스트 할 때 매우 유용합니다.

2. 랜덤 숫자의 범위를 제어하십시오

srand ()는 종자를 초기화하는 데 사용되지만 랜덤 숫자의 범위를 제어하는 ​​것은 실제로 rand (min, max) 에 의해 수행됩니다. 예를 들어:

 <span><span><span class="hljs-title function_ invoke__">srand</span></span><span>(</span><span><span class="hljs-number">5678</span></span><span>); </span><span><span class="hljs-comment">// 씨앗을 설정하십시오</span></span><span>
</span><span><span class="hljs-variable">$randomNumber</span></span><span> = </span><span><span class="hljs-title function_ invoke__">rand</span></span><span>(</span><span><span class="hljs-number">50</span></span><span>, </span><span><span class="hljs-number">150</span></span><span>); </span><span><span class="hljs-comment">// 随机数范围존재하다 50 도착하다 150</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$randomNumber</span></span><span>;
</span></span>

이 코드는 다음을 보장합니다.

  1. 임의의 숫자는 항상 50에서 150 사이입니다.

  2. 동일한 시드를 사용하여 매번 생성되는 임의의 숫자 시퀀스는 동일합니다.

3. 실용적인 팁 :보다 "균일 한"랜덤 분포를 생성합니다

생성 된 랜덤 숫자가 특정 간격 내에서 더 고르게 분포되기를 원한다면 씨앗 및 수학 연산과 함께 조정할 수 있습니다. 예를 들어:

 <span><span><span class="hljs-title function_ invoke__">srand</span></span><span>(</span><span><span class="hljs-number">9876</span></span><span>);
</span><span><span class="hljs-variable">$randomArray</span></span><span> = [];
</span><span><span class="hljs-keyword">for</span></span><span> (</span><span><span class="hljs-variable">$i</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>; </span><span><span class="hljs-variable">$i</span></span><span> &lt; </span><span><span class="hljs-number">10</span></span><span>; </span><span><span class="hljs-variable">$i</span></span><span>++) {
    </span><span><span class="hljs-variable">$num</span></span><span> = </span><span><span class="hljs-title function_ invoke__">rand</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>);
    </span><span><span class="hljs-variable">$randomArray</span></span><span>[] = </span><span><span class="hljs-variable">$num</span></span><span>;
}

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">implode</span></span><span>(</span><span><span class="hljs-string">", "</span></span><span>, </span><span><span class="hljs-variable">$randomArray</span></span><span>);
</span></span>

이러한 방식으로 생성 된 10 개의 임의 숫자는 1과 10 사이이며, 배열 내용은 동일한 시드를 사용할 때마다 정확히 동일합니다. 이것은 시뮬레이션 된 테스트 데이터 또는 반복 실험 시나리오에서 매우 유용합니다.

4. 주목할만한 것들

  1. PHP 7.1 이후 Srand ()Rand () 의 사용은 더 이상 권장되지 않습니다. 공무원은 더 안전하고 균등하게 분포 된 random_int () 또는 random_bytes ()를 사용하는 것을 제안합니다.

  2. srand ()는 mt_rand () 의 결과를 변경하지 않으며 mt_srand ()는 mt_rand () 와 함께 사용해야합니다.

  3. 예측 가능성이 높은 요구 사항이 높은 시나리오의 경우 고정 된 씨앗을 사용하여 외부에서 예측되는 결과의 생성을 피하십시오.

5. 요약

PHP 랜덤 숫자의 범위와 반복성은 srand () 에 의해 씨앗을 설정하고 rand (min, max) 와 결합하여 쉽게 제어 할 수 있습니다.

  • 고정 종자 → 동일한 랜덤 시퀀스.

  • 랜드 (Min, Max) → 값 범위를 제어합니다.

  • 디버깅 및 테스트 → 고정 시퀀스를 사용한 실험을 시뮬레이션합니다.

SRAND () 의 합리적인 사용은 개발, 테스트 및 데이터 시뮬레이션 시나리오에서 임의의 숫자 관리의 제어 가능성과 예측 가능성을 크게 향상시킬 수 있습니다.

 <span><span><span class="hljs-comment">// 결말 예:텍스트와 관련이 없습니다</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">str_repeat</span></span><span>(</span><span><span class="hljs-string">"-"</span></span><span>, </span><span><span class="hljs-number">40</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"랜덤 번호 기사 데모가 끝납니다。\n"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>