The seed is the PID + LCG (https://github.com/php/php-src/search?q=GENERATE_SEED&unscoped_q=GENERATE_SEED)
(PHP 4, PHP 5, PHP 7, PHP 8)
mt_rand — Genera un valor aleatorio mediante el generador de números aleatorios Mersenne Twister
Muchos generadores de números aleatorios provenientes de viejas bibliotecas libcs tienen comportamientos dudosos y son muy lentos. mt_rand() es una función de reemplazo para rand(). Utiliza un generador de números aleatorios de característica conocida, el " » Mersenne Twister " que es 4 veces más rápido que la función estándar libc.
Llamada sin los argumentos opcionales min
y
max
, mt_rand() devuelve un número
pseudoaleatorio, entre 0 y mt_getrandmax().
Para obtener un número entre 5 y 15 inclusive, se debe utilizar
mt_rand(5,15)
.
Esta función no genera valores criptográficamente seguros y no debe ser utilizada para fines criptográficos o fines que requieran que los valores devueltos sean impredecibles.
Si se requiere aleatoriedad criptográficamente segura, se puede utilizar el Random\Randomizer con el motor Random\Engine\Secure. Para casos de uso simples, las funciones random_int() y random_bytes() proporcionan una API conveniente y segura respaldada por el CSPRNG del sistema operativo.
min
Valor más bajo que puede ser devuelto (por omisión: 0)
max
Valor más alto que puede ser devuelto (por omisión: mt_getrandmax()).
Un int aleatorio comprendido entre min
(o 0)
y max
(o mt_getrandmax(), inclusivo).
max
es inferior a min
,
se lanzará una excepción ValueError.
Versión | Descripción |
---|---|
8.0.0 |
Se lanzará una excepción ValueError si max es inferior a min ;
anteriormente, se emitía un E_WARNING y la función devolvía false .
|
7.2.0 | mt_rand() recibió una corrección de error para un bug de polarización módulo. Esto significa que las secuencias generadas con un valor de inicialización específico pueden diferir de PHP 7.1 en máquinas de 64 bits. |
7.1.0 | rand() se convirtió en un alias de mt_rand(). |
7.1.0 |
mt_rand()
fue actualizado
para utilizar la versión corregida, correcta, del algoritmo Twister
Mersenne. Para volver al comportamiento anterior, utilice
mt_srand() con MT_RAND_PHP
como segundo parámetro.
|
Ejemplo #1 Ejemplo con mt_rand()
<?php
echo mt_rand(), "\n";
echo mt_rand(), "\n";
echo mt_rand(5, 15), "\n";
?>
El resultado del ejemplo sería algo similar a:
1604716014 1478613278 6
El rango min
max
debe estar
dentro del rango mt_getrandmax(). es decir,
(max
- min
) <=
mt_getrandmax() de lo contrario, mt_rand() puede
devolver números aleatorios de menor calidad de lo que debería.
The seed is the PID + LCG (https://github.com/php/php-src/search?q=GENERATE_SEED&unscoped_q=GENERATE_SEED)