mt_rand
(PHP 4, PHP 5)
mt_rand — Genera un mejor número entero aleatorio
Descripción
$min
, int $max
)Muchos generadores de números aleatorios de antiguas libcs tienen características dudosas o desconocidas y son lentas. De manera predeterminada, PHP usa la libc generadora de números aleatorios con la función rand(). La función mt_rand() es un sustituto de dicha función. Utiliza un generador de números aleatorios con características conocidas usando » Mersenne Twister, que produce números aleatorios cuatro veces más rápido que el promedio proporcionado por la libc rand().
Se si emplea sin los argumentos opcionales min y
max, mt_rand()
devuelve un valor pseudoaleatorio entre 0 y
mt_getrandmax(). Para obtener un número aleatorio
entre 5 y 15 (incluidos), por ejemplo, use mt_rand(5,
15).
Parámetros
-
min -
Opcionalmente, el menor valor a devolver (por defecto: 0)
-
max -
Opcionalmente, el mayor valor a devolver (por defecto: mt_getrandmax())
Valores devueltos
Un valor entero aleatorio entre min (o 0)
y max (o mt_getrandmax(), incluidos),
o FALSE si max es menor que min.
Historial de cambios
| Versión | Descripción |
|---|---|
| 5.3.4 |
Emite un error de nivel E_WARNING y devuelve FALSE si
max < min.
|
Ejemplos
Ejemplo #1 Ejemplo de mt_rand()
<?php
echo mt_rand() . "\n";
echo mt_rand() . "\n";
echo mt_rand(5, 15);
?>
El resultado del ejemplo sería algo similar a:
1604716014 1478613278 6
Notas
Esta función no genera valores criptográficos fiables por lo que no debería usarse para propósitos criptográficos. Si fuera necesario un valor criptográfico seguro, considérese usar openssl_random_pseudo_bytes() en su lugar.
La distribución de mt_rand() devuelve valores que se inclinan
hacia los números pares en versiones 64 bits de PHP, cuando
max está más alla de 2^32.
Ver también
- mt_srand() - Genera el mejor número aleatorio a partir de una semilla
- mt_getrandmax() - Mostrar el mayor valor aleatorio posible
- openssl_random_pseudo_bytes() - Genera una cadena de bytes pseudo-aleatoria
- rand() - Genera un número entero aleatorio