Programacion

¡¡Bienvenidos!!

martes, 28 de junio de 2011

Combinatoria con listas

Teniendo en cuenta que una lista es un conjunto de elementos ordenados según el orden de aparición de izquierda a derecha, dentro de los ejercicios con listas podemos considerar la generación de variaciones y permutaciones a partir de los elementos de una lista; pero también podemos considerar la generación de combinaciones y un tratamiento de conjuntos donde ya la ordenación no debe tenerse en cuenta.

A partir del predicado seleccion/3 que permite seleccionar de forma aleatoria un elemento de una lista devolviendo además una lista con los restantes elementos, podemos definir predicados para generar variaciones de un determinado tamaño, y en el caso extremo de que el tamaño coincida con la longitud de la lista podemos mejorar la definición para producir permutaciones.

 Para producir las combinaciones de un cierto tamaño a partir de los elementos de una lista también podemos recurrir a la definición recursiva Para producir las combinaciones de un cierto tamaño a partir de los añadiendo un elemento a una combinación de tamaño menor, pero en este caso hay que tener en cuenta que el orden en el que aparezcan los elementos no determinar´a combinaciones distintas como ocurre con la variaciones. En de aparición de los elementos en la lista original, para ello la selección del este caso será mejor buscar una forma canónica para representar cada combinación, esta forma puede ser la lista correspondiente respetando el orden elemento no se debe dejar al predicado selección/3 sino que deberá hacerse en la cabeza de las cláusulas tomando el primer elemento de la lista o no. y completando la combinación con los elementos siguientes (y no con los anteriores).

No hay comentarios:

Publicar un comentario