<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Préface:Exemples qui ne sont pas liés au contenu de l'article PHP Code</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Accueillir PHP Programme d'échantillon de générateur de nombres aléatoires!\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">"Heure actuelle:"</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"># Comment passer srand() Fonctions à contrôler PHP Gamme de distribution de nombres aléatoires?Partager des compétences pratiques</span></span><span>
exister PHP Générer des nombres aléatoires en général `</span><span><span class="hljs-title function_ invoke__">rand</span></span><span>()` ou `</span><span><span class="hljs-title function_ invoke__">mt_rand</span></span><span>()` fonction,et `</span><span><span class="hljs-title function_ invoke__">srand</span></span><span>()` Ceci est utilisé pour définir la graine du générateur de nombres aléatoires,从et能够控制生成的随机数序列。exister一些需要可重复随机结果的场景中,Utilisation raisonnable `</span><span><span class="hljs-title function_ invoke__">srand</span></span><span>()` Il peut aider les développeurs à contrôler plus précisément la plage de distribution des nombres aléatoires。
</span><span><span class="hljs-comment">## 1. srand() Utilisation de base</span></span><span>
`</span><span><span class="hljs-title function_ invoke__">srand</span></span><span>()` La syntaxe est très simple:
```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>$ Seed : La graine utilisée pour initialiser le générateur de nombres aléatoires. La même graine génère la même séquence de nombres aléatoires.
Par exemple:
<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">// Chaque exécution sortira le même nombre aléatoire</span></span><span>
</span></span>En définissant la graine, la séquence de nombres aléatoires peut être "fixe", ce qui est très utile lors du débogage et du test de la logique aléatoire.
Bien que Srand () soit utilisé pour initialiser les graines, le contrôle de la plage de nombres aléatoires est réellement effectué par Rand (min, max) . Par exemple:
<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">// Régler les graines</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">// 随机数范围exister 50 arriver 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>Ce code garantit:
Le nombre aléatoire est toujours compris entre 50 et 150.
La séquence de nombres aléatoires générée à chaque fois en utilisant la même graine est la même.
Si vous voulez que les nombres aléatoires générés soient distribués plus uniformément dans un certain intervalle, vous pouvez les ajuster en combinaison avec les graines et les opérations mathématiques. Par exemple:
<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>Les 10 nombres aléatoires générés de cette manière sont comprises entre 1 et 10, et le contenu du tableau est exactement le même à chaque fois que la même graine est utilisée. Ceci est très utile dans les données de test simulées ou les scénarios expérimentaux répétés.
Après PHP 7.1, l'utilisation de Srand () et Rand () n'est plus recommandée. Le responsable suggère d'utiliser random_int () ou random_bytes () , qui sont plus sûrs et répartis uniformément.
srand () ne modifiera pas le résultat de mt_rand () , mt_srand () doit être utilisé avec mt_rand () .
Pour les scénarios avec des exigences de prévisibilité élevées, utilisez des graines fixes avec prudence pour éviter que la génération de résultats soit prédite par l'extérieur.
La plage et la répétabilité des nombres aléatoires PHP peuvent être facilement contrôlées en réglant les graines par SRAND () et combinées avec Rand (min, max) :
Graine fixe → même séquence aléatoire.
Rand (min, max) → Contrôlez la plage de valeurs.
Débogage et test → Simuler des expériences à l'aide de séquences fixes.
L'utilisation rationnelle de sRand () peut considérablement améliorer la contrôlabilité et la prévisibilité de la gestion des nombres aléatoires dans les scénarios de développement, de tests et de simulation de données.
<span><span><span class="hljs-comment">// Exemple de fin:Rien à voir avec le texte</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">"Numéro aléatoire de la démonstration de l'article se termine。\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>