Maison  >  Article  >  développement back-end  >  Comparaison des différences entre la fonction php rand() et la fonction mt_rand()

Comparaison des différences entre la fonction php rand() et la fonction mt_rand()

怪我咯
怪我咯original
2017-07-07 09:58:332304parcourir

mt_rand() est quatre fois plus rapide que rand(). De nombreux anciens générateurs de nombres aléatoires de la libc ont des caractéristiques incertaines et inconnues et sont très lents. La fonction rand() de PHP utilise le générateur de nombres aléatoires libc par défaut. La fonction mt_rand() est utilisée de manière informelle pour la remplacer.

Fonctions PHPrand et mt_rand

mt_rand() est quatre fois plus rapide que rand()

De nombreux anciens générateurs de nombres aléatoires libc ont des valeurs Incertain et propriétés inconnues et très lent. La fonction rand() de PHP utilise par défaut le générateur de nombres aléatoires libc. La fonction mt_rand() est utilisée de manière informelle pour la remplacer. Cette fonction utilise les fonctionnalités connues de Mersenne Twister en tant que générateur de nombres aléatoires. mt_rand() peut générer des valeurs aléatoires en moyenne quatre fois plus rapidement que rand() fourni par la libc.
 
mt_rand() est quatre fois plus rapide que rand()
 
 mt_rand — génère de meilleurs nombres aléatoires
 
 (PHP 3 >= 3.0.6, PHP 4, PHP 5 )
 
  int mt_rand ( [int min, int max] )
 
  De nombreux anciens générateurs de nombres aléatoires libc ont des caractéristiques incertaines et inconnues et sont très lents. La fonction rand() de PHP utilise par défaut le générateur de nombres aléatoires libc. La fonction mt_rand() est utilisée de manière informelle pour la remplacer. Cette fonction utilise les propriétés connues de Mersenne Twister en tant que générateur de nombres aléatoires, capable de générer des valeurs aléatoires en moyenne quatre fois plus rapidement que rand() fourni par la libc.
 
  Si les paramètres facultatifs min et max ne sont pas fournis, mt_rand() renvoie
 
  Un nombre pseudo-aléatoire compris entre 0 et RAND_MAX.
 
 Par exemple, si vous voulez un nombre aléatoire entre 5 et 15 (inclus), utilisez mt_rand(5, 15).
 
  Note : Depuis PHP 4.2.0, il n'est plus nécessaire d'utiliser la fonction srand() ou mt_srand() pour amorcer le générateur de nombres aléatoires , c'est désormais fait automatiquement .
 
 rand — Générer un entier aléatoire
 
 (PHP 3, PHP 4, PHP 5)
 
 int rand ([int min, int max] )
 
  Si les paramètres facultatifs min et max ne sont pas fournis, rand() renvoie un entier pseudo-aléatoire compris entre 0 et RAND_MAX. Par exemple, si vous souhaitez un nombre aléatoire compris entre 5 et 15 (inclus), utilisez rand(5, 15).
 
 Remarque : sur certaines plateformes (telles que Windows) RAND_MAX n'est que 32768. Si vous avez besoin d'une plage supérieure à 32 768, spécifiez les paramètres min et max pour générer un nombre supérieur à RAND_MAX, ou envisagez d'utiliser mt_rand() à la place.
 
  Remarque : Depuis PHP 4.2.0, il n'est plus nécessaire d'amorcer le générateur de nombres aléatoires avec la fonction srand() ou mt_srand(), cela se fait désormais automatiquement.

Définition et utilisation de mt_rand

mt_rand() renvoie un entier aléatoire en utilisant l'algorithme Mersenne Twister.

Syntaxe
mt_rand(min,max) Description
Si les paramètres facultatifs min et max ne sont pas fournis, mt_rand() renvoie un nombre pseudo-aléatoire compris entre 0 et RAND_MAX. Par exemple, si vous souhaitez un nombre aléatoire compris entre 5 et 15 (inclus), utilisez mt_rand(5, 15).

De nombreux anciens générateurs de nombres aléatoires libc ont des propriétés incertaines et inconnues et sont lents. La fonction rand() de PHP utilise par défaut le générateur de nombres aléatoires libc. La fonction mt_rand() est utilisée de manière informelle pour le remplacer. Cette fonction utilise les fonctionnalités connues de Mersenne Twister en tant que générateur de nombres aléatoires, capable de générer des valeurs aléatoires en moyenne quatre fois plus rapidement que rand() fourni par la libc.
Conseils et Notes
Remarque : Depuis PHP 4.2.0, il n'est plus nécessaire d'amorcer le générateur de nombres aléatoires avec les fonctions srand() ou mt_srand(), c'est désormais fait automatiquement.

Remarque : Dans les versions antérieures à 3.0.7, max signifie portée. Pour obtenir les mêmes nombres aléatoires de 5 à 15 que dans l'exemple ci-dessus dans ces versions, l'exemple court est mt_rand (5, 11).
Exemple

Dans cet exemple, nous renverrons des nombres aléatoires :

Le code est le suivant :

<?php 
echo(mt_rand()); 
echo(mt_rand()); 
echo(mt_rand(10,100)); 
?>

Le résultat est similaire :

3150906288
513289678
35

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn