Cómo hacer un generador de numeros aleatorios en PHP

Cómo hacer un generador de numeros aleatorios en PHP

En una edición anterior, vimos como construir un generador de contraseñas aleatorias en PHP, el cual es de mucha utilidad al momento de crear registros de usuarios para nuestros sitios Web.

Hoy, continuando con el maravilloso mundo de la aleatoriedad, construiremos un sencillo generador de números aleatorios, el cual es perfecto si queremos realizar sorteos o simplemente generar números por pura diversión.

Como siempre, toda la información de esto y mucho más, después del salto.

Cómo hacer un generador de números aleatorios en PHP

Como siempre, lo primero:

Implementos necesarios:

  1. Un editor Web que soporte PHP, en este caso utilizaremos Adobe Dreamweaver (pueden conseguir una versión de evaluación aquí).
  2. Un servidor local que soporte PHP (pueden instalar un pack como Xampp que trae Apache, pueden conseguirlo aquí), o algún alojamiento gratuito que ofrezca esa característica, pueden encontrar algunos en este enlace de Google.
  3. Recomendación: Leer este tutorial que nos informa como crear formularios Web.

Procedimiento:

Lo que haremos consta de 2 pasos:

1.- Crearemos un formulario para ingresar los datos necesarios para la generación de los números aleatorios.

2.- Construiremos el código necesario para la generación.

Así que sabiendo todo, vamos, manos a la obra:

1.- Lo primero que haremos será crear el formulario. Para esto abrimos nuestro editor Web, y creamos un nuevo archivo de tipo PHP, el cual llamaremos generanumero.php

2.- Luego de crear el archivo, haremos nuestro formulario. Si tienen dudas de como hacerlo, pueden referirse a este tutorial donde ya cubrimos el procedimiento paso a paso. El formulario debe contener los siguientes campos:

- Un campo de texto que llamaremos “minimo”, el cual contendrá el límite mínimo a partir de cual se generarán los números.

- Un campo de texto que llamaremos “maximo”, el cual contendrá el límite máximo hasta donde se podrá generar el número.

- Un campo de texto que llamaremos “cantidad”, el cual indicará cuantos números queremos generar.

Además, en las propiedades del formulario, es importante asegurarnos que el “Action” este fijado a la  misma página generanumero.php y el “Method” a POST.

Después de realizar esto, deberíamos tener un código parecido a este:

<form id=”form1″ name=”form1″ method=”post” action=”generanumero.php”>
<table width=”359″ border=”0″>
<tr>
<td width=”85″>Minimo:</td>
<td width=”105″><label>
<input type=”text” name=”minimo” id=”minimo” />
</label></td>
</tr>
<tr>
<td>Maximo:</td>
<td><label>
<input type=”text” name=”maximo” id=”maximo” />
</label></td>
</tr>
<tr>
<td>Cantidad:</td>
<td><label>
<input type=”text” name=”cantidad” id=”cantidad” />
</label></td>
</tr>
</table>
<p>
<label>
<input type=”submit” name=”button” id=”button” value=”Generar Numero” />
</label>
</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</form>

3.- Ahora que hemos creado nuestro formulario, procederemos a insertar el código PHP correspondiente a hacer el autollamado de páginas y la posterior generación del número. Ahora, tal como lo prometimos en un tutorial anterior:

¿Qué es el autollamado de páginas?

Es una función incluida en PHP la cual nos permite que una página se llame a si misma y cambie su contenido dependiendo de la información enviada en primera instancia.

Por ejemplo, podemos tener una página a la que le indiquemos que si no se ha enviado información a través del formulario, se desplegue este mismo en blanco, y que de caso contrario se recargue a si misma, procesando la información y presentando un resultado determinado.

Además, usaremos un ciclo o búcle, si tienen la duda de que es:

¿Qué es un ciclo o búcle?

En programación, un ciclo o búcle es una sentencia la cual nos permite ejecutar una o varias operaciones varias veces mientras se cumpla una condición que hemos declarado. Por ejemplo, si queremos mostrar en pantalla los números del 1 al 10 podemos hacer uso de un ciclo y repetir la operación 10 veces, de la siguiente forma:

$i=1;

while($i<=10)

{

echo ‘$i’;

$i++;

}

Hay varios tipos de ciclos o búcles, siendo los más comunes el for, while, o while do.

Así que tomando en consideración lo anterior, lo primero que debemos hacer, es escribir un código que le diga al interprete PHP “Si no se ha enviado información por el formulario (no se ha presionado el botón), cargue el formulario en blanco”, eso se traduciría en el siguiente código:

