mt_rand
(PHP 4, PHP 5, PHP 7)
mt_rand — Génère une valeur aléatoire via le générateur de nombre aléatoire Mersenne Twister
Description
$min
, int $max
)Cette fonction ne génère pas de valeurs sécurisées d'un point de vue cryptologie, et ne doit pas être utilisée dans un contexte de cryptologie. Si vous avez besoin d'un valeur sécurisée d'un point de vue cryptologique, 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(5, 15);
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
1604716014 1478613278 6
Notes
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 une meilleure valeur aléatoire
- mt_getrandmax() - La plus grande valeur aléatoire possible
- random_int() - Generates cryptographically secure pseudo-random integers
- random_bytes() - Generates cryptographically secure pseudo-random bytes
- openssl_random_pseudo_bytes() - Génère une chaine pseudo-aléatoire d'octets
- rand() - Génère une valeur aléatoire
Version en cache
05/11/2024 16:37:00 Cette version de la page est en cache (à la date du 05/11/2024 16:37:00) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-mt-rand.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.