Generar números aleatorios sin repeticiones con PHP
Generar números aleatorios sin repeticiones con PHP

Una vez más aquí. En esta ocasión vengo a dejar un pequeño programa que acabo de escribir dado que por el momento solo soy rico en proteínas y calcio. Con este código vamos a generar dos grupos de números, totalmente aleatorios. El primero de ellos va a generar cinco números del 1 al 50 y el segundo va a generar dos números del 1 al 12. Todos ellos se van a presentar en pantalla sin que se repitan. Además los vamos a ordenar de menor a mayor utilizando el método burbuja.

Estas combinaciones de números son las mismas que se pueden utilizar en el sorteo del Euromillón. Ese sorteo que se celebra en toda Europa y que tiene unos premios muy jugosos. Muchos entendidos dicen que para jugar a esto lo importante es hacerlo siempre a los mismos números, pero como en mi caso no tengo unos números de la suerte, ni nada parecido a los que jugar, prefiero hacerlo de forma aleatoria.

Genera números aleatorios con PHP

Por este motivo hace como un rato que me puse a escribir un poco de PHP, por aquello de que no se oxide, y el código resultante ha dado el siguiente pequeño programa que se puede ver funcionando en el siguiente enlace.

Código para generar números aleatorios con PHP

El código del programa que se puede ver en el anterior enlace aquí queda, por si a alguien le sirve de algo.

<?php
# definimos las 5 variables que contendrán los 5 números
$n1=$n2=$n3=$n4=$n5=0;
# definimos las 2 variables que van a contener las 2 estrellas
 $e1=$e2=0;

# buscamos 5 números aleatorios, verificando que no se repitan
$pos=1;
while(1){
	$rand=rand(1,50);
	$repetido=false;
	for($i=1;$i<=$pos;$i++)	{
		if(${"n".$i}==$rand){
			$repetido=true;
		}
	}

	if($repetido==false)	{
		${"n".$pos}=$rand;
		$pos++;
		if($pos==6){
			break;
		}
	}
}

# buscamos 2 números aleatorios para las estrellas, verificando que no se repitan
$pos=1;
while(1){
	$rand=rand(1,12);
	$repetido=false;
	for($i=1;$i<=$pos;$i++)	{
		if(${"e".$i}==$rand){
			$repetido=true;
		}
	}

	if($repetido==false)	{
		${"e".$pos}=$rand;
		$pos++;
		if($pos==3){
			break;
		}
	}
}
 

# ordenamos las 5 variables con el método burbuja
for($i=1;$i<=5;$i++){
    for($j=1;$j<=5-$i;$j++){
       if(${"n".$j} && ${"n".($j+1)} && ${"n".$j}>${"n".($j+1)}){
            $k=${"n".($j+1)};
            ${"n".($j+1)}=${"n".$j};
            ${"n".$j}=$k;
        }
    }
}

# ordenamos las 2 variables de las estrellas con el método burbuja
for($i=1;$i<=2;$i++){
    for($s=1;$s<=2-$i;$s++){
       if(${"e".$s} && ${"e".($s+1)} && ${"e".$s}>${"e".($s+1)}){
            $l=${"e".($s+1)};
            ${"e".($s+1)}=${"e".$s};
            ${"e".$s}=$l;
        }
    }
}
 
# mostramos el resultado de los números
for($i=1;$i<=5;$i++)
{
	if($i==1){
		echo "<strong>Números:</strong> ";
	}
	echo ${"n".$i};
	if ($i<5){
		echo " - ";
	}
}
echo "<p>";
# mostramos el resultado de las estrellas
for($i=1;$i<=2;$i++)
{
	if($i==1){
		echo "<strong>Estrellas:</strong> ";
	}
	echo ${"e".$i};
	if ($i<2){
		echo " - ";
	}
}
echo "</p>";
?>

<p><input type="button" value="Generar números" onclick="location.reload()"/></p>

Bueno, el caso es que el código anterior es todo PHP que genera los números con la función rand(), y el botón para recargar la página con JavaScript. No tiene mucho más que explicar. Posiblemente esta no sea la forma más elegante de generar números aleatorios, pero funciona

Ahora a ver si esto vale de algo y alguien se vuelve asquerosamente rico gracias a esto.







¿Qué te ha parecido este post?

¡Haz clic en una estrella para calificarla!

Puntuación media 5 / 5. Recuento de votos: 13

¡No hay votos hasta ahora! Sé el primero en calificar esta publicación.

No te pierdas otros artículos ...

¡Síguenos en las redes sociales!

¡Lamentamos que esta publicación no te haya sido útil!

¡Permítanos mejorar esta publicación!

¿Cuéntanos cómo podemos mejorar esta publicación?

Resumen
Generar números aleatorios sin repeticiones con PHP
Nombre
Generar números aleatorios sin repeticiones con PHP
Descripción
En este artículo vamos a ver un pequeño código que va a generar números aleatorios entre dos grupos de números, todos ellos sin que se repitan y ordenándolos de menor a mayor utilizando el "método burbuja".
Autor
entreunosyceros
Nombre del editor
entreunosyceros
Logo del editor

Deja una respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.