In PHP ist das Generieren von Zufallszahlen eine sehr häufige Anforderung, insbesondere in Szenarien wie Spieleentwicklung, Benutzerdatenverarbeitung und zufälligen Verifizierungscodes. PHP bietet mehrere Funktionen, um zufällige Zahlen zu generieren, wobei mt_rand () und mt_getrandmax () zwei häufig verwendete Funktionen sind. mt_rand () wird normalerweise verwendet, um zufällige Ganzzahlen zu generieren, während mt_getrandmax () verwendet wird, um den maximal möglichen Wert der Funktion mt_rand () zu erhalten.
mt_rand () ist eine Pseudo-Random-Zahlengenerierungsfunktion, die auf dem Mersenne-Twister-Algorithmus in PHP basiert. Sein Vorteil ist, dass die erzeugten Zufallszahlen eine gute Gleichmäßigkeit und hohe Leistung aufweisen. Diese Funktion gibt standardmäßig eine Ganzzahl mit einem Bereich von 0 an mt_getrandmax () zurück.
<span><span><span class="hljs-variable">$rand</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mt_rand</span></span><span>(); </span><span><span class="hljs-comment">// Generieren Sie eine Zufallszahl,Reichen von 0 ankommen mt_getrandmax()</span></span><span>
</span></span>
mt_getrandmax () ist eine integrierte Funktion, die von PHP bereitgestellt wird, um den maximalen Wert zu erhalten, den mt_rand () generieren kann. Der zurückgegebene Wert ist eine Ganzzahl, die sich in verschiedenen Versionen und Plattformen von PHP normalerweise unterscheidet. Im Allgemeinen beträgt der Wert 2147483647 (d. H. Minus 1 zur Leistung von 31 von 2).
<span><span><span class="hljs-variable">$max</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mt_getrandmax</span></span><span>(); </span><span><span class="hljs-comment">// Erhalten mt_rand() Der maximale Wert, der erzeugt werden kann</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$max</span></span><span>; </span><span><span class="hljs-comment">// Ausgabemaximalwert,Normalerweise 2147483647</span></span><span>
</span></span>
Normalerweise müssen wir eine zufällige Anzahl angegebener Bereiche generieren, z. B. eine zufällige Zahl von a bis b . Um dies zu erreichen, können wir die von mt_rand () generierten Zufallszahlen für die Reichweite verwenden.
Angenommen, wir müssen eine Zufallszahl mit einer Reihe von $ min bis $ max erstellen. Wir können die folgende Formel verwenden:
<span><span><span class="hljs-variable">$randNum</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mt_rand</span></span><span>(</span><span><span class="hljs-variable">$min</span></span><span>, </span><span><span class="hljs-variable">$max</span></span><span>);
</span></span>
Hier ist $ min die untere Grenze einer Zufallszahl, $ max ist die Obergrenze einer Zufallszahl, und die Funktion mt_rand () gibt eine zufällige Ganzzahl in diesem Bereich zurück.
Wenn wir flexiblere Kontrollbereiche benötigen oder zufällige Zahlen selbst berechnen möchten, können wir mt_getrandmax () verwenden, um den Erzeugungsbereich von mt_rand () zu steuern. Wenn wir beispielsweise eine Zufallszahl im Bereich von 0 bis 500 generieren möchten, können wir zunächst den Maximalwert von mt_rand () bestimmen und ihn dann skalieren.
Nehmen wir an, unser Ziel ist es, eine zufällige Nummer von $ min bis $ max zu generieren. Wir können sie mit dem folgenden Code implementieren:
<span><span><span class="hljs-variable">$min</span></span><span> = </span><span><span class="hljs-number">10</span></span><span>;
</span><span><span class="hljs-variable">$max</span></span><span> = </span><span><span class="hljs-number">50</span></span><span>;
</span><span><span class="hljs-variable">$range</span></span><span> = </span><span><span class="hljs-variable">$max</span></span><span> - </span><span><span class="hljs-variable">$min</span></span><span> + </span><span><span class="hljs-number">1</span></span><span>;
</span><span><span class="hljs-variable">$randomNumber</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mt_rand</span></span><span>() % </span><span><span class="hljs-variable">$range</span></span><span> + </span><span><span class="hljs-variable">$min</span></span><span>;
</span></span>
Angenommen, wir möchten eine Zufallszahl mit einem Bereich von 100 bis 500 generieren. Der Code lautet wie folgt:
<span><span><span class="hljs-variable">$min</span></span><span> = </span><span><span class="hljs-number">100</span></span><span>;
</span><span><span class="hljs-variable">$max</span></span><span> = </span><span><span class="hljs-number">500</span></span><span>;
</span><span><span class="hljs-variable">$randNum</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mt_rand</span></span><span>(</span><span><span class="hljs-variable">$min</span></span><span>, </span><span><span class="hljs-variable">$max</span></span><span>); </span><span><span class="hljs-comment">// verwenden mt_rand() Um zufällige Zahlen im Bereich direkt zu generieren</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$randNum</span></span><span>; </span><span><span class="hljs-comment">// Ausgabe eines 100 ankommen 500 Zufällige Zahl zwischen</span></span><span>
</span></span>
Wenn Sie die Reichweite durch eine feinere Granularsteuerung erreichen möchten, können Sie den Rückgabewert von mt_getrandmax () verwenden, um die generierten Zufallszahlen zu skalieren. Angenommen, Sie möchten eine Zufallszahl von 0 bis 100 generieren. Sie können den folgenden Code verwenden:
<span><span><span class="hljs-variable">$min</span></span><span> = </span><span><span class="hljs-number">0</span></span><span>;
</span><span><span class="hljs-variable">$max</span></span><span> = </span><span><span class="hljs-number">100</span></span><span>;
</span><span><span class="hljs-variable">$randNum</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mt_rand</span></span><span>() / </span><span><span class="hljs-title function_ invoke__">mt_getrandmax</span></span><span>() * (</span><span><span class="hljs-variable">$max</span></span><span> - </span><span><span class="hljs-variable">$min</span></span><span>) + </span><span><span class="hljs-variable">$min</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$randNum</span></span><span>;
</span></span>
Die Logik dieses Codes lautet: Verwenden Sie zunächst mt_rand () , um eine Zufallszahl zwischen 0 und mt_getrandmax () zu generieren und sie dann auf den Zielbereich $ min bis $ max zu skalieren.
mt_rand () und mt_getrandmax () sind sehr leistungsstarke Tools in PHP, mit denen hochwertige Pseudo-Random-Zahlen erzeugt werden können. In praktischen Anwendungen kann die Verwendung von MT_RAND ($ min, $ max) direkt in einem bestimmten Bereich schnell zufällige Zahlen generieren, und wenn eine flexiblere oder mehr verfeinerte Steuerung erforderlich ist, kann MT_getRandmax () kombiniert werden, um den Bereich anzupassen.
Durch die Einführung dieses Artikels glaube ich, dass Sie verstehen können, wie Sie MT_RAND () und MT_GetRandMax () -Funktionen verwenden, um zufällige Zahlen in einem bestimmten Bereich zu generieren, und können diese Funktionen in Ihrem PHP -Projekt flexibel anwenden, um mehr Anforderungen an die Erzeugung von zufälligen Zahlen zu erreichen.