Heim  >  Artikel  >  Backend-Entwicklung  >  Vergleich der Unterschiede zwischen der PHP-Funktion rand() und der Funktion mt_rand()

Vergleich der Unterschiede zwischen der PHP-Funktion rand() und der Funktion mt_rand()

怪我咯
怪我咯Original
2017-07-07 09:58:332253Durchsuche

mt_rand() ist viermal schneller als rand(). Viele alte libc-Zufallszahlengeneratoren haben einige unsichere und unbekannte Eigenschaften und sind sehr langsam. Die PHP-Funktion rand() verwendet standardmäßig den libc-Zufallszahlengenerator. Die Funktion mt_rand() wird informell verwendet, um sie zu ersetzen.

PHP-Funktionenrand und mt_rand

mt_rand() ist viermal schneller als rand()

Viele alte libc-Zufallszahlengeneratoren haben einige unsichere und unbekannte Eigenschaften und sehr langsam. Die rand()-Funktion von PHP verwendet standardmäßig den libc-Zufallszahlengenerator. Die Funktion mt_rand() wird informell verwendet, um sie zu ersetzen. Diese Funktion nutzt die bekannten Funktionen von Mersenne Twister, da mt_rand() Zufallswerte im Durchschnitt viermal schneller generieren kann als rand() von libc.
 
mt_rand() ist viermal schneller als rand()
 
 mt_rand – generiert bessere Zufallszahlen
 
 (PHP 3 >= 3.0.6, PHP 4, PHP 5 )
 
  int mt_rand ( [int min, int max] )
 
  Viele alte libc-Zufallszahlengeneratoren haben einige unsichere und unbekannte Eigenschaften und sind sehr langsam. Die rand()-Funktion von PHP verwendet standardmäßig den libc-Zufallszahlengenerator. Die Funktion mt_rand() wird informell verwendet, um sie zu ersetzen. Diese Funktion nutzt die bekannten Eigenschaften von Mersenne Twister als Zufallszahlengenerator, der Zufallswerte im Durchschnitt viermal schneller generieren kann als rand() von libc.
 
  Wenn die optionalen Parameter min und max nicht angegeben werden, gibt mt_rand()
 
  Eine Pseudozufallszahl zwischen 0 und RAND_MAX zurück.
 
 Wenn Sie beispielsweise eine Zufallszahl zwischen 5 und 15 (einschließlich) wünschen, verwenden Sie mt_rand(5, 15).
 
  Hinweis: Seit PHP 4.2.0 ist es nicht mehr notwendig, die Funktion srand() oder mt_srand() zum Seeding des Zufallszahlengenerators zu verwenden, dies ist jetzt erledigt automatisch .  
 rand – Erzeuge eine zufällige
Ganzzahl  
 (PHP 3, PHP 4, PHP 5)
 
 int rand ([int min, int max] )
 
  Wenn die optionalen Parameter min und max nicht angegeben werden, gibt rand() eine pseudozufällige Ganzzahl zwischen 0 und RAND_MAX zurück. Wenn Sie beispielsweise eine Zufallszahl zwischen 5 und 15 (einschließlich) wünschen, verwenden Sie rand(5, 15).
 
 Hinweis: Auf einigen Plattformen (z. B. Windows) beträgt RAND_MAX nur 32768. Wenn Sie einen Bereich größer als 32768 benötigen, geben Sie die Parameter min und max an, um eine Zahl größer als RAND_MAX zu generieren, oder erwägen Sie stattdessen die Verwendung von mt_rand().
 
 Hinweis: Ab PHP 4.2.0 ist es nicht mehr notwendig, den Zufallszahlengenerator mit der Funktion srand() oder mt_srand() zu initialisieren, dies erfolgt nun automatisch.


mt_rand-Definition und Verwendung
mt_rand() gibt eine zufällige Ganzzahl unter Verwendung des Mersenne Twister-Algorithmus zurück.

Syntax
mt_rand(min,max) Beschreibung
Wenn die optionalen Parameter min und max nicht angegeben werden, gibt mt_rand() eine Pseudozufallszahl zwischen 0 und RAND_MAX zurück. Wenn Sie beispielsweise eine Zufallszahl zwischen 5 und 15 (einschließlich) wünschen, verwenden Sie mt_rand(5, 15).

Viele alte libc-Zufallszahlengeneratoren haben einige unsichere und unbekannte Eigenschaften und sind langsam. Die rand()-Funktion von PHP verwendet standardmäßig den libc-Zufallszahlengenerator. Die Funktion mt_rand() wird informell verwendet, um sie zu ersetzen. Diese Funktion nutzt die bekannten Funktionen von Mersenne Twister als Zufallszahlengenerator, der Zufallswerte im Durchschnitt viermal schneller generieren kann als rand() von libc.
Tipps und
Hinweise Hinweis: Ab PHP 4.2.0 ist das Seeding des Zufallszahlengenerators mit den Funktionen srand() oder mt_srand() nicht mehr notwendig, es erfolgt nun automatisch.

Hinweis: In Versionen vor 3.0.7 bedeutet „Max“ den Bereich. Um in diesen Versionen die gleichen Zufallszahlen von 5 bis 15 wie im obigen Beispiel zu erhalten, lautet das kurze Beispiel mt_rand (5, 11).
Beispiel

In diesem Beispiel geben wir einige Zufallszahlen zurück:

Der Code lautet wie folgt:

<?php 
echo(mt_rand()); 
echo(mt_rand()); 
echo(mt_rand(10,100)); 
?>
Die Ausgabe ist ähnlich:


3150906288
513289678
35

Das obige ist der detaillierte Inhalt vonVergleich der Unterschiede zwischen der PHP-Funktion rand() und der Funktion mt_rand(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn