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

# mt_rand

(PHP 4, PHP 5, PHP 7, PHP 8)

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

### Description

function mt_rand(): int
function mt_rand(int `$min`, int `$max`): int

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)`.

Attention

Cette fonction ne génère pas de valeurs cryptographiquement sûres, et ne doit pas être utilisée à des fins cryptographiques, ou à des fins qui exigent que les valeurs renvoyées soient indéchiffrables.

Si de l'aléatoire cryptographiquement sûre est requis, le Random\Randomizer peut être utilisé avec le moteur Random\Engine\Secure. Pour des cas d'usage simple, les fonctions random_int() et random_bytes() fournissent une API pratique et sûre qui est qui est soutenu par le CSPRNG du système d'exploitation.

Attention

Cette fonction utilise l'instance globale Mt19937 ("Mersenne Twister") comme source d'aléatoire et partage ainsi son état avec toutes les autres fonctions utilisant le Mt19937 global. L'utilisation de l'une de ces fonctions fait avancer la séquence pour toutes les autres fonctions, indépendamment de la portée.

Générer des séquences reproductibles en initialisant mt_srand() ou srand() avec une valeur connue produira également une sortie reproductible de cette fonction.

Il est préférable d'utiliser les méthodes de Random\Randomizer dans tout nouveau code.

### 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).

### Erreurs / Exceptions

- Si `max` est inférieur à `min`, une exception ValueError est levée.

### Historique

Version | Description
--- | ---
8.0.0 | Une exception ValueError est levée si `max` est inférieur à `min` ; auparavant, un `E_WARNING` était émis et la fonction retournait `false`.
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 Mersenne Twister. Pour revenir à l'ancien comportement, utiliser mt_srand() avec `MT_RAND_PHP` comme deuxième paramètre.

### Exemples

Exemple #1 Exemple avec mt_rand()

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

    echo mt_rand(5, 15), "\n";
    ?>

Résultat de l'exemple ci-dessus est similaire à :

    1604716014
    1478613278
    6

### Notes

Avertissement

La plage `min` `max` doit se situer dans la plage mt_getrandmax(). C.-à-d. (`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() - Récupère un entier sélectionné de manière uniforme et cryptographiquement sécurisée
- random_bytes() - Récupère des octets aléatoires cryptographiquement sécurisés

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open