Viernes 15 de Noviembre de 2024, 07:07
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación Específica
»
Diseño de Algoritmos
»
Combinacion De Elementos De Una Lista
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Combinacion De Elementos De Una Lista (Leído 2992 veces)
vimaci
Nuevo Miembro
Mensajes: 4
Combinacion De Elementos De Una Lista
«
en:
Miércoles 2 de Agosto de 2006, 19:57 »
0
Tengo una lista con, por ejemplo, los siguientes elementos: A, B, C, D, E y tengo que escribir todas las combinaciones posibles de N elementos (siendo N un parametro que me dan en la llamada del programa)
por ejemplo, para N=2 las combinaciones serían
A, B, C, D, E, AA, AB, AC, AD, AE, BA, BB, BC, BD, BE, CA, CB, CC, CD, CE, DA, DB, DC, DD, DE, EA, EB, EC, ED, EE
tengo que hacer una funcioncilla que me haga esto, y no se como hacerlo, agradezco cualquier sugerencia
Tweet
Enko
Miembro de PLATA
Mensajes: 1562
Nacionalidad:
Re: Combinacion De Elementos De Una Lista
«
Respuesta #1 en:
Jueves 3 de Agosto de 2006, 16:47 »
0
Trasladé a Diseño de Algoritmos, seguramente tendrás mas suerte aqui
fuhrer
Miembro MUY activo
Mensajes: 329
Nacionalidad:
Re: Combinacion De Elementos De Una Lista
«
Respuesta #2 en:
Jueves 3 de Agosto de 2006, 18:36 »
0
Hola, que tal.
Eso es fácil, lo único que tienes que hacer es tomar tu primer caracter, luego el segundo, después el tercero y así sucesivamente hasta que completes los
N
carateres. Esto lo deberas hacer recursivamente para que cuando regrese tu función, tomes el siguiente caracter.
Espero que me hayas entendido como.
Hasta luego.
Tienda México
Busquenos En Internet
Tuxiber
vimaci
Nuevo Miembro
Mensajes: 4
Re: Combinacion De Elementos De Una Lista
«
Respuesta #3 en:
Viernes 4 de Agosto de 2006, 16:04 »
0
Se que lo tengo que hacer recursivamente, pero estoy muuuuuuuuuuy pez en recursividad y no sé como hacerlo...
no encuentro por ahí nada parecido que me pueda orientar, asique solicito ayuda!!!!!!!
Voy a describir mi programa un poco mas a fondo. Tengo un programa que me lee de un fichero las letras que estén almacenadas y me las almacena en una lista, y ahora tengo que coger estas letras que tenga almacenadas en la lista y escribir en otra lista todas las posibles combinaciones de letras que se pudieran crear con estas letras. El tamaño de las letras que tengo que crear va desde 1 (es decir, enumerar todas las letras que tengo) hasta N, siendo N un numero que introduzco como variable a la funcion. Todas las letras se pueden repetir el numero de veces que haga falta.
P.D:El programa lo estoy codificando en PASCAL/Delphi
Muchas gracias
vimaci
Nuevo Miembro
Mensajes: 4
Re: Combinacion De Elementos De Una Lista
«
Respuesta #4 en:
Sábado 5 de Agosto de 2006, 16:10 »
0
ya está hecho
fuhrer
Miembro MUY activo
Mensajes: 329
Nacionalidad:
Re: Combinacion De Elementos De Una Lista
«
Respuesta #5 en:
Martes 8 de Agosto de 2006, 21:29 »
0
Hola.
La verdad no le entiendo muy bien a tu código, pero yo creo que sería más fácil que utilices un arreglo, ya que de esta forma sólo retornas el indice y no pierdes tus elementos como dices que te esta pasando, amenos que te lo hayan pedido con listas entonces revisa bien lo que haces.
Hasta luego.
Tienda México
Busquenos En Internet
Tuxiber
vimaci
Nuevo Miembro
Mensajes: 4
Re: Combinacion De Elementos De Una Lista
«
Respuesta #6 en:
Martes 15 de Agosto de 2006, 12:26 »
0
bueno, al final conseguí hacer la combinacion, el codigo utilizado es el siguiente, es evidente que tengo una unidad para la gestion de las listas:
procedure Combinacion(M,N:integer; coleccion : tlista; var comb:tlista);
..var
....letra,aux : tlista;
..procedure Combina(pos : integer);
....var i:integer;
......s,pal:tinfo;
....begin
......pal:='';
......if pos > M then
........begin
..........aux:=letra;
..........while aux<>nil do
............begin
..............pal:=pal+(aux^.info);
..............aux:=aux^.sig;
............end;
..........InsertarAlFinal(comb, pal);
..........borrarultimonodo(letra);
........end
......else
........begin
..........for i := 1 to N do
............begin
..............obtenerinfopos(coleccion, s, i);
..............Insertar(letra,s,pos);
..............Combina(pos + 1);
............end;
..........borrarultimonodo(letra);
........end
....end;
..begin
......crear(letra);
......Combina(1);
..end;
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación Específica
»
Diseño de Algoritmos
»
Combinacion De Elementos De Una Lista