Foros del Web » Programando para Internet » PHP »

Funcion o algoritmo para generar numeros aleatorios del Loto, Loto5, Quini6 y Brinco

Estas en el tema de Funcion o algoritmo para generar numeros aleatorios del Loto, Loto5, Quini6 y Brinco en el foro de PHP en Foros del Web. Hola grupo, que tal? Estoy haciendo un proyecto para la facultad, y el profesor nos dio este enunciado, el cual realmente tengo muchas dudas. /* ...
  #1 (permalink)  
Antiguo 29/01/2015, 12:34
 
Fecha de Ingreso: enero-2015
Ubicación: en mi casa
Mensajes: 15
Antigüedad: 9 años, 2 meses
Puntos: 0
Funcion o algoritmo para generar numeros aleatorios del Loto, Loto5, Quini6 y Brinco

Hola grupo, que tal?
Estoy haciendo un proyecto para la facultad, y el profesor nos dio este enunciado, el cual realmente tengo muchas dudas.

/*
ENUNCIADO:
Generar un programa (usando una funcion o un array) que genere los 5, 6 y 8 numeros para los juegos LOTO, LOTO5, QUINI6 y BRINCO.

TENER EN CUENTA LO SIGUIENTE:

1) Si el juego es LOTO o QUINI6, para el primer numero, obtener un valor entre 00 a 45; si el juego es LOTO5, para el primer numero obtener un valor entre 00 a 41.
1.1) Si el juego es el LOTO, generar un numero (Jackpot1) de entre 00 a 09, y luego generar otro numero (Jackpot2) quitando el primer numero obtenido.
2) Obtener el segundo numero, pero sacar del array el primer numero obtenido.
3) Obtener el tercer numero, pero sacar del array el primero y segundo numeros obtenidos.
4) Obtener el cuarto numero, pero sacar del array el primero, segundo y tercero numeros obtenidos.
5) Obtener el quinto numero, pero sacar del array el primero, segundo, tercero y cuarto numero obtenidos.
6) Obtener el quinto numero, pero sacar del array el primero, segundo, tercero, cuarto y quinto numero obtenidos.
*/

Mis dudas son las siguientes:
Para hacer esto y generar el primer numero, ¿hago un array de 00 a 41/45, y utilizo "array_rand" y lo guardo en una variable, por ejemplo $PrimerNumero?

Y para el segundo numero, ¿genero otro array diferente que tenga todos los numeros MENOS el valor de $PrimerNumero?

Y asi deberia haberlo hasta el ultimo numero?

No pretendo que nadie me haga el codigo, solo me gustaria escuchar diferentes opiniones de como llevar el enunciado a codigo, y escribir el menor codigo posible.

Muchas gracias
  #2 (permalink)  
Antiguo 29/01/2015, 12:40
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Funcion o algoritmo para generar numeros aleatorios del Loto, Loto5, Quini

Lo primero que debes de hacer es resolver el problema como tu crees y cuando termines y pruebes que funciona, entonces vienes y solicitas opiniones.
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 11/02/2015, 09:02
 
Fecha de Ingreso: enero-2015
Ubicación: en mi casa
Mensajes: 15
Antigüedad: 9 años, 2 meses
Puntos: 0
Respuesta: Funcion o algoritmo para generar numeros aleatorios del Loto, Loto5, Quini

Hola a todos
Estuve viendo la forma de hacer un algoritmo que me muestre todas las combinaciones posibles entre el numero 0 al 45, mostrado en una columna de 6 numeros.

Encontre un codigo, pero me da este error:

Fatal error: Allowed memory size of 2097152 bytes exhausted (tried to allocate 32 bytes)

Ese error me da al querer poner el numero 6 en vez de 3 en esta linea:

$pe = permutations($words,3);

Segun entiendo, necesito unos 67 GB para poder mostrar todas las permutaciones de a 6 numeros del 00 al 45.

¿Alguna idea de como solucionarlo?
¿Hay forma de mandar la salida a un archivo de texto u otro formato?

Gracias

CODIGO:

<?PHP
ini_set('memory_limit', '65000M'); //Probe con memory_limit = -1 y no funciona
ini_set('max_execution_time', '300');

function permutations($arr,$n)
{
$res = array();

foreach ($arr as $w)
{
if ($n==1) $res[] = $w;
else
{
$perms = permutations($arr,$n-1);

foreach ($perms as $p)
{
$res[] = $w." ".$p;
}
}
}

return $res;
}

// Your array
$words = array('00','01','02','03','04','05','06','07','08' ,'09','10','11','12','13','14','15','16','17','18' ,'19','20','21','22','23','24','25','26','27','28' ,'29','30','31','32','33','34','35','36','37','38' ,'39','40','41','42','43','44','45');

// Get permutation by groups of 3 elements
$pe = permutations($words,3);

// Print it out
print_r($pe);
?>

Etiquetas: Ninguno
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 08:26.