<?
if(!$_POST) /* Aquí le decimos “Si no se ha enviado información…” */
{
?>
<form id=”form1″ name=”form1″ method=”post” action=”generanumero.php”>
<table width=”359″ border=”0″>
<tr>
<td width=”85″>Minimo:</td>
<td width=”105″><label>
<input type=”text” name=”minimo” id=”minimo” />
</label></td>
</tr>
<tr>
<td>Maximo:</td>
<td><label>
<input type=”text” name=”maximo” id=”maximo” />
</label></td>
</tr>
<tr>
<td>Cantidad:</td>
<td><label>
<input type=”text” name=”cantidad” id=”cantidad” />
</label></td>
</tr>
</table>
<p>
<label>
<input type=”submit” name=”button” id=”button” value=”Generar Numero” />
</label>
</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</form>

Y a continuación creamos el siguiente código, el cual le dirá al interprete “En caso de que SI se haya enviado información, realice las siguientes operaciones”, las cuales corresponderán a la generación y muestra de los números aleatorios calculados. Este código va inmediatamente después del anterior, como siempre la explicación en negrita, cursiva y entremedio de /* */:

<?
}
else /* Le decimos, “Si se ha enviado la información, haga …” */
{
/* Partimos por asignar los valores enviados en el formulario a variables. Además creamos una variable $i y le asignamos valor 1, esta nos servirá para hacer un bucle o ciclo e ir aumentando este número hasta que alcance la cantidad de números que queremos generar. */

$min=$_POST["minimo"];
$max=$_POST["maximo"];
$cant=$_POST["cant"];
$i=1;

/* Luego determinamos una semilla para la función al azar. Todas las funciones que generan números al azar en programación usan como base una “semilla”  o punto base númerico a partir de la cual ejecutan sus algoritmos de aleatoridad. En este caso utilizaremos el resultado de la función time(); la cual nos devuelve el instante exacto del tiempo del sistema donde estemos desarrollando. Así nos aseguramos que la posibilidad de que la semilla se repita sea bajísima, ya que es díficil por no decir imposible que el script se ejecute a la misma hora exacta 2 días distintos. Este paso es necesario ejecutarlo si la versión de PHP de nuestro servidor o alojamiento Web es inferior a la 4.2.0, en las versiones posteriores no es necesario. Si tienen la duda, haganlo igual, no hace daño */
mt_srand(time());

/* A continuación, hacemos un ciclo o bucle mediante la función While, la cual funciona diciendole al interprete “Mientras se cumpla la condición haga…”. En este caso, la condición es que $i sea menor a $cantidad, o sea, la cantidad de números que le indicamos que generara. */

while($i<=$cant)
{
/* Luego, en la variable $generado almacenamos el resultado de llamar a la función mt_rand que es la que generará el número aleatorio, dandole 2 parámetros que serán los límites inferiores y superiores, en este caso el minimo y maximo que indicamos en el formulario. Luego mediante la sentencia echo desplegamos el texto avisando el número generado. El uso de $i dentro de esa sentencia dirá que número es del total que pedimos generar y luego $generado mostrará el número recien obtenido */

$generado=mt_rand($min,$max);
echo “Valor Nº’$i’ generado: ‘$generado’<br>”;

/* Finalmente incrementamos $i en 1 para que se vaya acercando al total de números que queremos generar */

$i++;
}
}
?>

Y con eso tendremos nuestro generador de números aleatorios, el cual pueden utilizar todas las veces que quieran.

Algunas notas adicionales:

1.- Este generador es bastante sencillo y se hace a partir de la base de que el usuario introducirá los datos correctos (númericos) en cada campo del formulario. Si quieren forzar a que estríctamente se introduzcan esos datos pueden hacer una comprobación en la 2da parte del código con una sentencia if y la función is_int la cual devuelve true or false si la variable es número entero. Por ejemplo:

if(!is_int($minimo))

{

echo “Se ha ingresado un valor no númerico. Vuelva atrás”;

}

2.- Al generar varios números, puede darse la situación de que uno o varios se repitan. Si lo que desean es generar una serie de números sin repetir, una solución es ir almacenando cada número generado en un vector y luego al generar uno nuevo compararlo con cada posición del vector, en caso de que se repita dar la orden de generar nuevamente, si no, almacenar y luego mostrar.

3.- El resultado de la operación lo presentamos de una manera bastante simple, por lo que no duden en optimizar el look presentando los resultados en una tabla o algo por el estilo.

En general, lo principal es observar que el código presentado en este tutorial es bastante básico y se encarga de cumplir la función de generar números aleatorios de manera rápida y sencilla. Sin duda que hay una serie de mejoras y comprobaciones que se pueden ir haciendo de a poco para convertirlo en una “aplicación” más completa y sólida.

Y con eso estaríamos listos. Esperamos que este tutorial haya sido de utilidad para Uds.

Recuerden como siempre que esto ha sido desarrollado, probado y documentado por el equipo de Como Lo Hago por lo que cuenta con nuestro sello de garantía. Cualquier duda, consulta o comentario que tengan, pueden hacerlo en el área habilitada a continuación.

Muchas gracias por leer y será hasta una próxima oportunidad.

Y recuerden, que falta cada vez menos para conocer a las mentes maestras.

Staff CLH

Tutoriales relacionados:

MalenaMaomaRegulequeWendyFantabuloso (No hay votos)
Loading ... Loading ...


Comenta