Números aleatorios en PHP

  • Por
  • 25 de julio de 2007
  • Valoración:
  • 3 Comentarios
  • PHP
Generación de números aleatorios en PHP.
PHP dispone de una serie de funciones para generar números aleatorios fácilmente. Las vamos a ver explicando sus usos y diferencias de funcionamiento. La forma más básica de generar un número aleatorio en PHP consiste en dos pasos:

//alimentamos el generador de aleatorios
srand (time());
//generamos un número aleatorio
$numero_aleatorio = rand(1,100);


Como vemos, en el primer paso se utiliza la función srand() para alimentar la semilla de generación de números aleatorios. Este paso es necesario sólo en versiones anteriores a PHP 4.2.0, pues a partir de esta versión este paso se hace automáticamente. A la función srand() hace falta enviarle un valor para alimentar la semilla. Nosotros enviamos lo que devuelve time(), que es un timestamp con el número de segundos desde el inicio de 1970.

Luego generamos un número aleatorio con la función rand() que recibe un par de valores opcionalmente, que son el mínimo y el máximo de los números aleatorios generados. En el caso anterior se consigue un número aleatorio entre 1 y 100, incluyendo estos dos valores entre los posibles.

Si no se indica nada a rand(), el valor mínimo será cero. El valor máximo depende de la plataforma donde se esté ejecutando PHP, por ejemplo en Windows el valor máximo sería 32786. Si queremos asegurarnos que este valor máximo sea mayor, entonces conviene definir los valores máximo y mínimo al llamar a la función.

Generación de números aleatorios con mt_rand()

PHP tiene otras funciones para generar los números aleatorios, aparte de las que hemos visto, que utilizan unos algoritmos mejorados para conseguir números al azar.

La función de PHP mt_rand() genera aleatorios con un algoritmo que es de promedio 4 veces más rápido que el algoritmo que utiliza rand().

El uso de mt_rand() es similar:

//alimentamos el generador de aleatorios
mt_srand (time());
//generamos un número aleatorio
$numero_aleatorio = mt_rand(0,5);


Primero se debe utilizar mt_srand() para empezar la generación de números aleatorios con una semilla. Pero este paso a partir de PHP 4.2.0 no es necesario, porque se hace automáticamente.

Luego se generan los números aleatorios con mt_rand(), a la que le pasamos el rango de valores que queremos obtener, con los parámetros mínimo y máximo. En nuestro ejemplo obtendremos valores aleatorios entre el 0 y el 5.

La generación de números aleatorios en PHP es muy sencilla, como se ha podido comprobar. Si queremos que los números aleatorios tengan decimales podemos probar el truco de la FAQ: Números aleatorios decimales en PHP

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Comentarios

pablo cesar

14/1/2010
Tengo una duda
hola que tal al generar los numeros aleatoriamente si los puedo generar lo que quisiera aver si me pueden ayudar esque ya cuando se genero el numero aleatoriamente que se busque en la base de datos si existe ese numero o no. si no existe que se pueda guardar y si existe que me mande un mensaje diciendo que ya existe ese numero.
esque lo que pasa es que quiero hacer un folio pero solamente encuentro esta solucion de generar numeros aleatoriamente les agradeceria que me contestaran.

Lau

11/5/2010
Numeros aleatorios php
grax x el post!!!!
era lo que estaba buscando...
algo simple pero util...

Pajaro

21/7/2010
gracias!
excelente aporte, me sirvio muchísimo!

Compartir