• Publicidad

Todas las soluciones posibles de grupos irregulares...

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Todas las soluciones posibles de grupos irregulares...

Notapor lirsum » 2007-05-09 13:37 @609

Hola a todos:

Estoy en un dilema que no es precisamente de Perl, pero como en eso es lo que programo espero me podáis ayudar. Tengo que resolver el siguiente problema: hallar todas las combinaciones posibles (pero sin permutaciones) de una matriz no regular. O sea, teniendo

Código: Seleccionar todo
S  V  V
T  A  L
H


Tengo que dar todas las combinaciones posibles, ejemplo :
Código: Seleccionar todo
SVV
SVL
TAV

y así sucesivamente. Claro que en este ejemplo es relativamente fácil, porque son solo 12 combinaciones. Una solución que funciona es poner tres ciclos anidados que vayan combinando de atrás hacia delante, pero si tuviese 30 columnas tendría ¡30 ciclos anidados! y eso no me parece muy limpio.
¿Alguna sugerencia?
lirsum
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2007-05-09 13:28 @603

Publicidad

Notapor creating021 » 2007-05-09 18:45 @823

Esto tiene alguna regla?

STH es una combinacion valida?

Si lo es, sólo tienes que recorrer la matriz (poniendolo en un array, claro) y combinar uno por uno:

DATO1: [1, 0], [1, 1], [1, .....]
DATO2: [2, 0]....

Un sub para meter todo en un array o, merjor aun, en un hash y otro para recorrerlo y sacar datos por cada fila y columna.
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor

Notapor explorer » 2007-05-09 21:57 @956

Bienvenido a los foros de Perl en Español.

Y en cuanto a los 30 bucles... yo creo que no hay otra forma.

Hay algunos módulos sobre combinatoria en CPAN, pero para esta caso en particular no conozco ninguno.

En este foro hice algo parecido de combinatoria, usando recursividad. Está en este hilo: viewtopic.php?t=894
Última edición por explorer el 2007-05-10 10:39 @486, editado 1 vez en total
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Ya esta

Notapor lirsum » 2007-05-10 10:21 @473

Seguí el consejo de explorer y opté por los 30 bucles anidados: como sea resuelve el problema.
Gracias a todos los amigos que sugirieron.
Lirsum
lirsum
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2007-05-09 13:28 @603


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 11 invitados