<span><span><span class="hljs-meta"><?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">?></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>시드를 설정하면 랜덤 숫자 시퀀스가 "고정"될 수 있으며, 이는 임의 로직을 디버깅하고 테스트 할 때 매우 유용합니다.
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>이 코드는 다음을 보장합니다.
임의의 숫자는 항상 50에서 150 사이입니다.
동일한 시드를 사용하여 매번 생성되는 임의의 숫자 시퀀스는 동일합니다.
생성 된 랜덤 숫자가 특정 간격 내에서 더 고르게 분포되기를 원한다면 씨앗 및 수학 연산과 함께 조정할 수 있습니다. 예를 들어:
<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> < </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 사이이며, 배열 내용은 동일한 시드를 사용할 때마다 정확히 동일합니다. 이것은 시뮬레이션 된 테스트 데이터 또는 반복 실험 시나리오에서 매우 유용합니다.
PHP 7.1 이후 Srand () 및 Rand () 의 사용은 더 이상 권장되지 않습니다. 공무원은 더 안전하고 균등하게 분포 된 random_int () 또는 random_bytes ()를 사용하는 것을 제안합니다.
srand ()는 mt_rand () 의 결과를 변경하지 않으며 mt_srand ()는 mt_rand () 와 함께 사용해야합니다.
예측 가능성이 높은 요구 사항이 높은 시나리오의 경우 고정 된 씨앗을 사용하여 외부에서 예측되는 결과의 생성을 피하십시오.
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">?></span></span><span>
</span></span>