Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: ~V en 12 Junio 2010, 08:30 am



Título: ASesoria ¿? [quiero que me arroje 3 numeros aleatorios pero...]
Publicado por: ~V en 12 Junio 2010, 08:30 am
Holas,


Bueno Necesito que me entrege 3 digitos, con orden ascendiente y que no se repitan.

por ejemplo

1 - 4 - 7

No -->  1 - 4 -1


No se repiten los dijitos y van en orden de menor a mayor aleatoriamente...

para ello tengo el siguiente
<?

//alimentamos el generador de aleatorios

srand (time());
//generamos un número aleatorio
$numero_aleatorio1 = rand(1,7);
$numero_aleatorio2 = rand(2,8);
$numero_aleatorio3 = rand(3,9);


if ( $numero_aleatorio1 < $numero_aleatorio2 )
{

 if ($numero_aleatorio2 < $numero_aleatorio3)
 {
printf (" $numero_aleatorio1  --- $numero_aleatorio2 --- $numero_aleatorio3");
}
}

?>
Bien,  Asi evito que se repitan los numeros...

pero Necesito qué si no se cumple vuelva a intentar y no me a corrido la function...

no se emplearla quizas, pero probe y nada. sigue igual.


probe con un while

cambiando
if ( $numero_aleatorio1 < $numero_aleatorio2 )
por
while ( $numero_aleatorio1 < $numero_aleatorio2 )

pero el servidor se me cuelga y me manda error que supero los 30 segundos ...


Alguien me puede orientar  o decirme como hacerlo : )


Título: Re: ASesoria ¿? [quiero que me arroje 3 numeros aleatorios pero...]
Publicado por: jdc en 12 Junio 2010, 09:05 am
no se deberia poder si de verdad es rand, por ejemplo:

$a = rand(1,7);
$b = rand(2,8);
$c = rand(3,9);

si $a fuera igual a 7 $b solo podria ser 8 y por lo tanto $c solo 9 asi que no tendria sentido, lo que se me ocurre es que saques 3 numeros al azar ($a, $b y $c) y luego los ordenes de mayor a menor o biseversa.

Saludos