mt_rand

(PHP 4, PHP 5, PHP 7)

mt_randGénère une valeur aléatoire via le générateur de nombre aléatoire Mersenne Twister

Description

mt_rand ( void ) : int
mt_rand ( int $min , int $max ) : int
Attention

Cette fonction ne génère pas de valeurs sécurisées d'un point de vue cryptographique, et ne doit pas être utilisée dans un contexte de chiffrement. Si vous avez besoin d'une valeur sécurisée d'un point de vue cryptographique, utilisez plutôt random_int(), random_bytes(), ou openssl_random_pseudo_bytes().

De nombreux générateurs de nombres aléatoires provenant de vieilles bibliothèques libcs ont des comportements douteux et sont très lents. mt_rand() est une fonction de remplacement pour rand(). Elle utilise un générateur de nombres aléatoire de caractéristique connue, le " » Mersenne Twister " qui est 4 fois plus rapide que la fonction standard libc.

Appelée sans les arguments optionnels min et max, mt_rand() retourne un nombre pseudoaléatoire, entre 0 et mt_getrandmax(). Pour obtenir un nombre entre 5 et 15 inclus, il faut utiliser mt_rand(5,15).

Liste de paramètres

min

Valeur la plus basse qui peut être retournée (par défaut : 0)

max

Valeur la plus haute qui peut être retournée (par défaut : mt_getrandmax()).

Valeurs de retour

Un entier aléatoire compris entre min (ou 0) et max (ou mt_getrandmax(), inclusif), ou FALSE si le paramètre max est inférieur à min.

Historique

Version Description
7.2.0 mt_rand() a reçu une correction de bogue pour un bug de polarisation modulo. Cela signifie que les séquences générées avec une valeur d'initialisation spécifique peuvent différer de php 7.1 sur les machines 64-bit.
7.1.0 rand() est devenu un alias de mt_rand().
7.1.0 mt_rand() a été mis à jour pour utiliser la version corrigée, correcte, de l'algorithme Twister Mersenne. Pour revenir à l'ancien comportement, utilisez mt_srand() avec MT_RAND_PHP comme deuxième paramètre.
5.3.4 Emet une alerte de niveau E_WARNING et retourne FALSE si le paramètre max < au paramètre min.

Exemples

Exemple #1 Exemple avec mt_rand()

<?php
echo mt_rand() . "\n";
echo 
mt_rand() . "\n";

echo 
mt_rand(515);
?>

L'exemple ci-dessus va afficher quelque chose de similaire à :

1604716014
1478613278
6

Notes

Avertissement

La plage min max doit se situer dans la plage mt_getrandmax(). i.e. max - min) <= mt_getrandmax() sinon, mt_rand() peut retourner des nombres aléatoires plus pauvres qu'il ne le devrait.

Voir aussi

  • mt_srand() - Initialise le générateur de nombres aléatoires Mersenne Twister
  • mt_getrandmax() - La plus grande valeur aléatoire possible
  • random_int() - Génère des nombres entiers pseudo-aléatoire cryptographiquement sécurisé
  • random_bytes() - Génère des octets pseudo-aléatoire cryptographiquement sécurisé
  • openssl_random_pseudo_bytes() - Génère une chaine pseudo-aléatoire d'octets
  • rand() - Génère une valeur aléatoire