Programación General > C++ Builder
Algoritmo Calcular Combinaciones
(1/1)
neg1414:
Buenas, Haber si me explico:
Tengo una serie de datos que he guardado de la forma siguiente
--- Código: Text --- struct Datos{ short Dato1; short Dato2; short Dato3; short Dato4; } Datos Coleccion[5]; ]
con ella debo de calcular todas la combianciones posibles entre sus datos
de la forma
--- Código: Text --- short Combinaciones[NumCombinaciones][5] //Subgeneris Combinaciones[0].[0] = Coleccion[0].Dato1; Combinaciones[0].[1] = Coleccion[1].Dato1; Combinaciones[0].[2] = Coleccion[2].Dato1; Combinaciones[0].[3] = Coleccion[3].Dato1; Combinaciones[0].[4] = Coleccion[4].Dato1; Combinaciones[1].[0] = Coleccion[0].Dato1; Combinaciones[1].[1] = Coleccion[1].Dato1; Combinaciones[1].[2] = Coleccion[2].Dato1; Combinaciones[1].[3] = Coleccion[3].Dato1; Combinaciones[1].[4] = Coleccion[4].[b]Dato2;[/b] Combinaciones[2].[0] = Coleccion[0].Dato1; Combinaciones[2].[1] = Coleccion[1].Dato1; Combinaciones[2].[2] = Coleccion[2].Dato1; Combinaciones[2].[3] = Coleccion[3].Dato1; Combinaciones[2].[4] = Coleccion[4].[b]Dato3;[/b] Asi Sucesivamente hasta completar todas las Combinaciones Combinaciones[1024].[0] = Coleccion[0].[b]Dato4;[/b] Combinaciones[1024].[1] = Coleccion[1].[b]Dato4;[/b] Combinaciones[1024].[2] = Coleccion[2].[b]Dato4;[/b] Combinaciones[1024].[3] = Coleccion[3].[b]Dato4;[/b] Combinaciones[1024].[4] = Coleccion[4].[b]Dato4;[/b]
Para realizar estas operaciones solo se me ocurre mediante bucles Anidados (uno por cada coleccion en total 5) pero surge aqui un problema:
No se APRIORI cuantas colecciones tendran datos por lo cual puede que no necesitare los 5 bucles anidados: Si solo hay tres colecciones la dimension Combinaciones es: Combinaciones[64][5] y solo necesitare 3 bucles.
Hay algun algoritmo que solucione este problema
Gracias espero haberme explicado bien.
ProfesorX:
Pues no, casi no se entiende lo que quieres hacer, aunque te dire que si no sabes cuantas veces haras un ciclo, podrias utilizar un while en lugar de for.
Ademas, no veo el caso de tu declaracion:
--- Código: Text --- struct Datos{ short Dato1; short Dato2; short Dato3; short Dato4; } Datos Coleccion[5];
Si todos los datos de tu struct son iguales (short en este caso), ¿no seria mas sencillo utilizar una matriz de 5x4?
--- Código: Text --- short Coleccion[5][4];
Bueno, es mi opinion.
Saludos :)
neg1414:
Tienes toda la razon
Gracias
Navegación
Ir a la versión completa