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

怪我咯
Libérer: 2023-03-12 15:36:02
original
1476 Les gens l'ont consulté

mt_rand() est quatre fois plus rapide que rand(). 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 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 la 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, l'amorçage du générateur de nombres aléatoires avec les fonctions srand() ou mt_srand() n'est plus nécessaire, cela se fait désormais 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)); 
?>
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!