Un reto

Sorath
25 de Abril del 2005
Señores, me e paseado por toda la pagina y esta de poca madre, me parece muy bien que exista un foro de esta naturaleza, para ayudar a los despistados como yo.
Ahora despues de todas las flores viene lo interesante.

Un reto que me a partido el cerebro en dos.

Supongamos que tenemos grupos:
A B C D
E F
G H I J K L
M N
O
P

Y que todos eso grupos pertenecen a un solo grupo.

El detalle aqui es sacar todas las posibles combinaciones entre todos.
Muy facil diran un par de for, verdad?

Pues no es tan sencillos, el tamaño de los grupos puede ser variable:
Puede ser: A B C
o: A
o:A B C D E F G
todo depende del usuario, tambien la cantidad de grupos ejemplo:
A
B C D
E
F G H I
J K L M N
Ñ O P Q
R
S... puede seguir hasta Z.

Ahi es donde esta el problema desconocemos el tamaño de los grupos y la cantidad de grupos. Ya le e dado vuelta por todos lados y no encuentro algun codigo que me ayude. Un amigo me comento que posiblemente con recurcividad, y apenas estoy estudiando esa posibilidad, por eso os dijo: "AAAAAYYYYYUUUUUDDDDDAAAAA":
Podrian darme alguna idea o mejor aun algun codigo?
Se los agradesco de antemano, y sepanse que estare muy agradecido con quien me ayude. Gracias. Y hasta la proxima.

nkpevfqy
25 de Abril del 2005
En cuanto al almacenamiento, utiliza un Vector que a su vez contenga Vector, con lo cual puedes tener n grupo cada uno de m elementos.
En cuanto a lo de las conbinaciones entre todos, no entiendo a que te refieres.
Si explicas un poco lo que tienes y a lo que quieres llegar, igual podemos ayudarte.

Sorath
25 de Abril del 2005
Al decir combinacion de todos me refiero al siguiente ejemplo:
A B C
D
E F G
la combinacion: ADE, despues ADF, despues ADG, y despues BDE. No se si me explico, sacar todas las combinaciones posibles, y respecto a lo de almacenar, es buena idea, pero cada "letra" en este caso, contiene datos que ya se como almacenarlo, pero gracias de todas formas.

ramirex
25 de Abril del 2005
claro que si

esto es muy facil usando recursividad no hay donde perderte

cont=0;
public void repite(int cont){
if(cont==10 )return;
else repite(cont+1);
}

esto es la recursividad

saludos....

Sorath
25 de Abril del 2005
Perfecto, entendido lo de recursividad, ahora como lo aplicarias a un problema como el que les planteo, ya que tengo que manejar recursivadad dentro de recursividad, que no?

Sorath
25 de Abril del 2005
Que pasa no ahi nadie que me pueda dar un respuesta?