mt_rand

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

mt_randGenera un valor aleatorio mediante el generador de números aleatorios Mersenne Twister

Descripción

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

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

Precaución

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.

Parámetros

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

Valores devueltos

Un int aleatorio comprendido entre min (o 0) y max (o mt_getrandmax(), inclusivo).

Errores/Excepciones

  • Si max es inferior a min, se lanzará una excepción ValueError.

Historial de cambios

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.

Ejemplos

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

Notas

Advertencia

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.

Ver también

  • mt_srand() - Inicializa el generador de números aleatorios Mersenne Twister
  • mt_getrandmax() - El valor aleatorio más grande posible
  • random_int() - Obtiene un integer seleccionado de manera uniforme y criptográficamente segura
  • random_bytes() - Obtiene bytes aleatorios criptográficamente seguros

add a note

User Contributed Notes 1 note

To Top