Ver Mensaje Individual
  #8 (permalink)  
Antiguo 06/01/2015, 11:48
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: combinatorias

Hola,

Cita:
Iniciado por tomerqueves Ver Mensaje
Tendré que usar google y ver si mi idea sse adapta a cualquiera de tus tres opciones mejor que a la combinatoria pura. ...
A eso me refería, puede ser que necesites algo diferente que no sea combinatoria, o puede que si, dependerá de lo que quieres hacer. Aunque los conceptos estadísticos son bastante simples, lo difícil a veces es crear los algoritmos que generen la secuencia de combinaciones o lo que sea que necesites.

Cita:
Iniciado por tomerqueves Ver Mensaje
... Solo que pienso que el anidamiento de bucles for se podría también solucionar con recursividad y así me daría un numero de N letras a combinar dinámicos. ...
Es cierto, con recursividad se resuelve parte del problema, dependiendo de las características del problema. Puede ser que en tu caso se pueda resolver fácilmente o puede que no. El principal problema que vas a encontrar, creo, es la forma de mostrar el resultado, si observas detenidamente se hace uso de los 3 indices al mismo tiempo, eso es algo que no se puede obtener recursivamente, sin pasar la misma cantidad de parámetros a la función recursiva que la cantidad de anidación del ciclo for.

Cita:
Iniciado por tomerqueves Ver Mensaje
... Lo que quiero para que se vea mi idea es que el sistema arroje unas posibles soluciones a qué puede estar haciendo la OUIJA y sea el usuario quien pedio de check´s vaya definiendo lo que es la palabra o palabras que la ouija va diciendo. ...
En ese caso posiblemente son permutaciones, por ejemplo con E, P y Z. Podrías obtener EPZ pero también PEZ, cosa que no sucede con las combinaciones o por lo menos con el algoritmo anteriormente descrito. Aunque no estoy seguro como funciona eso de las palabras, si importa el orden o no.

Cita:
Iniciado por tomerqueves Ver Mensaje
...
funcion recoje (array)
{
combina (recoje)
{
definición de combinatoria + recoje (array);
}
}

Eso sería la pseudo idea. ...
El problema que observo, a simple vista, con ese algoritmo es que en la línea donde tendrías que imprimir el resultado no tienes acceso a los indices anteriores; es decir, si le pasas i, j, k, para imprimir array[i] + array[j] + array[k]; tendrías el mismo problema que los 3 bucles anidados, pero en este caso necesitas 3 parámetros.

No digo que no se pueda resolver, simplemente que es un poco mas complejo, y normalmente es bastante lento, las permutaciones de 8 letras son 8! = 40,320. Lo único que tendrías que hacer es definir bien el concepto de lo que quieres hacer y ver si estos métodos son factibles.

Saludos,

ps:

Pero como mencioné depende de lo que quieras lograr, por ejemplo:
http://www.forosdelweb.com/f13/como-...2/#post4648371
En ese ejemplo puedes ver como obtener una forma de combinación recursiva (usando Javascript, para un problema específico), la parte que no me termina de convencer en ese caso es que hay que ir guardando los resultados temporalmente en un array adicional.