Foros del Web » Programando para Internet » PHP »

Numeros aleatorios php

Estas en el tema de Numeros aleatorios php en el foro de PHP en Foros del Web. Buenas. Estoy intentando generar números aleatorios con PHP, he escrito este código pero probando varias veces los números se repiten. Código PHP: <?php echo  "3 numeros entre 0 y 10 distintos <br />" ...
  #1 (permalink)  
Antiguo 04/05/2011, 05:41
 
Fecha de Ingreso: abril-2011
Mensajes: 18
Antigüedad: 13 años, 8 meses
Puntos: 1
Numeros aleatorios php

Buenas.
Estoy intentando generar números aleatorios con PHP, he escrito este código pero probando varias veces los números se repiten.

Código PHP:
<?php
echo "3 numeros entre 0 y 10 distintos <br />";
$uno=rand(1,10);
$dos=rand(1,10);
$tres=rand(1,10);
while ( 
$uno === dos) {
$dos=rand(1,10);
}
while (( 
$tres === dos) or (tres === uno)) {
$tres=rand(1,10);
}

echo 
$uno;
echo 
"<br />";
echo 
$dos;
echo 
"<br />";
echo 
$tres;
echo 
"<br />";
?>
Lo que quiero son tres números aleatorios entre 1 y 10 sin que se repitan. Para eso los genero y compruebo con WHILE si son iguales a los otros, pero parece ser que hay algo mal. Alguna sugerencia? Gracias

Última edición por feeeeeR; 04/05/2011 a las 05:56 Razón: Aclarar
  #2 (permalink)  
Antiguo 04/05/2011, 06:00
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Numeros aleatorios php

Algo así
Código PHP:
Ver original
  1. <?php
  2. $numbers = array_rand(range(1,10), 3);
  3. print_r($numbers);
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 04/05/2011, 06:21
 
Fecha de Ingreso: abril-2011
Mensajes: 18
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Numeros aleatorios php

La solución de abimaelrc va muy bien, los genera y no se repiten.

El problema es que a veces genera el número 0 y nunca genera el número 10.

Probé usando esto:
Código PHP:
$numbers array_rand(range(2,11), 5); 
Pero sigue pasando lo mismo: genera los números de 0 a 9. Le sumaré 1 a los resultados y arreglado.

Gracias!!
  #4 (permalink)  
Antiguo 04/05/2011, 06:42
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Numeros aleatorios php

Bueno pues de esta formal, se puede hacer
Código PHP:
Ver original
  1. <?php
  2. $numbers = array_reverse(range(0,10));
  3. array_pop($numbers);
  4. shuffle($numbers);
  5. echo $numbers[0] . '<br />';
  6. echo $numbers[1] . '<br />';
  7. echo $numbers[2] . '<br />';
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 04/05/2011, 09:33
 
Fecha de Ingreso: abril-2011
Mensajes: 18
Antigüedad: 13 años, 8 meses
Puntos: 1
Respuesta: Numeros aleatorios php

Así funciona perfecto, genera tres números aleatorios entre 1 y 10 y no se repiten.

Gracias por tu ayuda .

Etiquetas: numeros, aleatoria
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:50.