Aktueller Standort: Startseite> Neueste Artikel> Wie steuern Sie den Verteilungsbereich von PHP -Zufallszahlen über die Funktion srand ()? Praktische Fähigkeiten teilen

Wie steuern Sie den Verteilungsbereich von PHP -Zufallszahlen über die Funktion srand ()? Praktische Fähigkeiten teilen

gitbox 2025-09-23
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Vorwort:Beispiele, die nicht mit dem Inhalt des Artikels zusammenhängen PHP Code</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Willkommen PHP Beispiel für Zufallszahlengenerator Beispielprogramm!\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">"Aktuelle Zeit:"</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"># Wie man passt srand() Funktionen zur Kontrolle PHP Verteilung der Zufallszahlen?Praktische Fähigkeiten teilen</span></span><span>

existieren PHP Generieren Sie zufällige Zahlen im Allgemeinen `</span><span><span class="hljs-title function_ invoke__">rand</span></span><span>()` oder `</span><span><span class="hljs-title function_ invoke__">mt_rand</span></span><span>()` Funktion,Und `</span><span><span class="hljs-title function_ invoke__">srand</span></span><span>()` Dies wird verwendet, um den Samen des Zufallszahlengenerators einzustellen,从Und能够控制生成的随机数序列。existieren一些需要可重复随机结果的场景中,Angemessene Verwendung `</span><span><span class="hljs-title function_ invoke__">srand</span></span><span>()` Es kann Entwicklern helfen, den Verteilungsbereich von Zufallszahlen genauer zu kontrollieren。

</span><span><span class="hljs-comment">## 1. srand() Grundnutzung</span></span><span>

`</span><span><span class="hljs-title function_ invoke__">srand</span></span><span>()` Die Syntax ist sehr einfach:

```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>
  • $ saat : Der Saatgut zur Initialisierung des Zufallszahlengenerators. Der gleiche Samen erzeugt die gleiche Folge von Zufallszahlen.

Zum Beispiel:

 <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">// Jeder Lauf gibt die gleiche Zufallszahl aus</span></span><span>
</span></span>

Durch das Einstellen des Saatguts kann die Zufallszahlsequenz "behoben" werden, was beim Debugieren und Testen von Zufallslogik sehr nützlich ist.

2. Steuern Sie den Bereich der Zufallszahlen

Obwohl Srand () zur Initialisierung von Samen verwendet wird, wird die Kontrolle des Bereichs der Zufallszahlen tatsächlich durch Rand (min, max) durchgeführt. Zum Beispiel:

 <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">// Samen setzen</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">// 随机数范围existieren 50 ankommen 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>

Dieser Code garantiert:

  1. Die Zufallszahl liegt immer zwischen 50 und 150.

  2. Die Zufallszahlsequenz, die jedes Mal mit demselben Samen erzeugt wird, ist gleich.

3. Praktische Tipps: Erzeugen Sie eine "einheitlichere" Zufallsverteilung

Wenn Sie möchten, dass die generierten Zufallszahlen innerhalb eines bestimmten Intervalls gleichmäßiger verteilt werden, können Sie sie in Kombination mit Samen und mathematischen Operationen anpassen. Zum Beispiel:

 <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>

Die auf diese Weise erzeugten 10 zufälligen Zahlen liegen zwischen 1 und 10, und der Array -Inhalt ist jedes Mal gleich, wenn der gleiche Samen verwendet wird. Dies ist sehr nützlich in simulierten Testdaten oder wiederholten experimentellen Szenarien.

4.. Dinge zu beachten

  1. Nach Php 7.1 wird die Verwendung von Srand () und Rand () nicht mehr empfohlen. Der Beamte schlägt vor , random_int () oder random_bytes () zu verwenden, die sicherer und gleichmäßig verteilt sind.

  2. Srand () ändert das Ergebnis von mt_rand () , mt_srand () nicht mit mt_rand () verwendet werden.

  3. Verwenden Sie für Szenarien mit hohen Vorhersehbarkeitsanforderungen feste Samen mit Vorsicht, um zu vermeiden, dass die Erzeugung von Ergebnissen von extern vorhergesagt wird.

5. Zusammenfassung

Der Bereich und die Wiederholbarkeit von PHP -Zufallszahlen können leicht gesteuert werden, indem die Samen durch srand () und in Kombination mit Rand (min, max) in Verbindung gebracht werden:

  • Fester Saatgut → gleiche zufällige Sequenz.

  • Rand (min, max) → Steuern Sie den Wertebereich.

  • Debugging und Test → Simulation von Experimenten mit festen Sequenzen simulieren.

Die rationale Verwendung von Srand () kann die Kontrollierbarkeit und Vorhersehbarkeit des Zufallszahlenmanagements in der Entwicklung, Test- und Datensimulationsszenarien erheblich verbessern.

 <span><span><span class="hljs-comment">// Endspielbeispiel:Nichts mit dem Text zu tun</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">"Die Demonstration der Zufallszahlenartikel endet。\n"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>