SlideShare una empresa de Scribd logo
1 de 124
Descargar para leer sin conexión
Ejercicios de programación declarativa
con Prolog
José A. Alonso Jiménez
Grupo de Lógica Computacional
Dpto. de Ciencias de la Computación e Inteligencia Artificial
Universidad de Sevilla
Sevilla, 1 de Enero de 2006 (Versión de 20 de septiembre de 2007)
2
Esta obra está bajo una licencia Reconocimiento–NoComercial–CompartirIgual 2.5 Spain
de Creative Commons.
Se permite:
copiar, distribuir y comunicar públicamente la obra
hacer obras derivadas
Bajo las condiciones siguientes:
Reconocimiento. Debe reconocer los créditos de la obra de la manera especificada
por el autor.
No comercial. No puede utilizar esta obra para fines comerciales.
Compartir bajo la misma licencia. Si altera o transforma esta obra, o genera una
obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a
ésta.
Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia
de esta obra.
Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular
de los derechos de autor.
Esto es un resumen de la licencia completa. Para ver una copia de esta licencia, visite
ØØÔ »»
Ö Ø Ú 
ÓÑÑÓÒ׺ÓÖ »Ð 
 Ò× ×» ݹÒ
¹× »¾º » ×»
o envie una carta a
Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Índice general
Introducción 6
1. Operaciones con listas 9
1.1. Primer elemento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2. Resto de una lista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3. Construcción de listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4. Relación de pertenencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5. Concatenación de listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.6. Lista inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.7. Palíndromo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.8. Último elemento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.9. Penúltimo elemento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.10. Selección de un elemento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.11. Inserción de un elemento en una lista . . . . . . . . . . . . . . . . . . . . . 17
1.12. Sublista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.13. Permutación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.14. Lista con todos sus elementos iguales . . . . . . . . . . . . . . . . . . . . . 18
1.15. Paridad de la longitud de una lista . . . . . . . . . . . . . . . . . . . . . . . 19
1.16. Rotación de un elemento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.17. Subconjunto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2. Aritmética 21
2.1. Máximo de dos números . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2. Factorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3. Sucesión de Fibonacci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4. Máximo común divisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.5. Longitud de una lista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.6. Lista de números acotada por su longitud . . . . . . . . . . . . . . . . . . . 23
2.7. Máximo de una lista de números . . . . . . . . . . . . . . . . . . . . . . . . 24
2.8. Suma de los elementos de una lista . . . . . . . . . . . . . . . . . . . . . . . 24
2.9. Lista de números ordenada . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3
4 Índice general
2.10. Suma parcial de una lista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.11. Lista de Æ veces el número Æ . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.12. Generación de lista de números . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.13. Intervalo entero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.14. K–ésimo elemento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.15. Multiplicación de las ocurrencias de los elementos de una lista . . . . . . . 28
3. Estructuras 31
3.1. Segmentos como objetos estructurados . . . . . . . . . . . . . . . . . . . . . 31
3.2. Base de datos familiar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3. Autómata no–determinista . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.4. El problema del mono y el plátano . . . . . . . . . . . . . . . . . . . . . . . 44
3.5. Movimientos del caballo del ajedrez . . . . . . . . . . . . . . . . . . . . . . 45
3.6. Máximo elemento de un árbol binario . . . . . . . . . . . . . . . . . . . . . 47
4. Retroceso, corte y negación 49
4.1. Ejemplos de uso del corte . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2. Árboles de deducción de Ñ Ñ Ö
 . . . . . . . . . . . . . . . . . . . . . . 53
4.3. Diferencia de conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.4. Agregación de un elemento a un conjunto . . . . . . . . . . . . . . . . . . . 55
4.5. Separación de una lista de números en positivos y negativos . . . . . . . . 56
4.6. Suma de los números pares de una lista de números . . . . . . . . . . . . 56
4.7. Exponente de dos en la factorización de un número . . . . . . . . . . . . . 58
4.8. Transformación de lista a conjunto . . . . . . . . . . . . . . . . . . . . . . . 58
4.9. Signos de crecimientos de sucesiones numéricas . . . . . . . . . . . . . . . 60
4.10. Descomposición en factores primos . . . . . . . . . . . . . . . . . . . . . . . 60
4.11. Menor elemento que cumple una propiedad . . . . . . . . . . . . . . . . . 61
4.12. Números libres de cuadrados . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.13. Suma de los números libres de cuadrados . . . . . . . . . . . . . . . . . . . 63
4.14. Máximo número de una lista . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.15. Longitud de las subsucesiones comunes maximales . . . . . . . . . . . . . 64
4.16. Elementos repetidos en una lista . . . . . . . . . . . . . . . . . . . . . . . . 65
4.17. Subconjunto maximal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.18. Suma de los elementos con posiciones múltiplos de n . . . . . . . . . . . . 67
4.19. Compresión de listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.20. Empaquetamiento de listas . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.21. Codificación por longitud . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.22. Codificación reducida por longitud . . . . . . . . . . . . . . . . . . . . . . . 70
4.23. Decodificación de lista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.24. Codificación reducida directa . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.25. Cota superior de una lista de números . . . . . . . . . . . . . . . . . . . . . 73
Índice general 5
4.26. Dientes de sierra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5. Programación lógica de segundo orden 77
5.1. Determinación de un número por su factorial . . . . . . . . . . . . . . . . . 77
5.2. Árbol de resolución y definiciones equivalentes . . . . . . . . . . . . . . . 79
5.3. Nodos de una generación en una lista de árboles binarios . . . . . . . . . . 80
5.4. Lista de elementos únicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.5. Elementos más frecuentes de una lista . . . . . . . . . . . . . . . . . . . . . 83
5.6. Problema 3n + 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.7. Números perfectos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.8. Determinación de triángulos equiláteros . . . . . . . . . . . . . . . . . . . . 89
5.9. Operación binaria aplicada a listas . . . . . . . . . . . . . . . . . . . . . . . 90
5.10. Números en un término . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.11. Palabra sin vocales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.12. Palabras maximales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.13. Clausura transitiva de una relación . . . . . . . . . . . . . . . . . . . . . . . 92
5.14. Traducción de cifras a palabras . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.15. Transformación de lista dependiente de la posición . . . . . . . . . . . . . 94
5.16. Aplanamiento de listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
6. Estilo y eficiencia en programación lógica 97
6.1. Número de Hardy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.2. Subconjuntos de suma dada . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.3. Coloreado de mapas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7. Aplicaciones de programación declarativa 107
7.1. Formación de grupos minimales de asignaturas compatibles . . . . . . . . 107
7.2. Simulación de una calculadora básica . . . . . . . . . . . . . . . . . . . . . 110
7.3. Problema de las subastas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Bibliografía 121
Indice de definiciones 122
6 Índice general
Introducción
El objetivo del presente trabajo es presentar una colección de ejercicios para la asig-
natura “Programación declarativa” de tercer curso de la Ingeniería Informática.
Estos ejercicios complementa los apuntes de introducción a la programación decla-
rativa con Prolog ([1]) y a las transparencias de clase ([2]).
Todos los ejercicios se han comprobado usando la versión 5.6.18 de SWI Prolog.
7
8 Índice general
Capítulo 1
Operaciones con listas
Una lista es la lista vacía o se compone de un primer elemento y un resto, que es
una lista. En Prolog, la lista vacía se representa por ℄ y las listas no vacía son de la
forma Ä℄ donde es la cabeza y Ä es el resto.
1.1. Primer elemento
Ejercicio 1.1 Definir la relación ÔÖ Ñ ÖÓ´ ĸ µ que se verifique si es el primer elemento de
la lista Ä. Por ejemplo,
¹ ÔÖ Ñ ÖÓ´ ¸ ¸
℄¸ µº
Obtener las respuestas a las siguientes preguntas:
¹ ÔÖ Ñ ÖÓ´ ¸ ¸
℄¸ µº
¹ ÔÖ Ñ ÖÓ´ ¸ ℄¸ µº
¹ ÔÖ Ñ ÖÓ´ ¸ µº
Solución: La definición de ÔÖ Ñ ÖÓ es
ÔÖ Ñ ÖÓ´ ℄¸ µº
Las respuestas a las preguntas son
¹ ÔÖ Ñ ÖÓ´ ¸ ¸
℄¸ µº
¹ ÔÖ Ñ ÖÓ´ ¸ ¸
℄¸ µº
¹ ÔÖ Ñ ÖÓ´ ¸ ℄¸ µº
9
10 Capítulo 1. Operaciones con listas
¹ ÔÖ Ñ ÖÓ´ ¸ µº
℄
1.2. Resto de una lista
Ejercicio 1.2 Definir la relación Ö ×ØÓ´ Ľ¸ ľµ que se verifique si ľ es la lista obtenida a
partir de la lista Ľ suprimiendo el primer elemento. Por ejemplo,
¹ Ö ×ØÓ´ ¸ ¸
℄¸Äµº
Ä ¸ 
℄
Obtener las respuestas a las siguientes preguntas:
¹ Ö ×ØÓ´ Ä℄¸ ¸
℄µº
¹ Ö ×ØӴĸ ¸
℄µº
Solución: La definición de Ö ×ØÓ es
Ö ×ØÓ´ Ä℄¸Äµº
Las respuestas a las preguntas son
¹ Ö ×ØÓ´ Ä℄¸ ¸
℄µº
Ä ¸ 
℄
¹ Ö ×ØӴĸ ¸
℄µº
Ä ¸ ¸ 
℄
1.3. Construcción de listas
Ejercicio 1.3 Definir la relación 
ÓÒ×´ ¸ Ľ¸ ľµ que se verifique si ľ es la lista obtenida
añadiéndole a Ľ como primer elemento. Por ejemplo,
¹ 
ÓÒ×´ ¸ ¸
℄¸Äµº
Ä ¸ ¸ 
℄
Obtener las respuestas correspondientes a las siguientes preguntas:
¹ 
ÓÒ×´ ¸ ¸
℄¸ ¸ ¸
℄µº
¹ 
ÓÒ×´ ¸Ä¸ ¸ ¸
℄µº
¹ 
ÓÒ×´ ¸Ä¸ ¸ ¸
℄µº
¹ 
ÓÒ×´ ¸Ä¸ ¸ ¸
℄µº
1.4. Relación de pertenencia 11
Solución: La definición de 
ÓÒ× es

ÓÒ×´ ¸Ä¸ Ä℄µº
Las respuestas a las preguntas son
¹ 
ÓÒ×´ ¸ ¸
℄¸ ¸ ¸
℄µº
¹ 
ÓÒ×´ ¸Ä¸ ¸ ¸
℄µº
Ä ¸ 
℄
¹ 
ÓÒ×´ ¸Ä¸ ¸ ¸
℄µº
ÆÓ
¹ 
ÓÒ×´ ¸Ä¸ ¸ ¸
℄µº
Ä ¸ 
℄
1.4. Relación de pertenencia
Ejercicio 1.4 Definir la relación Ô ÖØ Ò 
 ´ ¸ ĵ que se verifique si es un elemento de la
lista Ä. Por ejemplo,
¹ Ô ÖØ Ò 
 ´ ¸ ¸ ¸
℄µº
×
¹ Ô ÖØ Ò 
 ´ ¸ ¸ ¸
℄µº
ÆÓ
Utilizar el programa para responder a las siguientes cuestiones:
1. ¿Es 
 un elemento de ¸
¸ ¸
℄?
2. ¿Cuáles son los elementos de ¸ ¸ ℄?
3. ¿Cuáles son los elementos comunes de ¸ ¸
℄, y ¸
¸ ℄?
Solución: La definición de Ô ÖØ Ò 
 ´ ¸Äµ, por recursión en Ä, es
Ô ÖØ Ò 
 ´ ¸ ℄µº
Ô ÖØ Ò 
 ´ ¸ Ä℄µ ¹
Ô ÖØ Ò 
 ´ ¸Äµº
Las respuesta a las preguntas son
1. ¿Es 
 un elemento de ¸
¸ ¸
℄?
12 Capítulo 1. Operaciones con listas
¹ Ô ÖØ Ò 
 ´
¸ ¸
¸ ¸
℄µº
×
2. ¿Cuáles son los elementos de ¸ ¸ ℄?
¹ Ô ÖØ Ò 
 ´ ¸ ¸ ¸ ℄µº
ÆÓ
3. ¿Cuáles son los elementos comunes de ¸ ¸
℄, y ¸
¸ ℄?
¹ Ô ÖØ Ò 
 ´ ¸ ¸ ¸
℄µ¸ Ô ÖØ Ò 
 ´ ¸ ¸
¸ ℄µº

ÆÓ
Nota: La relación Ô ÖØ Ò 
 se corresponde con la definida Ñ Ñ Ö.
1.5. Concatenación de listas
Ejercicio 1.5 Definir la relación 
ÓÒ
´ Ľ¸ ľ¸ Ä¿µ que se verifique si Ä¿ es la lista obtenida
escribiendo los elementos de ľ a continuación de los elementos de Ľ. Por ejemplo,
¹ 
ÓÒ
´ ¸ ℄¸ 
¸ ¸ ℄¸Äµº
Ä ¸ ¸ 
¸ ¸ ℄
Utilizar el programa para responder a las siguientes cuestiones:
1. ¿Qué lista hay que añadirle al lista ¸ ℄ para obtener ¸ ¸
¸ ℄?
2. ¿Qué listas hay que concatenar para obtener ¸ ℄?
3. ¿Pertenece a la lista ¸ ¸
℄?
4. ¿Es ¸
℄ una sublista de ¸ ¸
¸ ℄?
5. ¿Es ¸ ℄ una sublista de ¸ ¸
¸ ℄?
6. ¿Cuál es el último elemento de ¸ ¸
¸ ℄?
Solución: La definición de 
ÓÒ
´Ä½¸Ä¾¸Ä¿µ, por recursión en Ľ, es
1.5. Concatenación de listas 13

ÓÒ
´ ℄¸Ä¸Äµº

ÓÒ
´ Ľ℄¸Ä¾¸ Ä¿℄µ ¹

ÓÒ
´Ä½¸Ä¾¸Ä¿µº
Las repuestas a las cuestiones son
1. ¿Qué lista hay que añadirle al lista ¸ ℄ para obtener ¸ ¸
¸ ℄?
¹ 
ÓÒ
´ ¸ ℄¸Ä¸ ¸ ¸
¸ ℄µº
Ä 
¸ ℄
2. ¿Qué listas hay que concatenar para obtener ¸ ℄?
¹ 
ÓÒ
´Ä½¸Ä¾¸ ¸ ℄µº
Ľ ℄
ľ ¸ ℄
Ľ ℄
ľ ℄
Ľ ¸ ℄
ľ ℄
ÆÓ
3. ¿Pertenece a la lista ¸ ¸
℄?
¹ 
ÓÒ
´Ä½¸ ľ℄¸ ¸ ¸
℄µº
Ľ ℄
ľ 
℄
×
¹ 
ÓÒ
´ ¸ ℄¸ ¸ ¸
℄µº
×
4. ¿Es ¸
℄ una sublista de ¸ ¸
¸ ℄?
¹ 
ÓÒ
´ ¸ ¸
 ℄¸ ¸ ¸
¸ ℄µº
×
5. ¿Es ¸ ℄ una sublista de ¸ ¸
¸ ℄?
¹ 
ÓÒ
´ ¸ ¸ ℄¸ ¸ ¸
¸ ℄µº
ÆÓ
6. ¿Cuál es el último elemento de ¸ ¸
¸ ℄?
¹ 
ÓÒ
´ ¸ ℄¸ ¸ ¸
¸ ℄µº
14 Capítulo 1. Operaciones con listas
Nota: La relación 
ÓÒ
 se corresponde con la definida ÔÔ Ò .
1.6. Lista inversa
Ejercicio 1.6 Definir la relación ÒÚ Ö× ´·Ä½¸¹Ä¾µ que se verifique si ľ es la lista obtenida
invirtiendo el orden de los elementos de la lista Ľ. Por ejemplo,
¹ ÒÚ Ö× ´ ¸ ¸
℄¸Äµº
Ä 
¸ ¸ ℄
Solución: Vamos a presentar dos definiciones de ÒÚ Ö× ´Ä½¸Ä¾µ. Ambas son por
recursión en Ľ.
Primera solución: Usando la relación ÔÔ Ò , se define ÒÚ Ö× como
ÒÚ Ö× ½´ ℄¸ ℄µº
ÒÚ Ö× ½´ Ľ℄¸Ä¾µ ¹
ÒÚ Ö× ½´Ä½¸Ä¿µ¸
ÔÔ Ò ´Ä¿¸ ℄¸Ä¾µº
Segunda solución: Usando un acumulador, se define ÒÚ Ö× como
ÒÚ Ö× ¾´Ä½¸Ä¾µ ¹
ÒÚ Ö× ¾ ÙܴĽ¸Ä¾¸ ℄µº
La relación ÒÚ Ö× ¾ ÙÜ´·Ä½¸¹Ä¾¸·Ä¿µ se verifica si ľ es la lista obtenida aña-
diendo la inversa de Ľ a Ä¿ y se define por recursión en Ľ como sigue
ÒÚ Ö× ¾ ÙÜ´ ℄¸Ä¾¸Ä¾µº
ÒÚ Ö× ¾ ÙÜ´ Ľ℄¸Ä¾¸Ä¿µ ¹
ÒÚ Ö× ¾ ÙܴĽ¸Ä¾¸ Ä¿℄µº
Nota: La relación ÒÚ Ö× se corresponde con la relación definida Ö Ú Ö× .
1.7. Palíndromo
Ejercicio 1.7 Un palíndromo es una palabra que se lee igual en los dos sentidos, por ejemplo
“oso”. Definir la relación Ô Ð Ò ÖÓÑÓ´·Äµ que se verifique si la lista Ä es un palíndromo. Por
ejemplo,
1.8. Último elemento 15
¹ Ô Ð Ò ÖÓÑÓ´ Ӹ׸Ó℄µº
×
¹ Ô Ð Ò ÖÓÑÓ´ Ӹ׸ ℄µº
ÆÓ
Solución: La definición de Ô Ð Ò ÖÓÑÓ es
Ô Ð Ò ÖÓÑӴĵ ¹
Ö Ú Ö× ´Ä¸Äµº
1.8. Último elemento
Ejercicio 1.8 Definir la relación ÐØ ÑÓ´ ¸ ĵ que se verifique si es el último elemento de
la lista Ä. Por ejemplo,
¹ ÐØ ÑÓ´ ¸ ¸ ¸
¸ ℄µº
¹ ÐØ ÑÓ´ ¸Äµº
Ä ℄
Ä ¸ ℄
Ä ¸ ¸ ℄
×
Solución: Presentamos tres definiciones de ÐØ ÑÓ.
Primera solución: Usando ÔÔ Ò se define ÐØ ÑÓ por
ÐØ ÑÓ ½´ ¸Äµ ¹
ÔÔ Ò ´ ¸ ℄¸Äµº
Segunda solución: Usando Ö Ú Ö× se define ÐØ ÑÓ por
ÐØ ÑÓ ¾´ ¸Äµ ¹
Ö Ú Ö× ´Ä¸ ℄µº
Tercera solución: Una definición de ÐØ ÑÓ´ ¸Äµ por recursión en Ä es
ÐØ ÑÓ ¿´ ¸ ℄µº
ÐØ ÑÓ ¿´ ¸ Ä℄µ ¹
ÐØ ÑÓ ¿´ ¸Äµº
Nota: La relación ÐØ ÑÓ se corresponde con la relación definida Ð ×Ø.
16 Capítulo 1. Operaciones con listas
1.9. Penúltimo elemento
Ejercicio 1.9 Definir lar relación Ô Ò ÐØ ÑÓ´ ¸ ĵ que se verifique si es el penúltimo ele-
mento de la lista Ä. Por ejemplo,
¹ Ô Ò ÐØ ÑÓ´ ¸ ¸ ¸
¸ ℄µº

¹ Ô Ò ÐØ ÑÓ´
¸Äµº
Ä 
¸ ℄
Ä ¸ 
¸ ℄
×
Solución: Se presentan tres definiciones de Ô Ò ÐØ ÑÓ.
Primera solución: Usando ÔÔ Ò se define Ô Ò ÐØ ÑÓ por
Ô Ò ÐØ ÑÓ ½´ ¸Äµ ¹
ÔÔ Ò ´ ¸ ¸ ℄¸Äµº
Segunda solución: Usando Ö Ú Ö× se define Ô Ò ÐØ ÑÓ por
Ô Ò ÐØ ÑÓ ¾´ ¸Äµ ¹
Ö Ú Ö× ´Ä¸ ¸ ℄µº
Tercera solución: Una definición de Ô Ò ÐØ ÑÓ´ ¸Äµ por recursión en Ä es
Ô Ò ÐØ ÑÓ ¿´ ¸ ¸ ℄µº
Ô Ò ÐØ ÑÓ ¿´ ¸ ¸ Ä℄µ ¹
Ô Ò ÐØ ÑÓ ¿´ ¸ Ä℄µº
1.10. Selección de un elemento
Ejercicio 1.10 Definir la relación × Ð 

 ÓÒ ´ ¸ Ľ¸ ľµ que se verifique si ľ es la lista
obtenida eliminando una ocurrencia de en Ľ. Por ejemplo,
¹ × Ð 

 ÓÒ ´ ¸ ¸ ¸ ℄¸Äµº
Ä ¸ ℄
Ä ¸ ℄
ÆÓ
¹ × Ð 

 ÓÒ ´
¸ ¸ ¸ ℄¸Äµº
ÆÓ
¹ × Ð 

 ÓÒ ´ ¸Ä¸ ½¸¾℄µº
1.11. Inserción de un elemento en una lista 17
Ä ¸ ½¸ ¾℄
Ä ½¸ ¸ ¾℄
Ä ½¸ ¾¸ ℄
ÆÓ
¹ × Ð 

 ÓÒ ´ ¸ ½¸¾¸¿℄¸ ½¸¿℄µº
¾
ÆÓ
Solución: La definición de × Ð 

 ÓÒ ´ ¸Ä½¸Ä¾µ, por recursión en Ľ, es
× Ð 

 ÓÒ ´ ¸ Ä℄¸Äµº
× Ð 

 ÓÒ ´ ¸ Ľ℄¸ ľ℄µ ¹
× Ð 

 ÓÒ ´ ¸Ä½¸Ä¾µº
Nota: La relación × Ð 

 ÓÒ se corresponde con la definida × Ð 
Ø.
1.11. Inserción de un elemento en una lista
Ejercicio 1.11 Definir la relación Ò× ÖØ ´ ¸ Ľ¸ ľµ que se verifique si ľ es una lista
obtenida insertando en Ľ. Por ejemplo,
¹ Ò× ÖØ ´ ¸ ½¸¾℄¸Äµº
Ä ¸ ½¸ ¾℄
Ä ½¸ ¸ ¾℄
Ä ½¸ ¾¸ ℄
ÆÓ
Solución: La definición de Ò× ÖØ es
Ò× ÖØ ´ ¸Ä½¸Ä¾µ ¹
× Ð 
Ø´ ¸Ä¾¸Ä½µº
1.12. Sublista
Ejercicio 1.12 Definir la relación ×Ù Ð ×Ø ´ Ľ¸ ľµ que se verifique si Ľ es una sublista de
ľ. Por ejemplo,
¹ ×Ù Ð ×Ø ´ ¸
℄¸ ¸ ¸
¸ ℄µº
×
¹ ×Ù Ð ×Ø ´ ¸
℄¸ ¸ ¸
¸ ℄µº
ÆÓ
18 Capítulo 1. Operaciones con listas
¹ ×Ù Ð ×Ø ´ ¸ ℄¸Äµº
Ä ¸ ℄
Ä ¸ ¸ ℄
Ä ¸ ¸ ¸ ℄
×
Solución: La definición de ×Ù Ð ×Ø es
×Ù Ð ×Ø ´Ä½¸Ä¾µ ¹
ÔÔ Ò ´ Ä¿¸Ä ¸Ä¾µ¸
ÔÔ Ò ´Ä½¸ Ä ¸Ä µº
1.13. Permutación
Ejercicio 1.13 Definir la relación Ô ÖÑÙØ 
 Ò´·Ä½¸ ľµ que se verifique si ľ es una per-
mutación de Ľ. Por ejemplo,
¹ Ô ÖÑÙØ 
 Ò´ ¸ ¸
℄¸Äµº
Ä ¸ ¸ 
℄
Ä ¸ 
¸ ℄
Ä ¸ ¸ 
℄
Ä ¸ 
¸ ℄
Ä 
¸ ¸ ℄
Ä 
¸ ¸ ℄
ÆÓ
Solución: La definición de Ô ÖÑÙØ 
 ҴĽ¸Ä¾µ, por recursión en Ľ es
Ô ÖÑÙØ 
 Ò´ ℄¸ ℄µº
Ô ÖÑÙØ 
 ҴĽ¸ ľ℄µ ¹
× Ð 
Ø´ ¸Ä½¸Ä¿µ¸
Ô ÖÑÙØ 
 Ò´Ä¿¸Ä¾µº
Nota: La relación Ô ÖÑÙØ 
 ҴĽ¸Ä¾µ es equivalente a la definida Ô ÖÑÙØ Ø ÓҴľ¸Ä½µ.
1.14. Lista con todos sus elementos iguales
Ejercicio 1.14 Definir la relación ØÓ Ó× Ù Ð ×´·Äµ que se verifique si todos los elementos
de la lista Ä son iguales entre sí. Por ejemplo,
1.15. Paridad de la longitud de una lista 19
¹ ØÓ Ó× Ù Ð ×´ ¸ ¸ ℄µº
×
¹ ØÓ Ó× Ù Ð ×´ ¸ ¸ ℄µº
ÆÓ
¹ ØÓ Ó× Ù Ð ×´ ℄µº
×
Solución: La definición de ØÓ Ó× Ù Ð × es
ØÓ Ó× Ù Ð ×´ ℄µº
ØÓ Ó× Ù Ð ×´ ℄µº
ØÓ Ó× Ù Ð ×´ ¸ Ä℄µ ¹
ØÓ Ó× Ù Ð ×´ Ä℄µº
1.15. Paridad de la longitud de una lista
Ejercicio 1.15 Definir la relación ÐÓÒ ØÙ Ô Ö´·Äµ que se verifique si la longitud de la lista
Ä es par. Por ejemplo,
¹ ÐÓÒ ØÙ Ô Ö´ ¸ ℄µº
×
¹ ÐÓÒ ØÙ Ô Ö´ ¸ ¸
℄µº
ÆÓ
Solución: La definición de ÐÓÒ ØÙ Ô Ö, por recursión cruzada con la relación
ÐÓÒ ØÙ ÑÔ Ö, es
ÐÓÒ ØÙ Ô Ö´ ℄µº
ÐÓÒ ØÙ Ô Ö´ Ä℄µ ¹
ÐÓÒ ØÙ ÑÔ Ö´Äµº
La relación ÐÓÒ ØÙ ÑÔ Ö´·Äµ se verifica si la longitud de la lista Ä es impar. Por
ejemplo,
¹ ÐÓÒ ØÙ ÑÔ Ö´ ¸ ℄µº
ÆÓ
¹ ÐÓÒ ØÙ ÑÔ Ö´ ¸ ¸
℄µº
×
La definición de ÐÓÒ ØÙ ÑÔ Ö es
ÐÓÒ ØÙ ÑÔ Ö´ ℄µº
ÐÓÒ ØÙ ÑÔ Ö´ Ä℄µ ¹
ÐÓÒ ØÙ Ô Ö´Äµº
20 Capítulo 1. Operaciones con listas
1.16. Rotación de un elemento
Ejercicio 1.16 Definir la relación ÖÓØ ´ Ľ¸ ľµ que se verifique si ľ es la lista obtenida a
partir de Ľ colocando su primer elemento al final. Por ejemplo,
¹ ÖÓØ ´ ¸ ¸
¸ ℄¸Äµº
Ä ¸ 
¸ ¸ ℄
¹ ÖÓØ ´Ä¸ ¸
¸ ¸ ℄µº
Ä ¸ ¸ 
¸ ℄
Solución: La definición de ÖÓØ es
ÖÓØ ´ Ľ℄¸Äµ ¹
ÔÔ Ò ´Ä½¸ ℄¸Äµº
1.17. Subconjunto
Ejercicio 1.17 Definir la relación ×Ù 
ÓÒ ÙÒØÓ´·Ä½¸ ľµ que se verifique si ľ es un subcon-
junto de Ľ. Por ejemplo,
¹ ×Ù 
ÓÒ ÙÒØÓ´ ¸ ¸
¸ ℄¸ ¸ ℄µº
×
¹ ×Ù 
ÓÒ ÙÒØÓ´ ¸ ¸
¸ ℄¸ ¸ ℄µº
ÆÓ
¹ ×Ù 
ÓÒ ÙÒØÓ´ ¸ ¸
℄¸Äµº
Ä ¸ ¸ 
℄
Ä ¸ ℄
Ä ¸ 
℄
Ä ℄
Ä ¸ 
℄
Ä ℄
Ä 
℄
Ä ℄
ÆÓ
Solución: La definición de ×Ù 
ÓÒ ÙÒØӴĽ¸Ä¾µ, por recursión en Ľ, es
×Ù 
ÓÒ ÙÒØÓ´ ℄¸ ℄µº
×Ù 
ÓÒ ÙÒØÓ´ Ľ℄¸ ľ℄µ ¹
×Ù 
ÓÒ ÙÒØӴĽ¸Ä¾µº
×Ù 
ÓÒ ÙÒØÓ´ Ľ℄¸Ä¾µ ¹
×Ù 
ÓÒ ÙÒØӴĽ¸Ä¾µº
Capítulo 2
Aritmética
2.1. Máximo de dos números
Ejercicio 2.1 Definir la relación Ñ Ü ÑÓ´· ¸· ¸ µ que se verifique si es el máximo de e
. Por ejemplo,
¹ Ñ Ü ÑÓ´¾¸¿¸ µº
¿
¹ Ñ Ü ÑÓ´¿¸¾¸ µº
¿
Solución: La definición de Ñ Ü ÑÓ es
Ñ Ü ÑÓ´ ¸ ¸ µ ¹
º
Ñ Ü ÑÓ´ ¸ ¸ µ ¹
º
Nota: En Prolog está definida la función Ñ Ü´ ¸ µ que devuelve el máximo de e
. Por ejemplo,
¹ × Ñ Ü´ ¸½¼µº
½¼
2.2. Factorial
Ejercicio 2.2 Definir la relación 
ØÓÖ Ð´· ¸ µ que se verifique si es el factorial de .
Por ejemplo,
¹ 
ØÓÖ Ð´¿¸ µº
21
22 Capítulo 2. Aritmética
Solución: La definición de 
ØÓÖ Ð´ ¸ µ, por recursión sobre , es

ØÓÖ Ð´½¸½µº

ØÓÖ Ð´ ¸ µ ¹
½¸
½ × ¹½¸

ØÓÖ Ð´ ½¸ ½µ¸
× ¶ ½º
2.3. Sucesión de Fibonacci
Ejercicio 2.3 La sucesión de Fibonacci es 0,1,1,2,3,5,8,13,21,. . . en la que cada término, salvo
los dos primeros, es la suma de los dos anteriores. Definir la relación ÓÒ 

 ´·Æ¸¹ µ que se
verifique si es el Æ–ésimo término de la sucesión de Fibonacci. Por ejemplo,
¹ ÓÒ 

 ´ ¸ µº
Solución: La definición de ÓÒ 

 ´Æ¸ µ, por inducción en Æ, es
ÓÒ 

 ´¼¸¼µº
ÓÒ 

 ´½¸½µº
ÓÒ 

 ´Æ¸ µ ¹
Æ ½¸
ƽ × Æ¹½¸
ÓÒ 

 ´Æ½¸ ½µ¸
ƾ × Æ¹¾¸
ÓÒ 

 ´Æ¾¸ ¾µ¸
× ½· ¾º
2.4. Máximo común divisor
Ejercicio 2.4 Definir la relación Ñ
 ´· ¸· ¸ µ que se verifique si es el máximo común
divisor de e . Por ejemplo,
¹ Ñ
 ´½¼¸½ ¸ µº
Solución: La definición de Ñ
 es
2.5. Longitud de una lista 23
Ñ
 ´ ¸ ¸ µº
Ñ
 ´ ¸ ¸ µ ¹
¸
½ × ¹ ¸
Ñ
 ´ ¸ ½¸ µº
Ñ
 ´ ¸ ¸ µ ¹
¸
Ñ
 ´ ¸ ¸ µº
2.5. Longitud de una lista
Ejercicio 2.5 Definir la relación ÐÓÒ ØÙ ´ ĸ Ƶ que se verifique si Æ es la longitud de la
lista Ä. Por ejemplo
¹ ÐÓÒ ØÙ ´ ¸ ¸
℄¸Æµº
Æ ¿
¹ ÐÓÒ ØÙ ´Ä¸¿µº
Ä ¸ ¸ ℄
Solución: La definición de ÐÓÒ ØÙ es
ÐÓÒ ØÙ ´ ℄¸¼µº
ÐÓÒ ØÙ ´ Ä℄¸Æµ ¹
ÐÓÒ ØÙ ´Ä¸Æ½µ¸
Æ × Æ½ · ½º
Nota: La relación ÐÓÒ ØÙ se corresponde con la relación definida Ð Ò Ø .
2.6. Lista de números acotada por su longitud
Ejercicio 2.6 Una lista está acotada si todos sus elementos son menores que su longitud. Definir
la relación Ð ×Ø 
ÓØ ´·Äµ que se verifique si todos los elementos de la lista de números Ä
son menores que la longitud de Ä. Por ejemplo,
¹ Ð ×Ø 
ÓØ ´ ½¸¼¸¾℄µº
×
¹ Ð ×Ø 
ÓØ ´ ½¸¿¸¾℄µº
ÆÓ
Solución: La definición de Ð ×Ø 
ÓØ es
24 Capítulo 2. Aritmética
Ð ×Ø 
ÓØ ´Äµ ¹
Ð Ò Ø ´Ä¸Æµ¸
Ð ×Ø 
ÓØ ÙܴĸƵº
donde Ð ×Ø 
ÓØ ÙÜ´·Ä¸·Æµ se verifica si todos los elementos de la lista de nú-
meros Ä son menores que Æ. Por ejemplo,
¹ Ð ×Ø 
ÓØ ÙÜ´ ½¸ ¸¿℄¸ µº
×
¹ Ð ×Ø 
ÓØ ÙÜ´ ½¸ ¸¿℄¸ µº
ÆÓ
y está definida por
Ð ×Ø 
ÓØ ÙÜ´ ℄¸ µº
Ð ×Ø 
ÓØ ÙÜ´ Ä℄¸Æµ ¹
Ƹ
Ð ×Ø 
ÓØ ÙܴĸƵº
2.7. Máximo de una lista de números
Ejercicio 2.7 Definir la relación Ñ Ü Ð ×Ø ´·Ä¸ µ que se verifique si es el máximo de la
lista de números Ä. Por ejemplo,
¹ Ñ Ü Ð ×Ø ´ ½¸¿¸ ¸ ℄¸ µº
Solución: La definición de Ñ Ü Ð ×Ø es
Ñ Ü Ð ×Ø ´ ℄¸ µº
Ñ Ü Ð ×Ø ´ ½¸ ¾ Ä℄¸ µ ¹
¿ × Ñ Ü´ ½¸ ¾µ¸
Ñ Ü Ð ×Ø ´ ¿ Ä℄¸ µº
2.8. Suma de los elementos de una lista
Ejercicio 2.8 Definir la relación ×ÙÑ Ð ×Ø ´·Ä¸ µ que se verifique si es la suma de los
elementos de la lista de números Ä. Por ejemplo,
2.9. Lista de números ordenada 25
¹ ×ÙÑ Ð ×Ø ´ ½¸¿¸ ℄¸ µº
Solución: La definición de ×ÙÑ Ð ×Ø es
×ÙÑ Ð ×Ø ´ ℄¸¼µº
×ÙÑ Ð ×Ø ´ Ä℄¸ µ ¹
×ÙÑ Ð ×Ø ´Ä¸ ½µ¸
× · ½º
Nota: La relación ×ÙÑ Ð ×Ø se corresponde con la relación definida ×ÙÑÐ ×Ø.
2.9. Lista de números ordenada
Ejercicio 2.9 Definir la relación ÓÖ Ò ´·Äµ que se verifique si la lista de números Ä está
ordenada de manera creciente. Por ejemplo,
¹ ÓÖ Ò ´ ½¸¿¸¿¸ ℄µº
×
¹ ÓÖ Ò ´ ½¸¿¸ ¸¾℄µº
ÆÓ
Solución: La definición de ÓÖ Ò es
ÓÖ Ò ´ ℄µº
ÓÖ Ò ´ ¸ Ä℄µ ¹
¸
ÓÖ Ò ´ Ä℄µº
2.10. Suma parcial de una lista
Ejercicio 2.10 Definir la relación ×ÙÑ Ô Ö
 д·Ä½¸· ¸ ľµ que se verifique si ľ es un
subconjunto de Ľ tal que la suma de sus elementos es . Por ejemplo,
¹ ×ÙÑ Ô Ö
 д ½¸¾¸ ¸¿¸¾℄¸ ¸Äµº
Ä ½¸ ¾¸ ¾℄
Ä ¾¸ ¿℄
Ä ℄
Ä ¿¸ ¾℄
ÆÓ
26 Capítulo 2. Aritmética
Solución: Se presentan dos definiciones de ×ÙÑ Ô Ö
 Ð.
Primera solución: Una definición, usando ×Ù 
ÓÒ ÙÒØÓ (p. 20) y ×ÙÑ Ð ×Ø (p. 25),
es
×ÙÑ Ô Ö
 Ð ½´Ä½¸ ¸Ä¾µ ¹
×Ù 
ÓÒ ÙÒØӴĽ¸Ä¾µ¸
×ÙÑ Ð ×Ø ´Ä¾¸ µº
Segunda solución: Una definición recursiva de ×ÙÑ Ô Ö
 Ð es
×ÙÑ Ô Ö
 Ð ¾´ ℄¸¼¸ ℄µº
×ÙÑ Ô Ö
 Ð ¾´ Ľ℄¸ ¸ ľ℄µ ¹
¸
× ¹ ¸
×ÙÑ Ô Ö
 Ð ¾´Ä½¸ ¸Ä¾µº
×ÙÑ Ô Ö
 Ð ¾´ Ľ℄¸ ¸Ä¾µ ¹
×ÙÑ Ô Ö
 Ð ¾´Ä½¸ ¸Ä¾µº
2.11. Lista de Æ veces el número Æ
Ejercicio 2.11 Definir la relación Ð ×Ø ´·Æ¸¹Äµ que se verifique si Ä es la lista de longitud Æ
cuyos elementos son Æ. Por ejemplo,
¹ Ð ×Ø ´¿¸Äµº
Ä ¿¸ ¿¸ ¿℄
Solución: La definición de Ð ×Ø es
Ð ×Ø ´Æ¸Äµ ¹
Ð ×Ø ÙܴƸƸĵº
donde Ð ×Ø ÙÜ´·Æ¸·Å¸¹Äµ se verifica si Ä es la lista de longitud Å cuyos elementos
son Æ. Por ejemplo,
¹ Ð ×Ø ÙÜ´ ¸ ¸Äµº
Ä ¸ ¸ ¸ ℄
y se define por
Ð ×Ø ÙÜ´ ¸¼¸ ℄µº
Ð ×Ø ÙܴƸŸ Æ Ä℄µ ¹
Å ¼¸
Ž × Å¹½¸
Ð ×Ø ÙܴƸŽ¸Äµº
2.12. Generación de lista de números 27
2.12. Generación de lista de números
Ejercicio 2.12 Definir la relación Ð ×Ø Ò Ñ ÖÓ×´·Æ¸·Å¸¹Äµ que se verifica si L es la lista
de los números desde N hasta M, ambos inclusive. Por ejemplo,
¹ Ð ×Ø Ò Ñ ÖÓ×´¿¸ ¸Äµº
Ä ¿¸ ¸ ℄
¹ Ð ×Ø Ò Ñ ÖÓ×´¿¸¾¸Äµº
ÆÓ
Solución: La definición de Ð ×Ø Ò Ñ ÖÓ× es
Ð ×Ø Ò Ñ ÖÓ״ƸƸ Æ℄µº
Ð ×Ø Ò Ñ ÖÓ״ƸŸ Æ Ä℄µ ¹
Æ Å¸
ƽ × Æ·½¸
Ð ×Ø Ò Ñ ÖÓ״ƽ¸Å¸Äµº
Nota: La relación Ð ×Ø Ò Ñ ÖÓ× se corresponde con la definida ÒÙÑÐ ×Ø.
2.13. Intervalo entero
Ejercicio 2.13 Definir la relación ÒØÖ ´·Æ½¸·Æ¾¸ µ que se verifique si es un número en-
tero tal que ƽ ≤ ≤ ƾ. Por ejemplo,
¹ ÒØÖ ´¾¸ ¸ µº
¾
¿
ÆÓ
Solución: La definición de ÒØÖ es
ÒØÖ ´Æ½¸Æ¾¸Æ½µ ¹
ƽ ƾº
ÒØÖ ´Æ½¸Æ¾¸ µ ¹
ƽ ƾ¸
Æ¿ × Æ½·½¸
ÒØÖ ´Æ¿¸Æ¾¸ µº
Nota: La relación ÒØÖ se corresponde con la definida ØÛ Ò.
28 Capítulo 2. Aritmética
2.14. K–ésimo elemento
Ejercicio 2.14 Definir la relación Ð Ñ ÒØÓ Ò´·Ã¸ ĸ µ que se verifique si es el Öésimo
elemento de la lista Ä (se empieza a numerar en 1). Por ejemplo,
¹ Ð Ñ ÒØÓ Ò´¾¸ ¸ ¸
¸ ℄¸ µº
¹ Ð Ñ ÒØÓ Ò´¾¸Ä¸ µº
Ä ¸ ℄
Solución: La definición de Ð Ñ ÒØÓ Ò es
Ð Ñ ÒØÓ Ò´½¸ ℄¸ µº
Ð Ñ ÒØÓ Ò´Ã¸ Ä℄¸ µ ¹
à ½¸
ý × Ã¹½¸
Ð Ñ ÒØÓ Ò´Ã½¸Ä¸ µº
Nota: La relación Ð Ñ ÒØÓ Ò se corresponde con la relación definida ÒØ ½.
2.15. Multiplicación de las ocurrencias de los elementos
de una lista
Ejercicio 2.15 Definir la relación ÑÙÐØ ÔÐ 
 ´·Ä½¸·Æ¸¹Ä¾µ que se verifica si ľ es la lista
obtenida repitiendo Æ veces los elementos de la lista Ľ. Por ejemplo,
¹ ÑÙÐØ ÔÐ 
 ´ ¸ ¸
℄¸¿¸Äµº
Ä ¸ ¸ ¸ ¸ ¸ ¸ 
¸ 
¸ 
℄
Solución: La definición de ÑÙÐØ ÔÐ 
 es
ÑÙÐØ ÔÐ 
 ´Ä½¸Æ¸Ä¾µ ¹
ÑÙÐØ ÔÐ 
 ÙܴĽ¸Æ¸Æ¸Ä¾µº
donde ÑÙÐØ ÔÐ 
 ÙÜ´·Ä½¸·Ã¸·Æ¸¹Ä¾µ se verifica si ľ es la lista obtenida repitien-
do à veces el primer elemento de Ľ y Æ veces los restantes elementos. Por ejemplo,
¹ ÑÙÐØ ÔÐ 
 ÙÜ´ ¸ ¸
℄¸¾¸¿¸Äµº
Ä ¸ ¸ ¸ ¸ ¸ 
¸ 
¸ 
℄
Su definición es
2.15. Multiplicación de las ocurrencias de los elementos de una lista 29
ÑÙÐØ ÔÐ 
 ÙÜ´ ℄¸ ¸ ¸ ℄µº
ÑÙÐØ ÔÐ 
 ÙÜ´ Ľ℄¸¼¸Æ¸Ä¾µ ¹
ÑÙÐØ ÔÐ 
 ÙܴĽ¸Æ¸Æ¸Ä¾µº
ÑÙÐØ ÔÐ 
 ÙÜ´ Ľ℄¸Ã¸Æ¸ ľ℄µ ¹
à ¼¸
ý × Ã¹½¸
ÑÙÐØ ÔÐ 
 ÙÜ´ Ľ℄¸Ã½¸Æ¸Ä¾µº
30 Capítulo 2. Aritmética
Capítulo 3
Estructuras
3.1. Segmentos como objetos estructurados
Ejercicio 3.1 Supongamos que representamos los puntos del plano mediante términos de la for-
ma
ÔÙÒØÓ´ ¸ µ
donde e son números, y los segmentos del plano mediante términos de la forma
× Ñ ÒØӴȽ¸È¾µ
donde Ƚ y Ⱦ son los puntos extremos del segmento. Definir las relaciones
Ú ÖØ 
 д ˵ y ÓÖ ÞÓÒØ Ð´ ˵
que se verifiquen si el segmento Ë es vertical (resp. horizontal). Por ejemplo,
¹ Ú ÖØ 
 Ð´× Ñ ÒØÓ´ÔÙÒØÓ´½¸¾µ¸ÔÙÒØÓ´½¸¿µµµº
×
¹ Ú ÖØ 
 Ð´× Ñ ÒØÓ´ÔÙÒØÓ´½¸¾µ¸ÔÙÒØÓ´ ¸¾µµµº
ÆÓ
¹ Ú ÖØ 
 Ð´× Ñ ÒØÓ´ÔÙÒØÓ´½¸¾µ¸ÔÙÒØÓ´½¸¿µµµº
ÆÓ
¹ Ú ÖØ 
 Ð´× Ñ ÒØÓ´ÔÙÒØÓ´½¸¾µ¸ÔÙÒØÓ´ ¸¾µµµº
×
Usar el programa para responder a las siguientes cuestiones:
1. ¿Es vertical el segmento que une los puntos ´½¸½µ y ´½¸¾µ?
2. ¿Es vertical el segmento que une los puntos ´½¸½µ y ´¾¸¾µ?
3. ¿Hay algún tal que el segmento que une los puntos ´½¸½µ y ´¾¸ µ sea vertical?
4. ¿Hay algún tal que el segmento que une los puntos ´½¸¾µ y ´ ¸¿µ sea vertical?
5. ¿Hay algún tal que el segmento que une los puntos ´½¸½µ y ´¾¸ µ sea horizontal?
31
32 Capítulo 3. Estructuras
6. ¿Para qué puntos el segmento que comienza en ´¾¸¿µ es vertical?
7. ¿Hay algún segmento que sea horizontal y vertical?
Solución: Las definiciones de Ú ÖØ 
 Ð y ÓÖ ÞÓÒØ Ð son
Ú ÖØ 
 Ð´× ´ÔÙÒØÓ´ ¸ µ¸ÔÙÒØÓ´ ¸ ½µµµº
ÓÖ ÞÓÒØ Ð´× ´ÔÙÒØÓ´ ¸ µ¸ÔÙÒØÓ´ ½¸ µµµº
Las respuestas a las preguntas son
1. ¿Es vertical el segmento que une los puntos ´½¸½µ y ´½¸¾µ?
¹ Ú ÖØ 
 Ð´× ´ÔÙÒØÓ´½¸½µ¸ÔÙÒØÓ´½¸¾µµµº
×
2. ¿Es vertical el segmento que une los puntos ´½¸½µ y ´¾¸¾µ?
¹ Ú ÖØ 
 Ð´× ´ÔÙÒØÓ´½¸½µ¸ÔÙÒØÓ´¾¸¾µµµº
ÆÓ
3. ¿Hay algún tal que el segmento que une los puntos ´½¸½µ y ´¾¸ µ sea vertical?
¹ Ú ÖØ 
 Ð´× ´ÔÙÒØÓ´½¸½µ¸ÔÙÒØÓ´¾¸ µµµº
ÆÓ
4. ¿Hay algún tal que el segmento que une los puntos ´½¸¾µ y ´ ¸¿µ sea vertical?
¹ Ú ÖØ 
 Ð´× ´ÔÙÒØÓ´½¸¾µ¸ÔÙÒØÓ´ ¸¿µµµº
½
ÆÓ
5. ¿Hay algún tal que el segmento que une los puntos ´½¸½µ y ´¾¸ µ sea horizontal?
¹ ÓÖ ÞÓÒØ Ð´× ´ÔÙÒØÓ´½¸½µ¸ÔÙÒØÓ´¾¸ µµµº
½
ÆÓ
6. ¿Para qué puntos el segmento que comienza en ´¾¸¿µ es vertical?
¹ Ú ÖØ 
 Ð´× ´ÔÙÒØÓ´¾¸¿µ¸Èµµº
È ÔÙÒØÓ´¾¸ µ
ÆÓ
7. ¿Hay algún segmento que sea horizontal y vertical?
3.2. Base de datos familiar 33
¹ Ú ÖØ 
 д˵¸ ÓÖ ÞÓÒØ Ð´Ëµº
Ë × ´ÔÙÒØÓ´ ¸ µ¸ ÔÙÒØÓ´ ¸ µµ
ÆÓ
¹ Ú ÖØ 
 д µ¸ ÓÖ ÞÓÒØ Ð´ µº
×
3.2. Base de datos familiar
Ejercicio 3.2 En este ejercicio vamos a trabajar con una base de datos familiar.
1. Representar la información relativa a las siguientes familias:
En la primera familia,
• el padre es Tomás García Pérez, nacido el 7 de Mayo de 1960, trabaja de profesor
y gana 60 euros diarios;
• la madre es Ana López Ruiz, nacida el 10 de marzo de 1962, trabaja de médica y
gana 90 euros diarios;
• el hijo es Juan García López, nacido el 5 de Enero de 1980, estudiante;
• la hija es María García López, nacida el 12 de Abril de 1992, estudiante.
En la segunda familia,
• el padre es José Pérez Ruiz, nacido el 6 de Marzo de 1963, trabaja de pintor y
gana 120 euros diarios;
• la madre es Luisa Gálvez Pérez, nacida el 12 de Mayo de 1964, trabaja de médica
y gana 90 euros diarios;
• un hijo es Juan Luis Pérez Pérez, nacido el 5 de Febrero de 1990, estudiante;
• una hija es María José Pérez Pérez, nacida el 12 de Junio de 1992, estudiante;
• otro hijo es José María Pérez Pérez, nacido el 12 de Julio de 1994, estudiante.
2. Realizar las siguientes consultas:
¿existe familia sin hijos?
¿existe familia con un hijo?
¿existe familia con dos hijos?
¿existe familia con tres hijos?
¿existe familia con cuatro hijos.?
3. Buscar los nombres de los padres de familia con tres hijos.
4. Definir la relación 
 × Ó´ µ que se verifique si es un hombre casado.
34 Capítulo 3. Estructuras
5. Preguntar por los hombres casados.
6. Definir la relación 
 × ´ µ que se verifique si es una mujer casada.
7. Preguntar por las mujeres casadas.
8. Determinar el nombre de todas las mujeres casadas que trabajan.
9. Definir la relación Ó´ µ que se verifique si figura en alguna lista de hijos.
10. Preguntar por los hijos.
11. Definir la relación Ô Ö×ÓÒ ´ µ que se verifique si es una persona existente en la base de
datos.
12. Preguntar por los nombres y apellidos de todas las personas existentes en la base de datos.
13. Determinar todos los estudiantes nacidos antes de 1993.
14. Definir la relación 
 Ò 
 Ñ ÒØÓ´ ¸ µ de forma que si es una persona, enton-
ces es su fecha de nacimiento.
15. Buscar todos los hijos nacidos en 1992.
16. Definir la relación ×Ù Ð Ó´ ¸ µ que se verifique si el sueldo de la persona es .
17. Buscar todas las personas nacidas antes de 1964 cuyo sueldo sea superior a 72 euros dia-
rios.
18. Definir la relación ØÓØ Ð´Ä¸ µ de forma que si Ä es una lista de personas, entonces es la
suma de los sueldos de las personas de la lista Ä.
19. Calcular los ingresos totales de cada familia.
Solución: Solución del apartado 1: La representación de la información sobre las
dos familias es
Ñ Ð ´Ô Ö×ÓÒ ´ ØÓÑ ×¸ Ö
 ¸Ô Ö Þ℄¸

 ´ ¸Ñ ÝÓ¸½ ¼µ¸
ØÖ Ó´ÔÖÓ ×ÓÖ¸ ¼µµ¸
Ô Ö×ÓÒ ´ Ò ¸ÐÓÔ Þ¸ÖÙ Þ℄¸

 ´½¼¸Ñ ÖÞÓ¸½ ¾µ¸
ØÖ Ó´Ñ 
 ¸ ¼µµ¸
Ô Ö×ÓÒ ´ Ù Ò¸ Ö
 ¸ÐÓÔ Þ℄¸

 ´ ¸ Ò ÖÓ¸½ ¼µ¸
×ØÙ ÒØ µ¸
3.2. Base de datos familiar 35
Ô Ö×ÓÒ ´ Ñ Ö ¸ Ö
 ¸ÐÓÔ Þ℄¸

 ´½¾¸ Ö Ð¸½ ¾µ¸
×ØÙ ÒØ µ ℄µº
Ñ Ð ´Ô Ö×ÓÒ ´ Ó× ¸Ô Ö Þ¸ÖÙ Þ℄¸

 ´ ¸Ñ ÖÞÓ¸½ ¿µ¸
ØÖ Ó´Ô ÒØÓÖ¸½¾¼µµ¸
Ô Ö×ÓÒ ´ ÐÙ × ¸ ÐÚ Þ¸Ô Ö Þ℄¸

 ´½¾¸Ñ ÝÓ¸½ µ¸
ØÖ Ó´Ñ 
 ¸ ¼µµ¸
Ô Ö×ÓÒ ´ Ù Ò ÐÙ ×¸Ô Ö Þ¸Ô Ö Þ℄¸

 ´ ¸ Ö ÖÓ¸½ ¼µ¸
×ØÙ ÒØ µ¸
Ô Ö×ÓÒ ´ Ñ Ö Ó× ¸Ô Ö Þ¸Ô Ö Þ℄¸

 ´½¾¸ ÙÒ Ó¸½ ¾µ¸
×ØÙ ÒØ µ¸
Ô Ö×ÓÒ ´ Ó× Ñ Ö ¸Ô Ö Þ¸Ô Ö Þ℄¸

 ´½¾¸ ÙÐ Ó¸½ µ¸
×ØÙ ÒØ µ ℄µº
Solución del apartado 2: Las consultas, y sus respuestas son,
¹ Ñ Ð ´ ¸ ¸ ℄µº
ÆÓ
¹ Ñ Ð ´ ¸ ¸ ℄µº
ÆÓ
¹ Ñ Ð ´ ¸ ¸ ¸ ℄µº
×
¹ Ñ Ð ´ ¸ ¸ ¸ ¸ ℄µº
×
¹ Ñ Ð ´ ¸ ¸ ¸ ¸ ¸ ℄µº
ÆÓ
Solución del apartado 3:
¹ Ñ Ð ´Ô Ö×ÓÒ ´Æȸ ¸ µ¸ ¸ ¸ ¸ ℄µº
ÆÈ Ó× ¸ Ô Ö Þ¸ ÖÙ Þ℄
ÆÓ
Solución del apartado 4:

 × Ó´ µ ¹
Ñ Ð ´ ¸ ¸ µº
36 Capítulo 3. Estructuras
Solución del apartado 5:
¹ 
 × Ó´ µº
Ô Ö×ÓÒ ´ ØÓÑ ×¸ Ö
 ¸ Ô Ö Þ℄¸

 ´ ¸ Ñ ÝÓ¸ ½ ¼µ¸
ØÖ Ó´ÔÖÓ ×ÓÖ¸ ¼µµ
Ô Ö×ÓÒ ´ Ó× ¸ Ô Ö Þ¸ ÖÙ Þ℄¸

 ´ ¸ Ñ ÖÞÓ¸ ½ ¿µ¸
ØÖ Ó´Ô ÒØÓÖ¸ ½¾¼µµ
ÆÓ
Solución del apartado 6:

 × ´ µ ¹
Ñ Ð ´ ¸ ¸ µº
Solución del apartado 7:
¹ 
 × ´ µº
Ô Ö×ÓÒ ´ Ò ¸ ÐÓÔ Þ¸ ÖÙ Þ℄¸

 ´½¼¸ Ñ ÖÞÓ¸ ½ ¾µ¸
ØÖ Ó´Ñ 
 ¸ ¼µµ
Ô Ö×ÓÒ ´ ÐÙ × ¸ ÐÚ Þ¸ Ô Ö Þ℄¸

 ´½¾¸ Ñ ÝÓ¸ ½ µ¸
ØÖ Ó´Ñ 
 ¸ ¼µµ
ÆÓ
Solución del apartado 8:
¹ 
 × ´Ô Ö×ÓÒ ´ Ƹ ¸ ℄¸ ¸ØÖ Ó´ ¸ µµµº
Æ Ò
Æ ÐÙ ×
ÆÓ
Solución del apartado 9:
Ó´ µ ¹
Ñ Ð ´ ¸ ¸Äµ¸
Ñ Ñ Ö´ ¸Äµº
Solución del apartado 10:
3.2. Base de datos familiar 37
¹ Ó´ µº
Ô Ö×ÓÒ ´ Ù Ò¸ Ö
 ¸ÐÓÔ Þ℄¸ 
 ´ ¸ Ò ÖÓ¸½ ¼µ¸ ×ØÙ ÒØ µ
Ô Ö×ÓÒ ´ Ñ Ö ¸ Ö
 ¸ÐÓÔ Þ℄¸ 
 ´½¾¸ Ö Ð¸½ ¾µ¸ ×ØÙ ÒØ µ
Ô Ö×ÓÒ ´ Ù Ò ÐÙ ×¸Ô Ö Þ¸Ô Ö Þ℄¸ 
 ´ ¸ Ö ÖÓ¸½ ¼µ¸ ×ØÙ ÒØ µ
Ô Ö×ÓÒ ´ Ñ Ö Ó× ¸Ô Ö Þ¸Ô Ö Þ℄¸ 
 ´½¾¸ ÙÒ Ó¸½ ¾µ¸ ×ØÙ ÒØ µ
Ô Ö×ÓÒ ´ Ó× Ñ Ö ¸Ô Ö Þ¸Ô Ö Þ℄¸ 
 ´½¾¸ ÙÐ Ó¸½ µ¸ ×ØÙ ÒØ µ
ÆÓ
Solución del apartado 11:
Ô Ö×ÓÒ ´ µ ¹

 × Ó´ µ

 × ´ µ
Ó´ µº
Solución del apartado 12:
¹ Ô Ö×ÓÒ ´Ô Ö×ÓÒ ´ ¸ ¸ µµº
ØÓÑ ×¸ Ö
 ¸ Ô Ö Þ℄
Ó× ¸ Ô Ö Þ¸ ÖÙ Þ℄
Ò ¸ ÐÓÔ Þ¸ ÖÙ Þ℄
ÐÙ × ¸ ÐÚ Þ¸ Ô Ö Þ℄
Ù Ò¸ Ö
 ¸ ÐÓÔ Þ℄
Ñ Ö ¸ Ö
 ¸ ÐÓÔ Þ℄
Ù Ò Ð٠׸ Ô Ö Þ¸ Ô Ö Þ℄
Ñ Ö Ó× ¸ Ô Ö Þ¸ Ô Ö Þ℄
Ó× Ñ Ö ¸ Ô Ö Þ¸ Ô Ö Þ℄
ÆÓ
Solución del apartado 13:
¹ Ô Ö×ÓÒ ´Ô Ö×ÓÒ ´ ¸ 
 ´ ¸ ¸ Óµ¸ ×ØÙ ÒØ µµ¸ Ó ½ ¿º
Ù Ò¸ Ö
 ¸ ÐÓÔ Þ℄
Ó ½ ¼
Ñ Ö ¸ Ö
 ¸ ÐÓÔ Þ℄
Ó ½ ¾
Ù Ò Ð٠׸ Ô Ö Þ¸ Ô Ö Þ℄
Ó ½ ¼
Ñ Ö Ó× ¸ Ô Ö Þ¸ Ô Ö Þ℄
Ó ½ ¾
ÆÓ
Solución del apartado 14:
38 Capítulo 3. Estructuras

 Ò 
 Ñ ÒØÓ´Ô Ö×ÓÒ ´ ¸ ¸ µ¸ µº
Solución del apartado 15:
¹ Ó´ µ¸ 
 Ò 
 Ñ ÒØÓ´ ¸ 
 ´ ¸ ¸½ ¾µµº
Ô Ö×ÓÒ ´ Ñ Ö Ó× ¸Ô Ö Þ¸Ô Ö Þ℄¸ 
 ´½¾¸ ÙÒ Ó¸½ ¾µ¸ ×ØÙ ÒØ µ
ÆÓ
Solución del apartado 16:
×Ù Ð Ó´Ô Ö×ÓÒ ´ ¸ ¸ØÖ Ó´ ¸ µµ¸ µº
×Ù Ð Ó´Ô Ö×ÓÒ ´ ¸ ¸ ×ØÙ ÒØ µ¸¼µº
Solución del apartado 17:
¹ Ô Ö×ÓÒ ´ µ¸

 Ò 
 Ñ ÒØÓ´ ¸ 
 ´ ¸ ¸ Óµµ¸
Ó ½ ¸
×Ù Ð Ó´ ¸ µ¸
¾º
Ô Ö×ÓÒ ´ Ó× ¸ Ô Ö Þ¸ ÖÙ Þ℄¸

 ´ ¸ Ñ ÖÞÓ¸ ½ ¿µ¸
ØÖ Ó´Ô ÒØÓÖ¸ ½¾¼µµ
Ó ½ ¿
½¾¼
Ô Ö×ÓÒ ´ Ò ¸ ÐÓÔ Þ¸ ÖÙ Þ℄¸

 ´½¼¸ Ñ ÖÞÓ¸ ½ ¾µ¸
ØÖ Ó´Ñ 
 ¸ ¼µµ
Ó ½ ¾
¼
ÆÓ
Solución del apartado 18:
ØÓØ Ð´ ℄¸¼µº
ØÓØ Ð´ Ä℄¸ µ ¹
×Ù Ð Ó´ ¸ ½µ¸
ØÓØ Ð´Ä¸ ¾µ¸
× ½ · ¾º
Solución del apartado 19:
3.3. Autómata no–determinista 39
¹ Ñ Ð ´ ¸ ¸ µ¸ØÓØ Ð´ ¸ ℄¸ÌÓØ Ðµº
Ô Ö×ÓÒ ´ ØÓÑ ×¸ Ö
 ¸Ô Ö Þ℄¸

 ´ ¸Ñ ÝÓ¸½ ¼µ¸
ØÖ Ó´ÔÖÓ ×ÓÖ¸ ¼µµ
Ô Ö×ÓÒ ´ Ò ¸ÐÓÔ Þ¸ÖÙ Þ℄¸

 ´½¼¸Ñ ÖÞÓ¸½ ¾µ¸
ØÖ Ó´Ñ 
 ¸ ¼µµ
Ô Ö×ÓÒ ´ Ù Ò¸ Ö
 ¸ÐÓÔ Þ℄¸ 
 ´ ¸ Ò ÖÓ¸½ ¼µ¸ ×ØÙ ÒØ µ¸
Ô Ö×ÓÒ ´ Ñ Ö ¸ Ö
 ¸ÐÓÔ Þ℄¸ 
 ´½¾¸ Ö Ð¸½ ¾µ¸ ×ØÙ ÒØ µ℄
ÌÓØ Ð ½ ¼
Ô Ö×ÓÒ ´ Ó× ¸Ô Ö Þ¸ÖÙ Þ℄¸

 ´ ¸Ñ ÖÞÓ¸½ ¿µ¸
ØÖ Ó´Ô ÒØÓÖ¸½¾¼µµ
Ô Ö×ÓÒ ´ ÐÙ × ¸ ÐÚ Þ¸Ô Ö Þ℄¸

 ´½¾¸Ñ ÝÓ¸½ µ¸
ØÖ Ó´Ñ 
 ¸ ¼µµ
Ô Ö×ÓÒ ´ Ù Ò ÐÙ ×¸Ô Ö Þ¸Ô Ö Þ℄¸ 
 ´ ¸ Ö ÖÓ¸½ ¼µ¸ ×ØÙ ÒØ µ¸
Ô Ö×ÓÒ ´ Ñ Ö Ó× ¸Ô Ö Þ¸Ô Ö Þ℄¸ 
 ´½¾¸ ÙÒ Ó¸½ ¾µ¸ ×ØÙ ÒØ µ
Ô Ö×ÓÒ ´ Ó× Ñ Ö ¸Ô Ö Þ¸Ô Ö Þ℄¸ 
 ´½¾¸ ÙÐ Ó¸½ µ¸ ×ØÙ ÒØ µ℄
ÌÓØ Ð ¾½¼
ÆÓ
3.3. Autómata no–determinista
Ejercicio 3.3 Consideremos el autómata representado por
40 Capítulo 3. Estructuras
b
e1
a
a
e2
b
e3e4
b
siendo ¿ el estado final.
1. Representar el autómata utilizando las siguientes relaciones
Ò Ð´ µ que se verifica si es el estado final.
ØÖ Ò×´ ½¸ ¸ ¾µ que se verifica si se puede pasar del estado ½ al estado ¾ usando
la letra .
ÒÙÐÓ´ ½¸ ¾µ que se verifica si se puede pasar del estado ½ al estado ¾ mediante un
movimiento nulo.
2. Definir la relación 
 ÔØ ´ ¸Äµ que se verifique si el autómata, a partir del estado ,
acepta la lista Ä. Por ejemplo,
¹ 
 ÔØ ´ ½¸ ¸ ¸ ¸ ℄µº
×
¹ 
 ÔØ ´ ¾¸ ¸ ¸ ¸ ℄µº
ÆÓ
3. Determinar si el autómata acepta la lista ¸ ¸ ¸ ℄.
4. Determinar los estados a partir de los cuales el autómata acepta la lista ¸ ℄.
5. Determinar las palabras de longitud 3 aceptadas por el autómata a partir del estado ½.
6. Definir la relación 
 ÔØ 
ÓØ ½´ ¸Ä¸Æµ que se verifique si el autómata, a partir
del estado , acepta la lista Ä y la longitud de Ä es Æ.
3.3. Autómata no–determinista 41
7. Buscar las cadenas aceptadas a partir de ½ con longitud 3.
8. Definir la relación 
 ÔØ 
ÓØ ¾´ ¸Ä¸Æµ que se verifique si el autómata, a partir
del estado , acepta la lista Ä y la longitud de Ä es menor o igual que Æ.
9. Buscar las cadenas aceptadas a partir de ½ con longitud menor o igual 3.
Solución: Solución del apartado 1:
Ò Ð´ ¿µº
ØÖ Ò×´ ½¸ ¸ ½µº
ØÖ Ò×´ ½¸ ¸ ¾µº
ØÖ Ò×´ ½¸ ¸ ½µº
ØÖ Ò×´ ¾¸ ¸ ¿µº
ØÖ Ò×´ ¿¸ ¸ µº
ÒÙÐÓ´ ¾¸ µº
ÒÙÐÓ´ ¿¸ ½µº
Solución del apartado 2:

 ÔØ ´ ¸ ℄µ ¹
Ò Ð´ µº

 ÔØ ´ ¸ Ä℄µ ¹
ØÖ Ò×´ ¸ ¸ ½µ¸

 ÔØ ´ ½¸Äµº

 ÔØ ´ ¸Äµ ¹
ÒÙÐÓ´ ¸ ½µ¸

 ÔØ ´ ½¸Äµº
Solución del apartado 3:
¹ 
 ÔØ ´ ½¸ ¸ ¸ ¸ ℄µº
×
Solución del apartado 4:
¹ 
 ÔØ ´ ¸ ¸ ℄µº
½
¿
ÆÓ
Solución del apartado 5:
42 Capítulo 3. Estructuras
¹ 
 ÔØ ´ ½¸ ¸ ¸ ℄µº
ÆÓ
Solución del apartado 6: Presentamos dos definiciones. La primera usando 
 ÔØ

 ÔØ 
ÓØ ½ ´ ¸Ä¸Æµ ¹
Ð Ò Ø ´Ä¸Æµ¸

 ÔØ ´ ¸Äµº
La segunda definición es una variación de la definición de acepta:

 ÔØ 
ÓØ ½ ´ ¸ ℄¸¼µ ¹
Ò Ð´ µº

 ÔØ 
ÓØ ½ ´ ¸ Ä℄¸Æµ ¹
Æ ¼¸
ØÖ Ò×´ ¸ ¸ ½µ¸
Å × Æ ¹ ½¸

 ÔØ 
ÓØ ½ ´ ½¸Ä¸Åµº

 ÔØ 
ÓØ ½ ´ ¸Ä¸Æµ ¹
ÒÙÐÓ´ ¸ ½µ¸

 ÔØ 
ÓØ ½ ´ ½¸Ä¸Æµº
Nota: La primera definición es más simple y eficiente que la segunda como se ob-
serva en el siguiente ejemplo
¹ Ø Ñ ´ 
 ÔØ 
ÓØ ½ ´ ¾¸ ĸ ¼¼¼µµº
± ½¼¸¼¾ Ò Ö Ò
 ׸ ¼º¼½ ÈÍ Ò ¼º¼½ × 
ÓÒ × ´½¾ ± È͸ ½¼¼¾ ¼¼ Ä Ô×µ
¹ Ø Ñ ´ 
 ÔØ 
ÓØ ½ ´ ¾¸ ĸ ¼¼¼µµº
± ¾¼¸¼¿ Ò Ö Ò
 ׸ ¼º¼¾ ÈÍ Ò ¼º¼¾ × 
ÓÒ × ´½¾ ± È͸ ½¼¼½ ¼ Ä Ô×µ
A partir de ahora, adoptaremos la definición 
 ÔØ 
ÓØ ½

 ÔØ 
ÓØ ½´ ¸Ä¸Åµ ¹

 ÔØ 
ÓØ ½ ´ ¸Ä¸Åµº
Solución del apartado 7:
3.3. Autómata no–determinista 43
¹ 
 ÔØ 
ÓØ ½´ ½¸Ä¸¿µº
Ä ¸ ¸ ℄
Ä ¸ ¸ ℄
ÆÓ
Solución del apartado 8: Presentamos dos definiciones. La primera usando 
 ÔØ

 ÔØ 
ÓØ ¾ ´ ¸Ä¸Æµ ¹
ØÛ Ò´¼¸Æ¸Åµ¸
Ð Ò Ø ´Ä¸Åµ¸

 ÔØ ´ ¸Äµº
y la segunda modificando 
 ÔØ

 ÔØ 
ÓØ ¾ ´ ¸ ℄¸ Ƶ ¹
Ò Ð´ µº

 ÔØ 
ÓØ ¾ ´ ¸ Ä℄¸Æµ ¹
Æ ¼¸
ØÖ Ò×´ ¸ ¸ ½µ¸
Å × Æ¹½¸

 ÔØ 
ÓØ ¾ ´ ½¸Ä¸Åµº

 ÔØ 
ÓØ ¾ ´ ¸Ä¸Æµ ¹
Æ ¼¸
ÒÙÐÓ´ ¸ ½µ¸

 ÔØ 
ÓØ ¾ ´ ½¸Ä¸Æµº
Nota: La primera definición es más simple y eficiente que la segunda como se ob-
serva en el siguiente ejemplo
¹ Ø Ñ ´ 
 ÔØ 
ÓØ ¾ ´ ½¸ ĸ½¼¼¼¼µµº
± Ò Ö Ò
 ׸ ¼º¼¼ ÈÍ Ò ¼º¼¼ × 
ÓÒ × ´¼± È͸ ÁÒ Ò Ø Ä Ô×µ
¹ Ø Ñ ´ 
 ÔØ 
ÓØ ¾ ´ ½¸ ĸ½¼¼¼¼µµº
± ¼¸¼¾ Ò Ö Ò
 ׸ ¼º¼ ÈÍ Ò ¼º¼ × 
ÓÒ × ´½½¿± È͸ ½ ½ Ä Ô×µ
A partir de ahora, adoptaremos la definición 
 ÔØ 
ÓØ ¾

 ÔØ 
ÓØ ¾´ ¸Ä¸Åµ ¹

 ÔØ 
ÓØ ¾ ´ ¸Ä¸Åµº
Solución del apartado 9:
¹ 
 ÔØ 
ÓØ ¾´ ½¸Ä¸¿µº
Ä ¸ ¸ ℄
Ä ¸ ℄
Ä ¸ ¸ ℄
ÆÓ
44 Capítulo 3. Estructuras
3.4. El problema del mono y el plátano
Ejercicio 3.4 Un mono se encuentra en la puerta de una habitación. En el centro de la habitación
hay un plátano colgado del techo. El mono está hambriento y desea coger el plátano, pero no lo
alcanza desde el suelo. En la ventana de la habitación hay una silla que el mono puede usar. El
mono puede realizar las siguientes acciones: pasear de un lugar a otro de la habitación, empujar
la silla de un lugar a otro de la habitación (si está en el mismo lugar que la silla), subirse en la
silla (si está en el mismo lugar que la silla) y coger el plátano (si está encima de la silla en el
centro de la habitación).
Definir la relación ×ÓÐÙ
 Ò´ ¸Ëµ que se verifique si Ë es una sucesión de acciones que
aplicadas al estado permiten al mono coger el plátano. Por ejemplo,
¹ ×ÓÐÙ
 Ò´ ×Ø Ó´ÔÙ ÖØ ¸×Ù ÐÓ¸Ú ÒØ Ò ¸× Òµ¸Äµº
Ä Ô × Ö´ÔÙ ÖØ ¸Ú ÒØ Ò µ¸ ÑÔÙ Ö´Ú ÒØ Ò ¸
 ÒØÖÓµ¸×Ù Ö¸
Ó Ö℄
donde ×Ø Ó´ÈŸ ŸÈ˸ µ significa que el mono se encuentra en la posición ÈÅ (puerta, centro
o ventana) encima de Å (suelo o silla), la silla se encuentra en la posición ÈË (puerta, centro o
ventana) y el mono tiene ( = 
ÓÒ) o no ( = × Ò) el plátano.
Solución:
×ÓÐÙ
 Ò´ ×Ø Ó´ ¸ ¸ ¸
ÓÒµ¸ ℄µº
×ÓÐÙ
 Ò´ ½¸ Ä℄µ ¹
ÑÓÚ Ñ ÒØÓ´ ½¸ ¸ ¾µ¸
×ÓÐÙ
 Ò´ ¾¸Äµº
La relación ÑÓÚ Ñ ÒØÓ´ ×Ø Ó´ÈŽ¸ Ž¸È˽¸ ½µ¸ ¸ ×Ø Ó´Èž¸ ž¸È˾¸ ¾µµ se ve-
rifica si en el ×Ø Ó´ÈŽ¸ Ž¸È˽¸ ½µ se puede aplicar la acción y como resultado de
su aplicación se pasa al ×Ø Ó´Èž¸ ž¸È˾¸ ¾µ.
ÑÓÚ Ñ ÒØÓ´ ×Ø Ó´
 ÒØÖÓ¸× ÐÐ ¸
 ÒØÖÓ¸× Òµ¸

Ó Ö¸
×Ø Ó´
 ÒØÖÓ¸× ÐÐ ¸
 ÒØÖÓ¸
ÓÒµµº
ÑÓÚ Ñ ÒØÓ´ ×Ø Ó´ ¸×Ù ÐÓ¸ ¸Íµ¸
×Ù Ö¸
×Ø Ó´ ¸× ÐÐ ¸ ¸Íµµº
ÑÓÚ Ñ ÒØÓ´ ×Ø Ó´ ½¸×Ù ÐÓ¸ ½¸Íµ¸
ÑÔÙ Ö´ ½¸ ¾µ¸
×Ø Ó´ ¾¸×Ù ÐÓ¸ ¾¸Íµµº
ÑÓÚ Ñ ÒØÓ´ ×Ø Ó´ ¸×Ù ÐÓ¸ ¸Íµ¸
Ô × Ö´ ¸ µ¸
×Ø Ó´ ¸×Ù ÐÓ¸ ¸Íµµº
3.5. Movimientos del caballo del ajedrez 45
3.5. Movimientos del caballo del ajedrez
Ejercicio 3.5 Supongamos que los cuadros del tablero de ajedrez los representamos por pares de
números ¸ ℄ con e entre ½ y .
1. Definir la relación × ÐØ ´· ½¸ ¾µ que se verifica si el caballo puede pasar en un movi-
miento del cuadrado ½ al cuadrado ¾. Por ejemplo,
¹ × ÐØ ´ ½¸½℄¸Ëµº
Ë ¿¸¾℄
Ë ¾¸¿℄
ÆÓ
2. Definir la relación 
 Ñ ÒӴĵ que se verifique si Ä es una lista de cuadrados representando
el camino recorrido por un caballo sobre un tablero vacío. Por ejemplo,
¹ 
 Ñ ÒÓ´ ½¸½℄¸ ℄µº
¿¸¾℄
¾¸¿℄
ÆÓ
3. Usando la relación 
 Ñ ÒÓ, escribir una pregunta para determinar los caminos de longitud
4 por los que puede desplazarse un caballo desde cuadro ¾¸½℄ hasta el otro extremo del
tablero ( = ) de forma que en el segundo movimiento pase por el cuadro ¸ ℄.
4. Calcular el menor número de movimientos necesarios para desplazar el caballo del cuadro
½¸½℄ al ¾¸¾℄. ¿Cuántos caminos de dicha longitud hay de [1,1] a [2,2]?
Solución: Solución del apartado 1:
× ÐØ ´ ¸ ℄¸ ½¸ ½℄µ ¹
ÜÝ´ ܸ ݵ¸
½ × · ܸ

ÓÖÖ 
ØÓ´ ½µ¸
½ × · ݸ

ÓÖÖ 
ØÓ´ ½µº
La relación ÜÝ´ ¸ µ se verifica si un caballo puede moverse espacios horizon-
tales e verticales.
ÜÝ´¾¸½µº
ÜÝ´¾¸¹½µº
ÜÝ´¹¾¸½µº
ÜÝ´¹¾¸¹½µº
46 Capítulo 3. Estructuras
ÜÝ´½¸¾µº
ÜÝ´½¸¹¾µº
ÜÝ´¹½¸¾µº
ÜÝ´¹½¸¹¾µº
La relación 
ÓÖÖ 
ØÓ´· µ se verifica si está entre 1 y 8.

ÓÖÖ 
ØÓ´ µ ¹
½ ¸
º
Solución del apartado 2:

 Ñ ÒÓ´ ℄µº

 Ñ ÒÓ´ ½¸ ¾ Ä℄µ ¹
× ÐØ ´ ½¸ ¾µ¸

 Ñ ÒÓ´ ¾ Ä℄µº
Solución del apartado 3:
¹ 
 Ñ ÒÓ´ ¾¸½℄¸ ½¸ ¸ ℄¸ ¾¸ ¸ ℄℄µº
½ ¸ ¾℄ ¾ ¸ ℄
½ ¸ ¾℄ ¾ ¸ ℄
½ ¸ ¾℄ ¾ ¸ ℄
½ ¸ ¾℄ ¾ ¸ ℄ ¿
½ ¿¸ ¿℄ ¾ ¸ ℄
½ ¿¸ ¿℄ ¾ ¸ ℄
½ ¿¸ ¿℄ ¾ ¸ ℄
½ ¿¸ ¿℄ ¾ ¸ ℄ ¿
ÆÓ
Solución del apartado 4:
¹ 
 Ñ ÒÓ´ ½¸½℄¸ ¸ ¾¸¾℄℄µº
ÆÓ
¹ 
 Ñ ÒÓ´ ½¸½℄¸ ¸ ¸ ¾¸¾℄℄µº
ÆÓ
¹ 
 Ñ ÒÓ´ ½¸½℄¸ ¸ ¸ ¸ ¾¸¾℄℄µº
×
¹ 
 Ñ ÒÓ´ ½¸½℄¸ ¾¸ ¿¸ ¸ ¾¸¾℄℄µº
¾ ¿¸ ¾℄ ¿ ¸ ¿℄ ¿¸ ℄
¾ ¿¸ ¾℄ ¿ ¸ ¿℄ ¸ ½℄
3.6. Máximo elemento de un árbol binario 47
¾ ¿¸ ¾℄ ¿ ¸ ½℄ ¸ ¿℄
¾ ¿¸ ¾℄ ¿ ½¸ ¿℄ ¿¸ ℄
¾ ¿¸ ¾℄ ¿ ¾¸ ℄ ¸ ¿℄
¾ ¾¸ ¿℄ ¿ ¸ ¾℄ ¿¸ ℄
¾ ¾¸ ¿℄ ¿ ¿¸ ℄ ½¸ ℄
¾ ¾¸ ¿℄ ¿ ¿¸ ℄ ¸ ¿℄
¾ ¾¸ ¿℄ ¿ ¿¸ ½℄ ¸ ¿℄
¾ ¾¸ ¿℄ ¿ ½¸ ℄ ¿¸ ℄
ÆÓ
3.6. Máximo elemento de un árbol binario
Ejercicio 3.6 Un árbol binario es vacío o consta de tres partes: la raíz (que debe de ser un número
positivo), el subárbol izquierdo (que debe ser un árbol binario) y el subárbol derecho (que debe ser
un árbol binario). Usaremos la siguiente representación
Ò Ð representa el árbol vacío
Ø´Á¸Ê¸ µ representa el árbol de la raíz Ê, subárbol izquierdo Á y subárbol derecho .
Por ejemplo, Ø´Ø´Ò Ð¸¾¸Ò е¸½¸Ø´Ø´Ò и ¸Ò е¸¿¸Ò еµ representa el árbol
½
»
¾ ¿
»
Definir la relación Ñ Ü ÑÓ´·Ì¸¹ µ que se verifique si es el máximo de los nodos del árbol Ì.
Por ejemplo,
¹ Ñ Ü ÑÓ´Ò Ð¸Æµº
Æ ¼
¹ Ñ Ü ÑÓ´Ø´Ò Ð¸¾¸Ò е¸Æµº
Æ ¾
¹ Ñ Ü ÑÓ´Ø´Ø´Ò Ð¸¾¸Ò е¸¿¸Ò е¸Æµº
Æ ¿
Solución: La definición de Ñ Ü ÑÓ es
Ñ Ü ÑÓ´Ò Ð¸¼µº
Ñ Ü ÑÓ´Ø´Á¸Ê¸ µ¸Åµ ¹
Ñ Ü ÑÓ´Á¸ÅÁµ¸
48 Capítulo 3. Estructuras
Ñ Ü ÑÓ´ ¸Å µ¸
Ž × Ñ Ü´ÅÁ¸Å µ¸
Å × Ñ Ü´Ê¸Å½µº
Capítulo 4
Retroceso, corte y negación
4.1. Ejemplos de uso del corte
Ejercicio 4.1 1. Definir la relación ´ ¸ µ de forma que:
si < ¿, entonces = ¼;
si ¿ ≤ < , entonces = ¾;
si ≤ , entonces = .
2. Construir el árbol de deducción correspondiente a la cuestión
¹ ´½¸ µ¸ ¾ º
3. Definir la relación ½´ ¸ µ a partir de la definición de ´ ¸ µ, introduciendo un corte
al final de las dos primeras cláusulas.
4. Construir el árbol de deducción correspondiente a la cuestión
¹ ½´½¸ µ¸ ¾ º
5. Construir el árbol de deducción correspondiente a la cuestión
¹ ½´ ¸ µº
6. En el árbol anterior se observa que se efectúan comparaciones innecesarias (por ejemplo,
después de fallar la comparación ¿, efectúa la comparación ¿ ). Definir la relación
¾´ ¸ µ suprimiendo en la definición de ½´ ¸ µ las comparaciones innecesarias.
7. Construir el árbol de deducción correspondiente a la cuestión
¹ ¾´ ¸ µº
49
50 Capítulo 4. Retroceso, corte y negación
8. Construir el árbol de deducción correspondiente a la cuestión
¹ ¾´½¸ µ¸ ¾ º
9. Definir la relación ¿´ ¸ µ a partir de la definición de ¾´ ¸ µ, suprimiendo los cortes.
10. Obtener las respuestas correspondientes a la cuestión
¹ ¿´½¸ µº
Solución: Solución del apartado 1: La definición de es
´ ¸¼µ ¹ ¿º
´ ¸¾µ ¹ ¿ ¸ º
´ ¸ µ ¹ º
Solución del apartado 2: El árbol de deducción se muestra en la figura 4.1 (página
50).
1<3, 2<0 3 =< 1, 1<6, 2<2 6 =< 1, 2<4
f(1,Y), 2<Y
{X/1, Y/2}
{X/1, Y/0} {X/1, Y/4}
2<0
Fallo
Fallo Fallo
Figura 4.1: Árbol de resolución del apartado 2
Solución del apartado 3: La definición de ½ es
½´ ¸¼µ ¹ ¿¸ º
½´ ¸¾µ ¹ ¿ ¸ ¸ º
½´ ¸ µ ¹ º
Solución del apartado 4: El árbol de deducción se muestra en la figura 4.2 (página
51).
Solución del apartado 5: El árbol de deducción se muestra en la figura 4.3 (página
51).
Solución del apartado 6: La definición de ¾ es
4.1. Ejemplos de uso del corte 51
{X/1, Y/0}
1<3, !, 2<0
!, 2<0
2<0
Fallo
f_1(1,Y), 2<Y
Figura 4.2: Árbol de resolución del apartado 4
3 =< 7, 7<6, ! 6 =< 77<3, !
Exito
{Y/4}
f_1(7,Y)
{X/7, Y/2}
{X/7, Y/0} {X/7, Y/4}
Fallo
7<6, !
Fallo
Figura 4.3: Árbol de resolución del apartado 5
52 Capítulo 4. Retroceso, corte y negación
¾´ ¸¼µ ¹ ¿¸ º
¾´ ¸¾µ ¹ ¸ º
¾´ ¸ µº
Solución del apartado 7: El árbol de deducción se muestra en la figura 4.4 (página
52).
7<3, !
Exito
{Y/4}
f_1(7,Y)
{X/7, Y/2}
{X/7, Y/0} {X/7, Y/4}
Fallo
7<6, !
Fallo
Figura 4.4: Árbol de resolución del apartado 7
Solución del apartado 8: El árbol de deducción se muestra en la figura 4.5 (página
52).
{X/1, Y/0}
1<3, !, 2<0
!, 2<0
2<0
Fallo
f_2(1,Y), 2<Y
Figura 4.5: Árbol de resolución del apartado 8
Solución del apartado 9: La definición de ¿ es
4.2. Árboles de deducción de Ñ Ñ Ö
 53
¿´ ¸¼µ ¹ ¿º
¿´ ¸¾µ ¹ º
¿´ ¸ µº
Solución del apartado 10: Las respuestas son
¹ ¿´½¸ µº
¼
¾
ÆÓ
4.2. Árboles de deducción de Ñ Ñ Ö
Ejercicio 4.2 La relación Ñ Ñ Ö
 está definida por
Ñ Ñ Ö
 ´ ¸ ℄µ ¹ º
Ñ Ñ Ö
 ´ ¸ Ä℄µ ¹ Ñ Ñ Ö
 ´ ¸Äµº
Escribir los árboles de SLD resolución correspondientes a las siguientes preguntas
1. ¹ Ñ Ñ Ö
 ´ ¸ ¸ ¸
℄µ¸ º
2. ¹ Ñ Ñ Ö
 ´ ¸ ¸ ¸
℄µ¸ º
3. ¹ ¸ Ñ Ñ Ö
 ´ ¸ ¸ ¸
℄µº
Solución:
4.3. Diferencia de conjuntos
Ejercicio 4.3 Definir la relación Ö Ò
 ´· ½¸· ¾¸¹ ¿µ que se verifique si ¿ es la dife-
rencia de los conjuntos ½ y ¾. Por ejemplo,
¹ Ö Ò
 ´ ¸ ℄¸ ¸
℄¸ µº
℄
ÆÓ
Definir una versión con negación ( Ö Ò
 ½) y otra con corte ( Ö Ò
 ¾) y comparar
la eficiencia de las distintas definiciones con el ejemplo
¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¸ Ľµ¸ Ø Ñ ´ Ö Ò
 ½´ Ľ¸ Ľµµº
¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¸ Ľµ¸ Ø Ñ ´ Ö Ò
 ¾´ Ľ¸ Ľµµº
54 Capítulo 4. Retroceso, corte y negación
!
Resp.: X=b
{X/a}
!, a=a.
a=a
Resp.: X=a
memberchk(X,[a,b,c]), X=a. memberchk(X,[a,b,c]), X=b.
{X/a}
!, a=b.
a=b
Fallo
X=b, memberchk(X,[a,b,c]).
{X/b}
memberchk(b,[a,b,c]).
memberchk(b,[b,c]).
Figura 4.6: Árbol de resolución Ñ Ñ Ö
Nota: La relación Ö Ò
 se corresponde con la relación definida ×Ù ØÖ 
Ø.
Solución: 1a definición (con negación):
Ö Ò
 ½´ ℄¸ ¸ ℄µº
Ö Ò
 ½´ Ä℄¸Ä¾¸Ä¿µ ¹
Ñ Ñ Ö´ ¸Ä¾µ¸
Ö Ò
 ½´Ä¸Ä¾¸Ä¿µº
Ö Ò
 ½´ Ä℄¸Ä¾¸ Ä¿℄µ ¹
ÒÓØ´Ñ Ñ Ö´ ¸Ä¾µµ¸
Ö Ò
 ½´Ä¸Ä¾¸Ä¿µº
2a definición (con corte):
Ö Ò
 ¾´ ℄¸ ¸ ℄µº
Ö Ò
 ¾´ Ä℄¸Ä¾¸Ä¿µ ¹
Ñ Ñ Ö´ ¸Ä¾µ¸ ¸
Ö Ò
 ¾´Ä¸Ä¾¸Ä¿µº
Ö Ò
 ¾´ Ä℄¸Ä¾¸ Ä¿℄µ ¹
± ÒÓØ´Ñ Ñ Ö´ ¸Ä¾µµ¸
Ö Ò
 ¾´Ä¸Ä¾¸Ä¿µº
3a definición (con corte y memberchk):
4.4. Agregación de un elemento a un conjunto 55
Ö Ò
 ¿´ ℄¸ ¸ ℄µº
Ö Ò
 ¿´ Ä℄¸Ä¾¸Ä¿µ ¹
Ñ Ñ Ö
 ´ ¸Ä¾µ¸ ¸
Ö Ò
 ¿´Ä¸Ä¾¸Ä¿µº
Ö Ò
 ¿´ Ä℄¸Ä¾¸ Ä¿℄µ ¹
± ÒÓØ´Ñ Ñ Ö
 ´ ¸Ä¾µµ¸
Ö Ò
 ¿´Ä¸Ä¾¸Ä¿µº
Comparaciones:
¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¸ Ľµ¸ Ø Ñ ´ Ö Ò
 ½´ Ľ¸ Ľ¸ ℄µµº
± ¼½¸ ¼½ Ò Ö Ò
 ׸ ¼¸¾ ÈÍ Ò ¼¸¾ × 
ÓÒ × ´ ± È͸ ¾¼ Ä Ô×µ
¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¸ Ľµ¸ Ø Ñ ´ Ö Ò
 ¾´ Ľ¸ Ľ¸ ℄µµº
± ¼½¸ ¼½ Ò Ö Ò
 ׸ ¼¸¾ ÈÍ Ò ¼¸¾ × 
ÓÒ × ´ ± È͸ ¾¼¼ ¼¼ Ä Ô×µ
¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¸ Ľµ¸ Ø Ñ ´ Ö Ò
 ¿´ Ľ¸ Ľ¸ ℄µµº
± ¾¸¼¼½ Ò Ö Ò
 ׸ ¼¸¼ ÈÍ Ò ¼¸¼ × 
ÓÒ × ´ ± È͸ ¾ Ä Ô×µ
¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¸ Ľµ¸ Ø Ñ ´×Ù ØÖ 
Ø´ Ľ¸ Ľ¸ ℄µµº
± ¾¸¼¼½ Ò Ö Ò
 ׸ ¼¸¼ ÈÍ Ò ¼¸¼ × 
ÓÒ × ´½¼ ± È͸ ¾ ¼½¾ Ä Ô×µ
4.4. Agregación de un elemento a un conjunto
Ejercicio 4.4 Definir la relación Ö Ö´· ¸·Ä¸¹Ä½µ que se verifique si Ľ es la lista obtenida
añadiéndole a Ä, si no pertenece a Ä y es Ä en caso contrario. Por ejemplo,
¹ Ö Ö´ ¸ ¸
℄¸Äµº
Ä ¸ ¸
℄
¹ Ö Ö´ ¸ ¸
℄¸Äµº
Ä ¸
℄
Hacer una versión con negación y otra con corte.
Solución: 1a definición (con negación):
Ö Ö ½´ ¸Ä¸Äµ ¹
Ñ Ñ Ö´ ¸Äµº
Ö Ö ½´ ¸Ä¸ Ä℄µ ¹
ÒÓØ´Ñ Ñ Ö´ ¸Äµµº
2a definición (con corte):
Ö Ö ¾´ ¸Ä¸Äµ ¹
Ñ Ñ Ö´ ¸Äµ¸ º
Ö Ö ¾´ ¸Ä¸ Ä℄µº
56 Capítulo 4. Retroceso, corte y negación
4.5. Separación de una lista de números en positivos y ne-
gativos
Ejercicio 4.5 Definir la relación × Ô Ö ´·Ä½¸·Ä¾¸¹Ä¿µ que separa la lista de números Ľ en
dos listas: ľ formada por los números positivos y Ä¿ formada por los números negativos o cero.
Por ejemplo,
¹ × Ô Ö ´ ¾¸¼¸¹¿¸ ¸¼¸¾℄¸Ä¾¸Ä¿µº
ľ ¾¸ ¸ ¾℄
Ä¿ ¼¸ ¹¿¸ ¼℄
×
Proponer dos soluciones, una sin corte y otra con corte.
Solución: Definición con negación:
× Ô Ö ½´ ℄¸ ℄¸ ℄µº
× Ô Ö ½´ Æ ÊĽ℄¸ Æ Êľ℄¸Ä¿µ ¹
Æ ¼¸
× Ô Ö ½´ÊĽ¸Êľ¸Ä¿µº
× Ô Ö ½´ Æ ÊĽ℄¸Ä¾¸ Æ ÊÄ¿℄µ ¹
Æ ¼¸
× Ô Ö ½´ÊĽ¸Ä¾¸ÊÄ¿µº
Definición con corte:
× Ô Ö ¾´ ℄¸ ℄¸ ℄µº
× Ô Ö ¾´ Æ ÊĽ℄¸ Æ Êľ℄¸Ä¿µ ¹
Æ ¼¸ ¸
× Ô Ö ¾´ÊĽ¸Êľ¸Ä¿µº
× Ô Ö ¾´ Æ ÊĽ℄¸Ä¾¸ Æ ÊÄ¿℄µ ¹
± Æ ¼¸
× Ô Ö ¾´ÊĽ¸Ä¾¸ÊÄ¿µº
4.6. Suma de los números pares de una lista de números
Ejercicio 4.6 Definir la relación ×ÙÑ Ô Ö ×´·Ä¸¹Æµ que se verifica si Æ es la suma de todos
los números pares de la lista de números Ä. Por ejemplo,
¹ ×ÙÑ Ô Ö ×´ ¾¸¿¸ ℄¸Æµº
Æ
¹ ×ÙÑ Ô Ö ×´ ½¸¿¸ ¸ ¸ ¸½½¸¾ ℄¸Æµº
Æ ¿¼
4.6. Suma de los números pares de una lista de números 57
Hacer una versión con negación y otra con corte.
Solución:
Versión 1 (con negación):
×ÙÑ Ô Ö × ½´ ℄¸¼µº
×ÙÑ Ô Ö × ½´ Æ Ä℄¸ µ ¹
Ô Ö´Æµ¸
×ÙÑ Ô Ö × ½´Ä¸ ½µ¸
× ½ · ƺ
×ÙÑ Ô Ö × ½´ Æ Ä℄¸ µ ¹
ÒÓØ´Ô Ö´ Ƶµ¸
×ÙÑ Ô Ö × ½´Ä¸ µº
Ô Ö´Æµ ¹
Æ ÑÓ ¾ ¼º
Versión 2 (con corte):
×ÙÑ Ô Ö × ¾´ ℄¸¼µº
×ÙÑ Ô Ö × ¾´ Æ Ä℄¸ µ ¹
Ô Ö´Æµ¸ ¸
×ÙÑ Ô Ö × ¾´Ä¸ ½µ¸
× ½ · ƺ
×ÙÑ Ô Ö × ¾´ Æ Ä℄¸ µ ¹
± ÒÓØ´Ô Ö´ Ƶµ¸
×ÙÑ Ô Ö × ¾´Ä¸ µº
Versión 3 (con corte y acumulador):
×ÙÑ Ô Ö × ¿´Ä¸ µ ¹
×ÙÑ Ô Ö × ¿ Ùܴĸ¼¸ µº
×ÙÑ Ô Ö × ¿ ÙÜ´ ℄¸ 
¸ 
µº
×ÙÑ Ô Ö × ¿ ÙÜ´ Æ Ä℄¸ 
¸ µ ¹
Ô Ö´Æµ¸ ¸

½ × 
 · Ƹ
×ÙÑ Ô Ö × ¿ Ùܴĸ 
½¸ µº
×ÙÑ Ô Ö × ¿ ÙÜ´ Æ Ä℄¸ 
¸ µ ¹
± ÒÓØ´Ô Ö´ Ƶµ¸
×ÙÑ Ô Ö × ¿ Ùܴĸ 
¸ µº
58 Capítulo 4. Retroceso, corte y negación
4.7. Exponente de dos en la factorización de un número
Ejercicio 4.7 Definir la relación ÜÔÓÒ ÒØ Ó×´·Æ¸¹ µ que se verifica si es el exponen-
te de 2 en la descomposición de Æ como producto de factores primos. Por ejemplo,
¹ ÜÔÓÒ ÒØ Ó×´ ¼¸ µº
¿
¹ ÜÔÓÒ ÒØ Ó×´ ¸ µº
¼
Hacer una versión con negación y otra con corte.
Solución: 1a Versión (con negación):
ÜÔÓÒ ÒØ Ó× ½´Æ¸ µ ¹
Æ ÑÓ ¾ ¼¸
ƽ × Æ » ¾¸
ÜÔÓÒ ÒØ Ó× ½´Æ½¸ ½µ¸
× ½ · ½º
ÜÔÓÒ ÒØ Ó× ½´Æ¸¼µ ¹
Æ ÑÓ ¾ ¼º
2a Versión (con corte):
ÜÔÓÒ ÒØ Ó× ¾´Æ¸ µ ¹
Æ ÑÓ ¾ ¼¸ ¸
ƽ × Æ » ¾¸
ÜÔÓÒ ÒØ Ó× ¾´Æ½¸ ½µ¸
× ½ · ½º
ÜÔÓÒ ÒØ Ó× ¾´ ¸¼µº
4.8. Transformación de lista a conjunto
Ejercicio 4.8 Definir la relación Ð ×Ø 
ÓÒ ÙÒØÓ´·Ä¸¹ µ que se verifique si es el conjun-
to correspondiente a la lista Ä (es decir, contiene los mismos elementos que Ä en el mismo orden,
pero si Ä tiene elementos repetidos sólo se incluye en la última aparición de cada elemento). Por
ejemplo,
¹ Ð ×Ø 
ÓÒ ÙÒØÓ´ ¸ ¸ ¸ ℄¸ µº
¸ ¸ ℄
Nota: La relación Ð ×Ø 
ÓÒ ÙÒØÓ se corresponde con la relación definida Ð ×Ø ØÓ × Ø.
4.8. Transformación de lista a conjunto 59
Solución: La definición de Ð ×Ø 
ÓÒ ÙÒØÓ es
Ð ×Ø 
ÓÒ ÙÒØÓ´ ℄¸ ℄µº
Ð ×Ø 
ÓÒ ÙÒØÓ´ Ä℄¸ µ ¹
Ñ Ñ Ö´ ¸Äµ¸
Ð ×Ø 
ÓÒ ÙÒØӴĸ µº
Ð ×Ø 
ÓÒ ÙÒØÓ´ Ä℄¸ ℄µ ¹
· Ñ Ñ Ö´ ¸Äµ¸
Ð ×Ø 
ÓÒ ÙÒØӴĸ µº
La definición anterior puede simplificarse con cortes
Ð ×Ø 
ÓÒ ÙÒØÓ ½´ ℄¸ ℄µº
Ð ×Ø 
ÓÒ ÙÒØÓ ½´ Ä℄¸ µ ¹
Ñ Ñ Ö´ ¸Äµ¸ ¸
Ð ×Ø 
ÓÒ ÙÒØÓ ½´Ä¸ µº
Ð ×Ø 
ÓÒ ÙÒØÓ ½´ Ä℄¸ ℄µ ¹
± · Ñ Ñ Ö´ ¸Äµ¸
Ð ×Ø 
ÓÒ ÙÒØÓ ½´Ä¸ µº
3a definición (con corte y memberchk):
Ð ×Ø 
ÓÒ ÙÒØÓ ¿´ ℄¸ ℄µº
Ð ×Ø 
ÓÒ ÙÒØÓ ¿´ Ä℄¸Ä¾µ ¹
Ñ Ñ Ö
 ´ ¸Äµ¸ ¸
Ð ×Ø 
ÓÒ ÙÒØÓ ¿´Ä¸Ä¾µº
Ð ×Ø 
ÓÒ ÙÒØÓ ¿´ Ä℄¸ ľ℄µ ¹
± ÒÓØ´Ñ Ñ Ö´ ¸Äµµ¸
Ð ×Ø 
ÓÒ ÙÒØÓ ¿´Ä¸Ä¾µº
Comparaciones:
¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¸ Ľµ¸ Ø Ñ ´Ð ×Ø 
ÓÒ ÙÒØÓ ½´ Ľ¸ оµµº
± ½¸¼¼¿¸¼¼½ Ò Ö Ò
 ׸ ¼¸ ¼ ÈÍ Ò ¼¸ ½ × 
ÓÒ × ´ ± È͸ ¾ ¼ ¼¿ Ä Ô×µ
¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¸ Ľµ¸ Ø Ñ ´Ð ×Ø 
ÓÒ ÙÒØÓ ¾´ Ľ¸ оµµº
± ¼½¸ ¼½ Ò Ö Ò
 ׸ ¼¸¾ ÈÍ Ò ¼¸¾ × 
ÓÒ × ´ ¿± È͸ ½ ¾ ¼ Ä Ô×µ
¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¸ Ľµ¸ Ø Ñ ´Ð ×Ø 
ÓÒ ÙÒØÓ ¿´ Ľ¸ оµµº
± ¿¸¼¼½ Ò Ö Ò
 ׸ ¼¸¼ ÈÍ Ò ¼¸¼ × 
ÓÒ × ´ ¼± È͸ ¾ ½ Ä Ô×µ
¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¸ Ľµ¸ Ø Ñ ´Ð ×Ø ØÓ × Ø´ Ľ¸ оµµº
± ¿¸¼¼ Ò Ö Ò
 ׸ ¼¸¼ ÈÍ Ò ¼¸¼ × 
ÓÒ × ´ ¿± È͸ ¾ ½ Ä Ô×µ
60 Capítulo 4. Retroceso, corte y negación
4.9. Signos de crecimientos de sucesiones numéricas
Ejercicio 4.9 Definir la relación 
Ö 
 Ñ ÒØÓ×´·Ä½¸¹Ä¾µ que se verifique si ľ es la lista
correspondientes a los crecimientos de la lista numérica Ľ; es decir, entre cada par de elementos
consecutivos e de Ľ coloca el signo · si e y signo ¹ en caso contrario. Por ejemplo,
¹ 
Ö 
 Ñ ÒØÓ×´ ½¸¿¸¾¸¾¸ ¸¿℄¸Äµº
Ä ½¸ ·¸ ¿¸ ¹¸ ¾¸ ¹¸ ¾¸ ·¸ ¸ ¹℄
Dar una definición sin corte y otra con corte.
Solución: La definición de 
Ö 
 Ñ ÒØÓ× sin usar corte es

Ö 
 Ñ ÒØÓ× ½´ ℄¸ ℄µº

Ö 
 Ñ ÒØÓ× ½´ ¸ Ľ℄¸ ¸· ľ℄µ ¹
¸

Ö 
 Ñ ÒØÓ× ½´ Ľ℄¸Ä¾µº

Ö 
 Ñ ÒØÓ× ½´ ¸ Ľ℄¸ ¸¹ ľ℄µ ¹
¸

Ö 
 Ñ ÒØÓ× ½´ Ľ℄¸Ä¾µº
La definición de 
Ö 
 Ñ ÒØÓ× usando corte es

Ö 
 Ñ ÒØÓ× ¾´ ℄¸ ℄µº

Ö 
 Ñ ÒØÓ× ¾´ ¸ Ľ℄¸ ¸· ľ℄µ ¹
¸ ¸

Ö 
 Ñ ÒØÓ× ¾´ Ľ℄¸Ä¾µº

Ö 
 Ñ ÒØÓ× ¾´ ¸ Ľ℄¸ ¸¹ ľ℄µ ¹
± ¸

Ö 
 Ñ ÒØÓ× ¾´ Ľ℄¸Ä¾µº
4.10. Descomposición en factores primos
Ejercicio 4.10 Definir las siguientes relaciones:
Ñ ÒÓÖ Ú ×ÓÖ ÔÖÓÔ Ó´·Æ¸ µ que se verifique si es el menor divisor de Æ mayor o
igual que 2. Por ejemplo,
¹ Ñ ÒÓÖ Ú ×ÓÖ ÔÖÓÔ Ó´¿¼¸ µº
¾
¹ Ñ ÒÓÖ Ú ×ÓÖ ÔÖÓÔ Ó´¿¸ µº
¿
4.11. Menor elemento que cumple una propiedad 61

ØÓÖ Þ 
 Ò´·Æ¸¹Äµ que se verifique si Ä es la lista correspondiente a la descomposi-
ción del número Æ en factores primos (se considera los que elementos de Ä están ordenados
de manera creciente). Por ejemplo,
¹ 
ØÓÖ Þ 
 Ò´½¾¸Äµº
Ä ¾¸ ¾¸ ¿℄
ÆÓ
¹ 
ØÓÖ Þ 
 Ò´½¸Äµº
Ä ℄
ÆÓ
Solución: La definición de Ñ ÒÓÖ Ú ×ÓÖ ÔÖÓÔ Ó es
Ñ ÒÓÖ Ú ×ÓÖ ÔÖÓÔ Ó´Æ¸ µ ¹
ƽ × ÐÓÓÖ´×ÕÖشƵµ¸
ØÛ Ò´¾¸Æ½¸ µ¸
Æ ÑÓ ¼¸ º
Ñ ÒÓÖ Ú ×ÓÖ ÔÖÓÔ Ó´Æ¸Æµº
La definición de 
ØÓÖ Þ 
 Ò es

ØÓÖ Þ 
 Ò´½¸ ℄µº

ØÓÖ Þ 
 ҴƸ Ä℄µ ¹
Æ ½¸
Ñ ÒÓÖ Ú ×ÓÖ ÔÖÓÔ Ó´Æ¸ µ¸
ƽ × Æ» ¸

ØÓÖ Þ 
 Ҵƽ¸Äµº
4.11. Menor elemento que cumple una propiedad
Ejercicio 4.11 Definir la relación 
 Ð
ÙÐ ´·Æ¸·Å¸ µ que se verifique si es el menor múlti-
plo de Æ tal que la suma de sus dígitos es mayor que Å. Por ejemplo,
¹ 
 Ð
ÙÐ ´¿¸½¼¸ µº
¿
×
¹ 
 Ð
ÙÐ ´ ¸¾¼¸ µº
¿
×
Solución: La definición de 
 Ð
ÙÐ es
62 Capítulo 4. Retroceso, corte y negación

 Ð
ÙÐ ´Æ¸Å¸ µ ¹
Ñ ÐØ ÔÐӴƸ µ¸
×ÙÑ ØÓ×´ ¸Æ½µ¸
ƽ Ÿ º
La relación Ñ ÐØ ÔÐÓ´·Æ¸¹ µ se verifica si es un múltiplo de Æ. Por ejemplo,
¹ Ñ ÐØ ÔÐÓ´ ¸ µº
½¼
½
×
Ñ ÐØ ÔÐӴƸƵº
Ñ ÐØ ÔÐӴƸŵ ¹
Ñ ÐØ ÔÐӴƸƽµ¸
Å × Æ·Æ½º
La relación ×ÙÑ ØÓ×´·Æ¸¹Ëµ se verifica si Ë es la suma de los dígitos del nú-
mero Æ. Por ejemplo,
¹ ×ÙÑ ØÓ×´¾¿ ¸Ëµº
Ë ½¾
×ÙÑ ØÓ״ƸƵ ¹
Æ ½¼¸ º
×ÙÑ ØÓ״Ƹ˵ ¹
± Æ ½¼¸
ƽ × Æ »» ½¼¸
Ê × Æ ¹ ½¼¶Æ½¸
×ÙÑ ØÓ״ƽ¸Ë½µ¸
Ë × Ë½ · ʺ
4.12. Números libres de cuadrados
Ejercicio 4.12 Un número es libre de cuadrados si no es divisible por el cuadrado de ningún nú-
mero mayor que 1. Definir la relación Ð Ö 
Ù Ö Ó×´·Æµ que se verifique si el número
Æ es libre de cuadrados. Por ejemplo,
4.13. Suma de los números libres de cuadrados 63
¹ Ð Ö 
Ù Ö Ó×´¿¼µº
×
¹ Ð Ö 
Ù Ö Ó×´½¾µº
ÆÓ
Solución: La definición de Ð Ö 
Ù Ö Ó× es
Ð Ö 
Ù Ö Ó״Ƶ ¹
Å × ÐÓÓÖ´×ÕÖشƵµ¸
ÒÓØ´´ ØÛ Ò´¾¸Å¸ µ¸ Æ ÑÓ ´ ¶ µ ¼µµº
4.13. Suma de los números libres de cuadrados
Ejercicio 4.13 Definir la relación ×ÙÑ Ð Ö × 
Ù Ö Ó×´·Ä¸¹Ëµ que se verifique si Ë
es la suma de los números libres de cuadrados la lista numérica Ä. Por ejemplo,
¹ ×ÙÑ Ð Ö × 
Ù Ö Ó×´ ¸½¾¸½ ¸¿¼℄¸Ëµº
Ë ¿
Nota: Dar dos definiciones, una con negación y otra con corte.
Solución: La definición de ×ÙÑ Ð Ö × 
Ù Ö Ó× usando la negación es
×ÙÑ Ð Ö × 
Ù Ö Ó× ½´ ℄¸¼µº
×ÙÑ Ð Ö × 
Ù Ö Ó× ½´ Ä℄¸Ëµ ¹
Ð Ö 
Ù Ö Ó×´ µ¸
×ÙÑ Ð Ö × 
Ù Ö Ó× ½´Ä¸Ë½µ¸
Ë × ·Ë½º
×ÙÑ Ð Ö × 
Ù Ö Ó× ½´ Ä℄¸Ëµ ¹
ÒÓØ´Ð Ö 
Ù Ö Ó×´ µµ¸
×ÙÑ Ð Ö × 
Ù Ö Ó× ½´Ä¸Ëµº
y la definición usando corte es
×ÙÑ Ð Ö × 
Ù Ö Ó× ¾´ ℄¸¼µº
×ÙÑ Ð Ö × 
Ù Ö Ó× ¾´ Ä℄¸Ëµ ¹
Ð Ö 
Ù Ö Ó×´ µ¸ ¸
×ÙÑ Ð Ö × 
Ù Ö Ó× ¾´Ä¸Ë½µ¸
Ë × ·Ë½º
×ÙÑ Ð Ö × 
Ù Ö Ó× ¾´ Ä℄¸Ëµ ¹
± ÒÓØ´Ð Ö 
Ù Ö Ó×´ µµ¸
×ÙÑ Ð Ö × 
Ù Ö Ó× ¾´Ä¸Ëµº
64 Capítulo 4. Retroceso, corte y negación
4.14. Máximo número de una lista
Ejercicio 4.14 Definir la relación Ñ Ü Ð ×Ø ´·Ä¸¹Æµ que se verifique si Æ es el mayor número
de la lista Ä. Por ejemplo,
¹ Ñ Ü Ð ×Ø ´ ¾¸ ¾¿¸ ¸ · ℄¸Æµº
Æ
¹ Ñ Ü Ð ×Ø ´ ¹¾¸ ¾¿¸¹ ¸ · ℄¸Æµº
Æ ¹¾
¹ Ñ Ü Ð ×Ø ´ ¾¿¸ · ℄¸Æµº
ÆÓ
Solución: La definición de Ñ Ü Ð ×Ø es
Ñ Ü Ð ×Ø ´Ä¸Åµ ¹
Ñ Ñ Ö´Å¸Äµ¸
ÒÙÑ Ö´Åµ¸
ÒÓØ´´Ñ Ñ Ö´Æ¸Äµ¸
ÒÙÑ Ö´Æµ¸
Æ Åµµº
4.15. Longitud de las subsucesiones comunes maximales
Ejercicio 4.15 Definir la relación ÐÓÒ ØÙ ×
Ñ´·Ä½¸·Ä¾¸¹Æµ que se verifique si Æ es la lon-
gitud de las subsucesiones comunes maximales de las listas Ľ y ľ. Por ejemplo,
¹ ÐÓÒ ØÙ ×
Ñ´ ¾¸½¸ ¸ ¸¾¸¿¸ ¸¾¸ ¸¿℄¸ ½¸ ¸ ¸¿¸¾℄¸Æµº
Æ
ÆÓ
ya que ½¸ ¸¿¸¾℄ es una subsucesión de las dos listas y no poseen ninguna otra subsucesión
común de mayor longitud. Obsérvese que los elementos de la subsucesión no son necesariamente
elementos adyacentes en las listas.
Solución: La definición de ÐÓÒ ØÙ ×
Ñ es
ÐÓÒ ØÙ ×
Ñ´ ℄¸ ¸¼µº
ÐÓÒ ØÙ ×
Ñ´ ¸ ℄¸¼µº
ÐÓÒ ØÙ ×
Ñ´ Ľ℄¸ ľ℄¸Æµ ¹
¸ ÐÓÒ ØÙ ×
ѴĽ¸Ä¾¸Åµ¸
Æ × Å·½º
ÐÓÒ ØÙ ×
Ñ´ Ľ℄¸ ľ℄¸Æµ ¹
4.16. Elementos repetidos en una lista 65
± ¸
ÐÓÒ ØÙ ×
ѴĽ¸ ľ℄¸Æ½µ¸
ÐÓÒ ØÙ ×
Ñ´ Ľ℄¸Ä¾¸Æ¾µ¸
Æ × Ñ Ü´Æ½¸Æ¾µº
4.16. Elementos repetidos en una lista
Ejercicio 4.16 Definir la relación Ö Ô Ø Ó´¹ ¸·Äµ que se verifique si el elemento está repe-
tido (i.e. ocurre más de una vez) en la lista Ä. Por ejemplo,
¹ Ö Ô Ø Ó´ ¸ ½¸¾¸½¸¿¸ ¸¿℄µº
½
½
¿
¿
ÆÓ
¹ Ö Ô Ø Ó´ ¸ ½¸¾¸ ℄µº
ÆÓ
Solución: La definición de Ö Ô Ø Ó es
Ö Ô Ø Ó´ ¸Äµ ¹
× Ð 
Ø´ ¸Ä¸Êµ¸
Ñ Ñ Ö
 ´ ¸Êµº
Ejercicio 4.17 Defimir la relación Ð Ñ Ò ´· ¸·Ä½¸¹Ä¾µ que se verifique si ľ es la lista ob-
tenida eliminando todas las ocurrencias de en la lista Ľ. Por ejemplo,
¹ Ð Ñ Ò ´ ¸ ½¸ ¸ ¸¿¸ ¸ ¸ ¸ ¸
℄¸Äµº
Ä ½¸ ¸ ¿¸ ¸ 
℄
Solución: La definición de Ð Ñ Ò es
Ð Ñ Ò ´ ¸ ℄¸ ℄µº
Ð Ñ Ò ´ ¸ Ľ℄¸Ä¾µ ¹
Ð Ñ Ò ´ ¸Ä½¸Ä¾µº
Ð Ñ Ò ´ ¸ Ľ℄¸ ľ℄µ ¹
¸
Ð Ñ Ò ´ ¸Ä½¸Ä¾µº
Ejercicio 4.18 Definir la relación Ö Ô Ø Ó×´·Ä½¸¹Ä¾µ que se verifique si ľ es la lista de los
elementos repetidos de la lista Ľ. Por ejemplo,
66 Capítulo 4. Retroceso, corte y negación
¹ Ö Ô Ø Ó× ½´ ½¸¾¸ ¸¿¸ ¸½¸¿¸ ℄¸Äµº
Ä ½¸ ¸ ¿℄
Solución: La primera definición de Ö Ô Ø Ó× es
Ö Ô Ø Ó× ½´ ℄¸ ℄µº
Ö Ô Ø Ó× ½´ Ľ℄¸ ľ℄µ ¹
Ñ Ñ Ö
 ´ ¸Ä½µ¸
Ð Ñ Ò ´ ¸Ä½¸Ä¿µ¸
Ö Ô Ø Ó× ½´Ä¿¸Ä¾µº
Ö Ô Ø Ó× ½´ Ľ℄¸Ä¾µ ¹
ÒÓØ´Ñ Ñ Ö
 ´ ¸Ä½µµ¸
Ö Ô Ø Ó× ½´Ä½¸Ä¾µº
con cortes se transforma en
Ö Ô Ø Ó× ¾´ ℄¸ ℄µº
Ö Ô Ø Ó× ¾´ Ľ℄¸ ľ℄µ ¹
Ñ Ñ Ö
 ´ ¸Ä½µ¸ ¸
Ð Ñ Ò ´ ¸Ä½¸Ä¿µ¸
Ö Ô Ø Ó× ¾´Ä¿¸Ä¾µº
Ö Ô Ø Ó× ¾´ Ľ℄¸Ä¾µ ¹
± ÒÓØ´Ñ Ñ Ö
 ´ ¸Ä½µµ¸
Ö Ô Ø Ó× ¾´Ä½¸Ä¾µº
4.17. Subconjunto maximal
Ejercicio 4.19 Definir la relación ×Ù 
ÓÒ ÙÒØÓ Ñ Ü Ñ Ð´·Ä½¸¹Ä¾µ que se verifica si ľ es
un subconjunto maximal de Ľ (es decir, es un conjunto de elementos de Ľ tal que sólo existe
un elemento de Ľ que no pertenece a ľ). Por ejemplo,
¹ ×Ù 
ÓÒ ÙÒØÓ Ñ Ü Ñ Ð´ 
¸ ¸ ¸ ¸
¸ ¸
℄¸Äµº
Ä ¸ 
℄
Ä ¸ 
℄
Ä ¸ ℄
ÆÓ
Solución: La definición de ×Ù 
ÓÒ ÙÒØÓ Ñ Ü Ñ Ð es
×Ù 
ÓÒ ÙÒØÓ Ñ Ü Ñ Ð´Ä½¸Ä¾µ ¹
Ð ×Ø ØÓ × Ø´Ä½¸Ä¿µ¸
× Ð 
Ø´ ¸Ä¿¸Ä¾µº
4.18. Suma de los elementos con posiciones múltiplos de n 67
Nota: La relación Ð ×Ø ØÓ × Ø se corresponde con la relación Ð ×Ø 
ÓÒ ÙÒØÓ
definida en la página 59.
4.18. Suma de los elementos con posiciones múltiplos de
n
Ejercicio 4.20 Definir la relación ×ÙÑ ÔÓ× 
 ÓÒ ×´·Æ¸·Ä¸¹Ëµ que se verifique si Ë es la
suma de los elementos de la lista que ocupan las posiciones que son múltiplos de Æ. Por ejemplo,
¹×ÙÑ ÔÓ× 
 ÓÒ ×´¾¸ ¿¸ ¸ ¸ ¸½¸¾℄¸Ëµº
Ë ½
¹ ×ÙÑ ÔÓ× 
 ÓÒ ×´¿¸ ¿¸ ¸ ¸ ¸½¸¾℄¸Ëµº
Ë
Solución: La definición de ×ÙÑ ÔÓ× 
 ÓÒ × es
×ÙÑ ÔÓ× 
 ÓÒ ×´Æ¸Ä¸Ëµ ¹
Ð Ñ ÒØÓ Ý Ö ×ØӴƸĸ ¸Ä½µ¸ ¸
×ÙÑ ÔÓ× 
 ÓÒ ×´Æ¸Ä½¸Ë½µ¸
Ë × ·Ë½º
×ÙÑ ÔÓ× 
 ÓÒ ×´ ¸ ¸¼µº
donde Ð Ñ ÒØÓ Ý Ö ×ØÓ´·Æ¸·Ä½¸¹ ¸¹Ä¾µ se verifica si es el elemento Æ–ésimo de Ľ
y ľ es la lista Ľ a partir del elemento . Por ejemplo,
¹ Ð Ñ ÒØÓ Ý Ö ×ØÓ´¿¸ ¿¸ ¸ ¸ ¸½¸¾℄¸ ¸Äµº
Ä ¸ ½¸ ¾℄
La definición de Ð Ñ ÒØÓ Ý Ö ×ØÓ es
Ð Ñ ÒØÓ Ý Ö ×ØӴƸĽ¸ ¸Ä¾µ ¹
Ð Ò Ø ´Ä¸Æµ¸
ÔÔ Ò ´Ä¸Ä¾¸Ä½µ¸
Ð ×شĸ µº
4.19. Compresión de listas
Ejercicio 4.21 Definir la relación 
ÓÑÔÖ Ñ ´·Ä½¸¹Ä¾µ que se verifique si ľ es la lista obte-
nida sustituyendo cada sucesión de un elemento de Ľ por dicho elemento. Por ejemplo,
68 Capítulo 4. Retroceso, corte y negación
¹ 
ÓÑÔÖ Ñ ´ ¸ ¸ ¸ ¸ ¸ ¸
¸
¸ ¸ ¸ ℄¸Äµº
Ä ¸ ¸ ¸ 
¸ ℄
Solución: Vamos a presentar dos definiciones. La primera definición de 
ÓÑÔÖ Ñ
es

ÓÑÔÖ Ñ ´ ℄¸ ℄µº

ÓÑÔÖ Ñ ´ ℄¸ ℄µº

ÓÑÔÖ Ñ ´ ¸ Ľ℄¸Ä¾µ ¹

ÓÑÔÖ Ñ ´ Ľ℄¸Ä¾µº

ÓÑÔÖ Ñ ´ ¸ Ľ℄¸ ľ℄µ ¹
¸

ÓÑÔÖ Ñ ´ Ľ℄¸Ä¾µº
En la segunda definición se usa el corte

ÓÑÔÖ Ñ ¾´ ℄¸ ℄µº

ÓÑÔÖ Ñ ¾´ ℄¸ ℄µº

ÓÑÔÖ Ñ ¾´ ¸ Ľ℄¸Ä¾µ ¹
¸ ¸

ÓÑÔÖ Ñ ¾´ Ľ℄¸Ä¾µº

ÓÑÔÖ Ñ ¾´ ¸ Ľ℄¸ ľ℄µ ¹
± ¸

ÓÑÔÖ Ñ ¾´ Ľ℄¸Ä¾µº
4.20. Empaquetamiento de listas
Ejercicio 4.22 Definir la relación ÑÔ ÕÙ Ø ´·Ä½¸¹Ä¾µ que se verifique si ľ es la lista
obtenida sustituyendo cada sucesión de un elemento de Ľ por la lista formada por dicha sucesión.
Por ejemplo,
¹ ÑÔ ÕÙ Ø ´ ¸ ¸ ¸ ¸ ¸ ¸
¸
¸ ¸ ¸ ℄¸Äµº
Ä ℄¸ ¸ ℄¸ ¸ ¸ ℄¸ 
¸ 
℄¸ ¸ ¸ ℄℄
Solución: La definición de ÑÔ ÕÙ Ø es
ÑÔ ÕÙ Ø ´ ℄¸ ℄µº
ÑÔ ÕÙ Ø ´ Ľ℄¸ ľ Ä¿℄µ ¹
ÑÔ ÕÙ Ø ÙÜ´ ¸Ä½¸Ä ¸Ä¾µ¸
ÑÔ ÕÙ Ø ´Ä ¸Ä¿µº
4.21. Codificación por longitud 69
La relación ÑÔ ÕÙ Ø ÙÜ´ ¸Ä½¸Ä ¸Ä¾µ se verifica si Ä es la lista obtenida eli-
minando en Ľ todas las ocurrencias iniciales de y ľ es la lista formada por y las
ocurrencias iniciales de en Ľ; por ejemplo,
¹ ÑÔ ÕÙ Ø ÙÜ´ ¸ ¸ ¸
¸
¸ ¸ ¸ ℄¸Ä ¸Ä¾µº
Ä 
¸ 
¸ ¸ ¸ ℄
ľ ¸ ¸ ℄
La definición de ÑÔ ÕÙ Ø ÙÜ es
ÑÔ ÕÙ Ø ÙÜ´ ¸ ℄¸ ℄¸ ℄µº
ÑÔ ÕÙ Ø ÙÜ´ ¸ Ľ℄¸Ä ¸ ľ℄µ ¹
ÑÔ ÕÙ Ø ÙÜ´ ¸Ä½¸Ä ¸Ä¾µº
ÑÔ ÕÙ Ø ÙÜ´ ¸ Ľ℄¸ Ľ℄¸ ℄µ ¹
º
La definición anterior puede transformarse introduciendo corte en
ÑÔ ÕÙ Ø ÙÜ ¾´ ¸ ℄¸ ℄¸ ℄µº
ÑÔ ÕÙ Ø ÙÜ ¾´ ¸ Ľ℄¸Ä ¸ ľ℄µ ¹
¸
ÑÔ ÕÙ Ø ÙÜ ¾´ ¸Ä½¸Ä ¸Ä¾µº
ÑÔ ÕÙ Ø ÙÜ ¾´ ¸ Ľ℄¸ Ľ℄¸ ℄µº
4.21. Codificación por longitud
Ejercicio 4.23 Definir la relación 
Ó 
 ´·Ä½¸¹Ä¾µ que se verifique si ľ es la codifica-
ción por longitud de la lista Ľ; es decir, las sucesiones de un mismo elemento de Ľ se codifican
por términos de la forma ƹ donde Æ es la longitud de la sucesión. Por ejemplo,
¹ 
Ó 
 ´ ¸ ¸ ¸ ¸ ¸ ¸
¸
¸ ¸ ¸ ℄¸Äµº
Ä ½¹ ¸ ¾¹ ¸ ¿¹ ¸ ¾¹
¸ ¿¹ ℄
(Indicación: Usar la relación ÑÔ ÕÙ Ø (4.20)).
Solución: La definición de 
Ó 
 es

Ó 
 ´Ä½¸Ä¾µ ¹
ÑÔ ÕÙ Ø ´Ä½¸Äµ¸

Ó 
 Ùܴĸľµº
70 Capítulo 4. Retroceso, corte y negación
La relación 
Ó 
 ÙÜ´·Ä½¸¹Ä¾µ se verifica si, suponiendo que Ľ es una lista
de la forma ½¸ººº¸ ½℄¸ººº¸ Ѹºººº Ñ℄℄), ľ es la lista ƽ¹ ½¸ºººÆѹ Ñ℄ donde
Æ es la longitud de ¸ººº¸ ℄. Por ejemplo.
¹ 
Ó 
 ÙÜ´ ℄¸ ¸ ℄¸ ¸ ¸ ℄¸ 
¸
℄¸ ¸ ¸ ℄℄¸Äµº
Ä ½¹ ¸ ¾¹ ¸ ¿¹ ¸ ¾¹
¸ ¿¹ ℄
La definición de 
Ó 
 ÙÜ es

Ó 
 ÙÜ´ ℄¸ ℄µº

Ó 
 ÙÜ´ ℄ Ľ℄¸ ƹ ľ℄µ ¹
Ð Ò Ø ´ ℄¸Æµ¸

Ó 
 ÙܴĽ¸Ä¾µº
4.22. Codificación reducida por longitud
Ejercicio 4.24 Definir la relación 
Ó 
 Ö Ù
 ´·Ä½¸¹Ä¾µ que se verifique si ľ es
la codificación reducida por longitud de la lista Ľ; es decir, las sucesiones de un mismo elemento
de Ľ se codifican por términos de la forma ƹ donde Æ es la longitud de la sucesión cuando Æ
es mayor que 1 y por cuando Æ es igual a 1. Por ejemplo,
¹ 
Ó 
 Ö Ù
 ´ ¸ ¸ ¸ ¸ ¸ ¸
¸ ¸ ¸ ℄¸Äµº
Ä ¸ ¾¹ ¸ ¿¹ ¸ 
¸ ¿¹ ℄
(Indicación: Usar la relación 
Ó 
 (4.21)).
Solución: La definición de 
Ó 
 Ö Ù
 es

Ó 
 Ö Ù
 ´Ä½¸Ä¾µ ¹

Ó 
 ´Ä½¸Äµ¸

Ó 
 Ö Ù
 Ùܴĸľµº
La relación 
Ó 
 Ö Ù
 ÙÜ´·Ä½¸¹Ä¾µ se verifica si ľ es la lista obtenida
transformando los elementos de Ľ de la forma ½¹ por y dejando los restantes elemen-
tos de la misma forma (se supone que Ľ es una lista de la forma ƽ¹ ½¸ººº¸Æѹ Ñ℄).
Por ejemplo,
¹ 
Ó 
 Ö Ù
 ÙÜ´ ½¹ ¸¾¹ ¸¿¹ ¸½¹
¸¿¹ ℄¸Äµº
Ä ¸ ¾¹ ¸ ¿¹ ¸ 
¸ ¿¹ ℄
La definición de 
Ó 
 Ö Ù
 ÙÜ es
4.23. Decodificación de lista 71

Ó 
 Ö Ù
 ÙÜ´ ℄¸ ℄µº

Ó 
 Ö Ù
 ÙÜ´ ½¹ Ľ℄¸ ľ℄µ ¹

Ó 
 Ö Ù
 ÙܴĽ¸Ä¾µº

Ó 
 Ö Ù
 ÙÜ´ ƹ Ľ℄¸ ƹ ľ℄µ ¹
Æ ½¸

Ó 
 Ö Ù
 ÙܴĽ¸Ä¾µº
La definición anterior puede simplificarse introduciendo un corte:

Ó 
 Ö Ù
 ÙÜ´ ℄¸ ℄µº

Ó 
 Ö Ù
 ÙÜ´ ½¹ Ľ℄¸ ľ℄µ ¹
¸

Ó 
 Ö Ù
 ÙܴĽ¸Ä¾µº

Ó 
 Ö Ù
 ÙÜ´ ƹ Ľ℄¸ ƹ ľ℄µ ¹
± Æ ½¸

Ó 
 Ö Ù
 ÙܴĽ¸Ä¾µº
4.23. Decodificación de lista
Ejercicio 4.25 Definir la relación 
Ó 
 ´·Ä½¸¹Ä¾µ que, dada la lista Ľ, devuelve la
lista ľ cuya codificación reducida por longitud es Ľ. Por ejemplo,
¹ 
Ó 
 ´ ¸¾¹ ¸¿¹ ¸
¸¿¹ ℄¸Äµº
Ä ¸ ¸ ¸ ¸ ¸ ¸ 
¸ ¸ ¸ ℄
Solución: La definición de 
Ó 
 es

Ó 
 ´ ℄¸ ℄µº

Ó 
 ´ ½¹ Ľ℄¸ ľ℄µ ¹
¸

Ó 
 ´Ä½¸Ä¾µº

Ó 
 ´ ƹ Ľ℄¸ ľ℄µ ¹
± Æ ½¸
¸
ƽ × Æ ¹ ½¸

Ó 
 ´ ƽ¹ Ľ℄¸Ä¾µº

Ó 
 ´ Ľ℄¸ ľ℄µ ¹
± × Ø Ñ 
Ó

Ó 
 ´Ä½¸Ä¾µº
72 Capítulo 4. Retroceso, corte y negación
4.24. Codificación reducida directa
Ejercicio 4.26 Definir la relación 
Ó 
 Ö 
Ø ´·Ä½¸¹Ä¾µ que se verifica si ľ es la
codificación reducida de Ľ (es decir, las sucesiones de un mismo elemento de Ľ se codifican
por términos de la forma ƹ donde Æ es la longitud de la sucesión cuando Æ es mayor que 1 y
por cuando Æ es igual a 1), pero en su definición no se crean listas de elementos repetidos como
en la definición de 
Ó 
 Ö Ù
 . Por ejemplo,
¹ 
Ó 
 Ö 
Ø ´ ¸ ¸ ¸ ¸ ¸ ¸
¸ ¸ ¸ ℄¸Äµº
Ä ¸ ¾¹ ¸ ¿¹ ¸ 
¸ ¿¹ ℄
Solución: La definición de 
Ó 
 Ö 
Ø es

Ó 
 Ö 
Ø ´ ℄¸ ℄µº

Ó 
 Ö 
Ø ´ Ľ℄¸ Ì Ä¾℄µ ¹

Ù ÒØ Ý Ö ×ØÓ´ ¸ Ľ℄¸Æ¸Ä¿µ¸
Ø ÖÑ ÒӴƸ ¸Ìµ¸

Ó 
 Ö 
Ø ´Ä¿¸Ä¾µº
La relación 
Ù ÒØ Ý Ö ×ØÓ´· ¸·Ä½¸¹Æ¸¹Ä¾µ se verifica si Æ es el número de veces
que aparece en la cabeza de la lista Ľ y ľ es el resto de la lista Ľ cuando se le quita
la sucesión de elementos de su cabeza. Por ejemplo,
¹ 
Ù ÒØ Ý Ö ×ØÓ´ ¸ ¸ ¸ ¸ ¸ ¸
¸ ¸ ¸ ℄¸Æ¸Äµº
Æ ¾
Ä ¸ ¸ ¸ 
¸ ¸ ¸ ℄
La definición de 
Ù ÒØ Ý Ö ×ØÓ es

Ù ÒØ Ý Ö ×ØÓ´ ¸ Ľ℄¸Æ¸Ä¾µ ¹

Ù ÒØ Ý Ö ×ØÓ´ ¸Ä½¸Å¸Ä¾µ¸
Æ × Å·½º

Ù ÒØ Ý Ö ×ØÓ´ ¸ Ä℄¸¼¸ Ä℄µ ¹
º

Ù ÒØ Ý Ö ×ØÓ´ ¸ ℄¸¼¸ ℄µº
La definición anterior puede simplificarse con cortes:

Ù ÒØ Ý Ö ×ØÓ ½´ ¸ Ľ℄¸Æ¸Ä¾µ ¹
¸

Ù ÒØ Ý Ö ×ØÓ ½´ ¸Ä½¸Å¸Ä¾µ¸
Æ × Å·½º

Ù ÒØ Ý Ö ×ØÓ ½´ ¸Ä¸¼¸Äµº
4.25. Cota superior de una lista de números 73
La relación Ø ÖÑ ÒÓ´·Æ¸· ¸¹Ìµ se verifica si Ì es el término correspondiente al nú-
mero Æ y al elemento (es decir, Ì es si Æ es 1 y es ƹ en otro caso). Por ejemplo,
¹ Ø ÖÑ ÒÓ´½¸ ¸Ìµº
Ì
¹ Ø ÖÑ ÒÓ´¾¸ ¸Ìµº
Ì ¾¹
La definición de Ø ÖÑ ÒÓ es
Ø ÖÑ ÒÓ´½¸ ¸ µº
Ø ÖÑ ÒӴƸ ¸Æ¹ µ ¹
Æ ½º
La definición anterior puede simplificarse con cortes:
Ø ÖÑ ÒÓ ½´½¸ ¸ µ ¹ º
Ø ÖÑ ÒÓ ½´Æ¸ ¸Æ¹ µº ± ¹ Æ ½º
4.25. Cota superior de una lista de números
Ejercicio 4.27 Definir la relación 
ÓØ ×ÙÔ Ö ÓÖ´·Ä¸·Æµ que se verifique si Æ es una cota
superior de Ä (es decir, todos los elementos de Ä son menores o iguales que Æ). Por ejemplo,
¹ 
ÓØ ×ÙÔ Ö ÓÖ´ ½¸ ¸¿℄¸ µº
×
¹ 
ÓØ ×ÙÔ Ö ÓÖ´ ½¸ ¸¿℄¸ µº
×
¹ 
ÓØ ×ÙÔ Ö ÓÖ´ ½¸ ¸¿℄¸ µº
ÆÓ
Dar dos definiciones, una recursiva y la otra no recursiva.
Solución: La definición recursiva de 
ÓØ ×ÙÔ Ö ÓÖ es

ÓØ ×ÙÔ Ö ÓÖ ½´ ℄¸ µº

ÓØ ×ÙÔ Ö ÓÖ ½´ Ä℄¸Æµ ¹
Ƹ

ÓØ ×ÙÔ Ö ÓÖ ½´Ä¸Æµº
La definición no recursiva de 
ÓØ ×ÙÔ Ö ÓÖ es
74 Capítulo 4. Retroceso, corte y negación

ÓØ ×ÙÔ Ö ÓÖ ¾´Ä¸Æµ ¹
· ´Ñ Ñ Ö´ ¸Äµ¸ Ƶº
Mediante el siguiente ejemplo se compara la eficiencia de las dos definiciones
¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¼¸ ĵ¸ Ø Ñ ´
ÓØ ×ÙÔ Ö ÓÖ ½´ ĸ½¼¼¼¼µµº
± ¾¼¸¼¼½ Ò Ö Ò
 ׸ ¼º¼¼ ÈÍ Ò ¼º¼½ × 
ÓÒ × ´¼± È͸ ÁÒ Ò Ø Ä Ô×µ
¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¼¸ ĵ¸ Ø Ñ ´
ÓØ ×ÙÔ Ö ÓÖ ¾´ ĸ½¼¼¼¼µµº
± ¿¼¸¼¼¾ Ò Ö Ò
 ׸ ¼º¼½ ÈÍ Ò ¼º¼½ × 
ÓÒ × ´ ¿± È͸ ¿¼¼¼¾¼¼ Ä Ô×µ
¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¼¼¸ ĵ¸ Ø Ñ ´
ÓØ ×ÙÔ Ö ÓÖ ½´ ĸ½¼¼¼¼¼µµº
± ¾¼¼¸¼¼½ Ò Ö Ò
 ׸ ¼º¼ ÈÍ Ò ¼º¼ × 
ÓÒ × ´ ± È͸ ¾ ½ Ä Ô×µ
¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¼¼¸ ĵ¸ Ø Ñ ´
ÓØ ×ÙÔ Ö ÓÖ ¾´ ĸ½¼¼¼¼¼µµº
± ¿¼¼¸¼¼¾ Ò Ö Ò
 ׸ ¼º¼ ÈÍ Ò ¼º¼ × 
ÓÒ × ´½¼ ± È͸ ¿ ¼¼¾ Ä Ô×µ
4.26. Dientes de sierra
Ejercicio 4.28 Definir la relación ÒØ ´·Ä¸¹Ä½¸¹ ¸¹Ä¾µ que se verifique si Ä se compone
de una lista Ľ de números estrictamente creciente hasta un cierto número que llamaremos
cima, de la cima y de una lista ľ de números estrictamente decreciente. Las listas tiene Ľ y ľ
tienen que ser no vacías y la cima es el mayor elemento de Ä. Por ejemplo,
¹ ÒØ ´ ½¸¾¸ ¸ ¸¿¸½℄¸Ä½¸ ¸Ä¾µº
Ľ ½¸ ¾℄
ľ ¸ ¿¸ ½℄
ÆÓ
¹ ÒØ ´ ½¸¾¸ ℄¸Ä½¸ ¸Ä¾µº
ÆÓ
Las listas que poseen esta forma de descomposición se llaman dientes.
Solución: La definición de ÒØ es
ÒØ ´Ä¸ ½ Ľ℄¸ ¸ ¾ ľ℄µ ¹
ÔÔ Ò ´ ½ Ľ℄¸ ¸ ¾ ľ℄¸Äµ¸

Ö 
 ÒØ ´ ½ Ľ℄µ¸
Ð ×Ø´ ½ Ľ℄¸ µ¸
¸

Ö 
 ÒØ ´ ¸ ¾ ľ℄µº
La relación 
Ö 
 ÒØ ´·Äµ se verifica si la lista de números Ä es estrictamente creciente.
4.26. Dientes de sierra 75

Ö 
 ÒØ ´ ℄µº

Ö 
 ÒØ ´ ¸ Ä℄µ ¹
¸

Ö 
 ÒØ ´ Ä℄µº
La relación 
Ö 
 ÒØ ´·Äµ se verifica si la lista de números Ä es estrictamente decre-
ciente.

Ö 
 ÒØ ´ ℄µº

Ö 
 ÒØ ´ ¸ Ä℄µ ¹
¸

Ö 
 ÒØ ´ Ä℄µº
Ejercicio 4.29 Una sierra es una lista numérica compuesta por la yuxtaposición de dientes.
Nótese que dos dientes consecutivos deben compartir un elemento. Por ejemplo [1,2,1,3,1] es
una sierra compuesta por los dientes [1,2,1] y [1,3,1], pero [1,2,1,1,3,1] no es una sierra.
Definir la relación ÒØ × × ÖÖ ´·Ä½¸ ľµ que se verifique si Ľ es una sierra y
ľ es la lista de los dientes de Ľ. Por ejemplo,
¹ ÒØ × × ÖÖ ´ ½¸¾¸½¸¿¸½℄¸Äµº
Ä ½¸ ¾¸ ½℄¸ ½¸ ¿¸ ½℄℄
ÆÓ
¹ ÒØ × × ÖÖ ´ ½¸¾¸½¸½¸¿¸½℄¸Äµº
ÆÓ
Solución: La definición de ÒØ × × ÖÖ es
ÒØ × × ÖÖ ´Ä¸ Ä℄µ ¹
ÒØ ´Ä¸ ¸ ¸ µ¸ º
ÒØ × × ÖÖ ´Ä¸ Ľ Ê℄µ ¹
ÔÔ Ò ´Ä½¸Ä¾¸Äµ¸
ÒØ ´Ä½¸ ¸ ¸ µ¸
Ð ×شĽ¸ µ¸
ÒØ × × ÖÖ ´ ľ℄¸Êµº
El corte aumenta la eficiencia como se aprecia en el siguiente ejemplo con la definición
con corte
¹ ÒÙÑÐ ×Ø´½¸½¼¼¸ Ľµ¸ ÔÔ Ò ´ Ľ¸ ½ Ľ℄¸ ľµ¸ Ø Ñ ´ ÒØ × × ÖÖ ´ ľ¸Äµµº
± ½¸ Ò Ö Ò
 ׸ ¼º¿ ÈÍ Ò ¼º¿ × 
ÓÒ × ´ ± È͸ ½ ½ ¿¼¼ Ä Ô×µ
ÆÓ
76 Capítulo 4. Retroceso, corte y negación
y el mismo ejemplo con la definición sin el corte
¹ ÒÙÑÐ ×Ø´½¸½¼¼¸ Ľµ¸ ÔÔ Ò ´ Ľ¸ ½ Ľ℄¸ ľµ¸ Ø Ñ ´ ÒØ × × ÖÖ ´ ľ¸Äµµº
± ¿¸½ ¸¾ ¼ Ò Ö Ò
 ׸ ¼º ¾ ÈÍ Ò ¼º × 
ÓÒ × ´ ± È͸ ¿ ¾¼ Ä Ô×µ
ÆÓ
Capítulo 5
Programación lógica de segundo orden
5.1. Determinación de un número por su factorial
Ejercicio 5.1 Definir la relación 
ØÓÖ Ð ÒÚ Ö×Ó´· ¸¹Æµ que se verifique si es el facto-
rial de Æ. Por ejemplo,
¹ 
ØÓÖ Ð ÒÚ Ö×Ó´½¾¼¸Æµº
Æ
ÆÓ
¹ 
ØÓÖ Ð ÒÚ Ö×Ó´ ¼¸Æµº
ÆÓ
Solución: Presentamos tres definiciones y comparamos su eficicencia.
La primera definición usa un acumulador para almacenar los candidatos de la so-
lución.

ØÓÖ Ð ÒÚ Ö×Ó ½´ ¸Æµ ¹

ØÓÖ Ð ÒÚ Ö×Ó ½ ÙÜ´ ¸½¸Æµº
La relación 
ØÓÖ Ð ÒÚ Ö×Ó ½ ÙÜ´· ¸· ¸¹Æµ se verifica si Æ es el menor número
mayor o igual que cuyo factorial es .

ØÓÖ Ð ÒÚ Ö×Ó ½ ÙÜ´ ¸ ¸ µ ¹

ØÓÖ Ð´ ¸ µº

ØÓÖ Ð ÒÚ Ö×Ó ½ ÙÜ´ ¸ ¸Æµ ¹

ØÓÖ Ð´ ¸Æ½µ¸
ƽ ¸
½ × · ½¸

ØÓÖ Ð ÒÚ Ö×Ó ½ ÙÜ´ ¸ ½¸Æµº
77
78 Capítulo 5. Programación lógica de segundo orden
La relación 
ØÓÖ Ð´·Æ¸¹ µ se verifica si es el factorial de Æ.

ØÓÖ Ð´½¸½µº

ØÓÖ Ð´Æ¸ µ ¹
Æ ½¸
ƽ × Æ¹½¸

ØÓÖ Ð´Æ½¸ ½µ¸
× ½ ¶ ƺ
La segunda definición se diferencia de la anterior en que almacena en memoria los
factoriales de los candidatos considerados.

ØÓÖ Ð ÒÚ Ö×Ó ¾´ ¸Æµ ¹

ØÓÖ Ð ÒÚ Ö×Ó ¾ ÙÜ´ ¸½¸Æµº
La relación 
ØÓÖ Ð ÒÚ Ö×Ó ¾ ÙÜ´· ¸· ¸¹Æµ se verifica si Æ es el menor número
mayor o igual que cuyo factorial (con memoria) es .

ØÓÖ Ð ÒÚ Ö×Ó ¾ ÙÜ´ ¸ ¸ µ ¹

ØÓÖ Ð 
ÓÒ Ñ ÑÓÖ ´ ¸ µº

ØÓÖ Ð ÒÚ Ö×Ó ¾ ÙÜ´ ¸ ¸Æµ ¹

ØÓÖ Ð 
ÓÒ Ñ ÑÓÖ ´ ¸Æ½µ¸
ƽ ¸
½ × · ½¸

ØÓÖ Ð ÒÚ Ö×Ó ¾ ÙÜ´ ¸ ½¸Æµº
La relación 
ØÓÖ Ð 
ÓÒ Ñ ÑÓÖ ´·Æ¸¹ µ se verifica si es el factorial de Æ. Además
almacena en la base de datos internas los factoriales calculados.
¹ ÝÒ Ñ 
 
ØÓÖ Ð 
ÓÒ Ñ ÑÓÖ »¾º

ØÓÖ Ð 
ÓÒ Ñ ÑÓÖ ´½¸½µº

ØÓÖ Ð 
ÓÒ Ñ ÑÓÖ ´Æ¸ µ ¹
Æ ½¸
ƽ × Æ¹½¸

ØÓÖ Ð 
ÓÒ Ñ ÑÓÖ ´Æ½¸ ½µ¸
× ½ ¶ Ƹ
×× ÖØ ´ 
ØÓÖ Ð 
ÓÒ Ñ ÑÓÖ ´Æ¸ µ ¹ µº
En la tercera definición se utiliza dos acumuladores para almacenar el candidato y
el factorial del candidato anterior.
5.2. Árbol de resolución y definiciones equivalentes 79

ØÓÖ Ð ÒÚ Ö×Ó ¿´ ¸Æµ ¹

ØÓÖ Ð ÒÚ Ö×Ó ÙÜ ¿´ ¸½¸½¸Æµº
La relación 
ØÓÖ Ð ÒÚ Ö×Ó ÙÜ ¿´· ¸· ¸· ¸¹Æµ se verifica si X = A ∗ (A + 1) ∗
· · · ∗ N (de forma que si A = 1 entonces X = N!).

ØÓÖ Ð ÒÚ Ö×Ó ÙÜ ¿´ ¸ ¸ ¸ µ ¹
¶ º

ØÓÖ Ð ÒÚ Ö×Ó ÙÜ ¿´ ¸ ¸ ¸Æµ ¹
½ × ¶ ¸
½ ¸ ¸
½ × · ½¸

ØÓÖ Ð ÒÚ Ö×Ó ÙÜ ¿´ ¸ ½¸ ½¸Æµº
En los siguientes ejemplos se compara la eficiencia.
¹ 
ØÓÖ Ð´¾ ¼¸ µ¸ Ø Ñ ´ 
ØÓÖ Ð ÒÚ Ö×Ó ½´ ¸ Ƶµº
± ¾ ¸ ¼½ Ò Ö Ò
 ׸ ¼º¾ ÈÍ Ò ¼º¿¼ × 
ÓÒ × ´ ± È͸ ½¼ Ä Ô×µ
¹ 
ØÓÖ Ð´¾ ¼¸ µ¸ Ø Ñ ´ 
ØÓÖ Ð ÒÚ Ö×Ó ¾´ ¸ Ƶµº
± ¿¸ Ò Ö Ò
 ׸ ¼º¼¼ ÈÍ Ò ¼º¼¼ × 
ÓÒ × ´¼± È͸ ÁÒ Ò Ø Ä Ô×µ
¹ 
ØÓÖ Ð´¾ ¼¸ µ¸ Ø Ñ ´ 
ØÓÖ Ð ÒÚ Ö×Ó ¿´ ¸ Ƶµº
± ½¸¾ Ò Ö Ò
 ׸ ¼º¼¼ ÈÍ Ò ¼º¼½ × 
ÓÒ × ´¼± È͸ ÁÒ Ò Ø Ä Ô×µ
¹ 
ØÓÖ Ð´½¼¼¼¸ µ¸ Ø Ñ ´ 
ØÓÖ Ð ÒÚ Ö×Ó ½´ ¸ Ƶµº
± ¿¾½¸ ¾¾ Ò Ö Ò
 ׸ ¼º ÈÍ Ò ¼º × 
ÓÒ × ´ ± È͸ ¿ Ä Ô×µ
ÊÊÇÊ ÇÙØ Ó ÐÓ
 Ð ×Ø 
¹ 
ØÓÖ Ð´½¼¼¼¸ µ¸ Ø Ñ ´ 
ØÓÖ Ð ÒÚ Ö×Ó ¾´ ¸ Ƶµº
± ½¿¸ Ò Ö Ò
 ׸ ¼º¼ ÈÍ Ò ¼º¼ × 
ÓÒ × ´ ± È͸ ½ ½ Ä Ô×µ
¹ 
ØÓÖ Ð´½¼¼¼¸ µ¸ Ø Ñ ´ 
ØÓÖ Ð ÒÚ Ö×Ó ¿´ ¸ Ƶµº
± ¸ Ò Ö Ò
 ׸ ¼º¼¿ ÈÍ Ò ¼º¼¿ × 
ÓÒ × ´½¼ ± È͸ ½ ¼¼ Ä Ô×µ
5.2. Árbol de resolución y definiciones equivalentes
Ejercicio 5.2 Se piden los siguientes apartados:
80 Capítulo 5. Programación lógica de segundo orden
1. Dibujar el árbol de resolución correspondiente al programa
Ô´ ℄¸ ℄µº
Ô´ ℄¸ ℄µ ¹
¸ ¸
Ô´ ¸ µº
Ô´ ℄¸ µ ¹
Ô´ ¸ µº
y al objetivo
¹ Ô´ ¸½¸ ℄¸ µº
2. Explicar la relación que hay entre Ľ y ľ cuando se verifica ԴĽ¸Ä¾µ.
3. Dar una definición no recursiva del predicado ԴĽ¸Ä¾µ.
Solución:
1. El árbol de resolución está en la figura 5.1 (página 81).
2. la relación ԴĽ¸Ä¾µ se verifica si ľ es la lista de los elementos de Ľ que son
mayores que 4.
3. Una definición no recursiva de Ô es
Ô½´Ä½¸Ä¾µ ¹
Ò Ðд ¸´Ñ Ñ Ö´ ¸Ä½µ¸ µ¸Ä¾µº
5.3. Nodos de una generación en una lista de árboles bi-
narios
Ejercicio 5.3 Un árbol binario es vacío o consta de tres partes: la raíz (que debe de ser un número
positivo), el subárbol izquierdo (que debe ser un árbol binario) y el subárbol derecho (que debe ser
un árbol binario). Usaremos la siguiente representación
Ò Ð representa el árbol vacío
Ø´Á¸Ê¸ µ representa el árbol de la raíz Ê, subárbol izquierdo Á y subárbol derecho .
Por ejemplo, Ø´Ø´Ò Ð¸¾¸Ò е¸½¸Ø´Ø´Ò и ¸Ò е¸¿¸Ò еµ representa el árbol
5.3. Nodos de una generación en una lista de árboles binarios 81
5 > 4, !,
p([1,6],B1)
!,
p([1,6],B1)
2 {X1/5,
A1/[1,6],
B0/[5|B1]}
2 {X3/1,
A3/[6],
B1/[1|B3]}
3 {X3/1,
A3/[6],
B3/B1}
p([6],B1)1 > 4, !,
p([6],B3)
2 {X4/6,
A4/[],
B1/[6|B4]}
6 > 4, !,
p([],B4)
!,
p([],B4)
p([5,1,6],B0)
3
Fallo
p([],B4)
1 {B4/[]}
B = B0 = [5|B1] = [5,6|B4] = [5,6]
Figura 5.1: Árbol de resolución
82 Capítulo 5. Programación lógica de segundo orden
½
»
¾ ¿
»
Definir la relación Ò Ö 
 Ò´·Æ¸·Ä½¸¹Ä¾µ que se verifique si ľ es la lista de nodos de la
generación Æ de la lista de árboles Ľ. Por ejemplo,
¹ Ò Ö 
 Ò´¼¸ Ø´Ø´Ò Ð¸¾¸Ò е¸¿¸Ò е¸Ø´Ò и ¸Ø´Ò и ¸Ò еµ℄¸Äµº
Ä ¿¸ ℄
¹ Ò Ö 
 Ò´½¸ Ø´Ø´Ò Ð¸¾¸Ò е¸¿¸Ò е¸Ø´Ò и ¸Ø´Ò и ¸Ò еµ℄¸Äµº
Ä ¾¸ ℄
¹ Ò Ö 
 Ò´¾¸ Ø´Ø´Ò Ð¸¾¸Ò е¸¿¸Ò е¸Ø´Ò и ¸Ø´Ò и ¸Ò еµ℄¸Äµº
Ä ℄
Solución: La definición de Ò Ö 
 Ò es
Ò Ö 
 Ò´¼¸Ä¸ µ ¹
Ò ÐÐ´Ê¸Ñ Ñ Ö´Ø´ ¸Ê¸ µ¸Äµ¸ µº
Ò Ö 
 ҴƸĸ µ ¹
Æ ¼¸
Ð Ñ Ò Ö 
 ״ĸĽµ¸
ƽ × Æ¹½¸
Ò Ö 
 Ҵƽ¸Ä½¸ µº
donde Ð Ñ Ò Ö 
 ×´·Ä½¸¹Ä¾µ se verifica si ľ es la lista de los árboles obtenidos de
la lista de árboles Ľ eliminando sus raices. Por ejemplo,
¹ Ð Ñ Ò Ö 
 ×´ Ø´Ø´Ò Ð¸¾¸Ò е¸¿¸Ò е¸Ø´Ò и ¸Ø´Ò и ¸Ò еµ℄¸Äµº
Ä Ø´Ò Ð¸ ¾¸ Ò Ðµ¸ Ò Ð¸ Ò Ð¸ Ø´Ò Ð¸ ¸ Ò Ðµ℄
La definición de Ð Ñ Ò Ö 
 × es
Ð Ñ Ò Ö 
 ×´ ℄¸ ℄µº
Ð Ñ Ò Ö 
 ×´ Ò Ð Ä½℄¸Ä¾µ ¹
Ð Ñ Ò Ö 
 ״Ľ¸Ä¾µº
Ð Ñ Ò Ö 
 ×´ Ø´Á¸ ¸ µ Ľ℄¸ Á¸ ľ℄µ ¹
Ð Ñ Ò Ö 
 ״Ľ¸Ä¾µº
5.4. Lista de elementos únicos 83
5.4. Lista de elementos únicos
Ejercicio 5.4 Definir la relación Ò 
Ó×´·Ä½¸¹Ä¾µ que se verifique si ľ es la lista de los ele-
mentos que ocurren solamente una vez en la lista Ľ. Por ejemplo,
¹ Ò 
Ó×´ ¾¸ ¸¿¸¾℄¸Äµº
Ä ¸ ¿℄
¹ Ò 
Ó×´ ¾¸ ¸ ¸¾℄¸Äµº
Ä ℄
Solución: La definición de Ò 
Ó× es
Ò 
Ó״Ľ¸Ä¾µ ¹
Ò Ðд ¸ × Ò 
Ó´ ¸Ä½µ¸Ä¾µº
donde la relación × Ò 
Ó´ ¸·Äµ se verifica si es un elemento que ocurre solamente
una vez en la lista Ä. Por ejemplo,
¹ × Ò 
Ó´ ¸ ¾¸ ¸¿¸¾℄µº
¿
ÆÓ
× Ò 
Ó´ ¸Äµ ¹
× Ð 
Ø´ ¸Ä¸Êµ¸
ÒÓØ´Ñ Ñ Ö
 ´ ¸Êµµº
5.5. Elementos más frecuentes de una lista
Ejercicio 5.5 Definir el predicado ÔÓÔÙÐ Ö ×´Ä½¸Ä¾µ que se verifique si ľ es la lista de los
elementos de Ľ que aparecen el mayor número de veces. Por ejemplo,
¹ ÔÓÔÙÐ Ö ×´ ÖÓ× ¸ Ù Ò¸ Ú ¸Ñ ÒÙ¸ÖÓ× ¸ÒÙÖ ¸ Ú ℄¸Äµº
Ä Ú ¸ÖÓ× ℄
Solución: La definición de ÔÓÔÙÐ Ö × es
ÔÓÔÙÐ Ö ×´Ä½¸Ä¾µ ¹
× ØÓ ´ ¸
´´Ñ Ñ Ö´ ¸Ä½µ¸

Ù ÒØ ´ ¸Ä½¸Æ½µ¸
84 Capítulo 5. Programación lógica de segundo orden
ÒÓØ´´Ñ Ñ Ö´ ¸Ä½µ¸

Ù ÒØ ´ ¸Ä½¸Æ¾µ¸
ƽ ƾµµµµ¸
ľµº
La relación 
Ù ÒØ ´· ¸·Ä¸¹Æµ se verifica si Æ es el número de veces que aparece el ele-
mento en la lista Ä. Por ejemplo,
¹ 
Ù ÒØ ´ ¸ Ö¸ ¸ ¸Ñ¸Ö¸Ò¸ ℄¸Æµº
Æ ¾
La definición de 
Ù ÒØ es

Ù ÒØ ´ ¸ ℄¸¼µº

Ù ÒØ ´ ¸ Ä℄¸Æµ ¹
¸ ¸

Ù ÒØ ´ ¸Ä¸Åµ¸
Æ × Å·½º

Ù ÒØ ´ ¸ Ä℄¸Æµ ¹
± ¸

Ù ÒØ ´ ¸Ä¸Æµº
5.6. Problema 3n + 1
Ejercicio 5.6 Consideremos la función siguiente definida sobre los números naturales:
f (x) =
3x + 1, si x es impar;
x/2, si x es par
se pide:
1. Definir la relación ×Ù
 × Ò´· ¸ ĵ que se verifique si Ä es la lista de los elementos X,
f (X), f (f (X)), . . . , f n(X) tal que f n(X) = 1. Por ejemplo,
¹ ×Ù
 × Ò´¿¸Äµº
Ä ¿¸ ½¼¸ ¸ ½ ¸ ¸ ¸ ¾¸ ½℄
Ä se llama la sucesión generada por Æ.
2. Definir la relación ÐÓÒ ØÙ ×´· ¸ ĵ que se verifica si Ä la lista de pares ¹Æ donde
es un número de 1 a y Æ es la longitud de sucesión generada por . Por ejemplo,
5.6. Problema 3n + 1 85
¹ ÐÓÒ ØÙ ×´ ¸Äµº
Ä ½¹½¸ ¾¹¾¸ ¿¹ ¸ ¹¿¸ ¹ ℄
3. Definir la relación ÐÓÒ ØÙ Ñ Ü´· ¸ ȵ que se verifica si È es un par de la forma ¹Æ
donde es un número entre 1 y tal que la longitud de la sucesión generada por es la
más larga de las sucesiones generadas por 1,2,. . . , y Æ es la longitud de dicha sucesión.
Por ejemplo,
¹ ÐÓÒ ØÙ Ñ Ü´½¼¸Äµº
Ä ¹¾¼
4. Definir Ñ ÒÓÖ ÕÙ Ò Ö Ñ ÝÓÖ´·Æ¸¹Åµ que se verifique si Å es el menor número na-
tural tal que la longitud de la sucesión generada por Å es mayor que Æ. Por ejemplo,
¹ Ñ ÒÓÖ ÕÙ Ò Ö Ñ ÝÓÖ´½¼¼¸Æµº
Æ ¾
Solución: La relación ´· ¸¹ µ se verifica si ´ µ.
´ ¸ µ ¹
ÑÓ ¾ ¼¸ ¸
× »¾º
´ ¸ µ ¹
± ÑÓ ¾ » ¼¸
× ¿¶ ·½º
Solución del apartado 1: La definición de ×Ù
 × Ò es
×Ù
 × Ò´½¸ ½℄µ ¹ º
×Ù
 × Ò´ ¸ Ä℄µ ¹
± » ½¸
´ ¸ µ¸
×Ù
 × Ò´ ¸Äµº
Solución del apartado 2: Presentamos dos definiciones de ÐÓÒ ØÙ ×.
La primera definición de ÐÓÒ ØÙ × es recursiva.
ÐÓÒ ØÙ ×´ ¸Äµ ¹
ÐÓÒ ØÙ × ÙÜ´ ¸Ä½µ¸
Ö Ú Ö× ´Ä½¸Äµº
ÐÓÒ ØÙ × ÙÜ´½¸ ½¹Æ℄µ ¹
¸
×Ù
 × Ò´½¸Äµ¸
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog
Ejercicios programacion prolog

Más contenido relacionado

La actualidad más candente

Ejemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rupEjemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rupXochitl Saucedo Muñoz
 
Modelo Multidimensional
Modelo MultidimensionalModelo Multidimensional
Modelo MultidimensionalMarco Calle
 
modelo vista controlador
modelo vista controladormodelo vista controlador
modelo vista controladorcom2merwil
 
Tipos de pruebas de software
Tipos de pruebas de softwareTipos de pruebas de software
Tipos de pruebas de softwareGuillermo Lemus
 
diagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemadiagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemaUniversidad Tecnológica
 
Caso de uso de caja negra
Caso de uso de caja negraCaso de uso de caja negra
Caso de uso de caja negraEIYSC
 
Modelo de desarrollo de software
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de softwareYaskelly Yedra
 
Sistema de Administracion de Condominios basados en agentes de software
Sistema de Administracion de Condominios basados en agentes de softwareSistema de Administracion de Condominios basados en agentes de software
Sistema de Administracion de Condominios basados en agentes de softwarePedro Chavez
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Giancarlo Aguilar
 
Modelo basado en prototipos - Ingeniería de Software
Modelo basado en prototipos - Ingeniería de SoftwareModelo basado en prototipos - Ingeniería de Software
Modelo basado en prototipos - Ingeniería de SoftwareJoan Fernando Chipia Lobo
 

La actualidad más candente (20)

Ejemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rupEjemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rup
 
Rup (iteraciones)
Rup (iteraciones)Rup (iteraciones)
Rup (iteraciones)
 
Recursividad directa e indirecta
Recursividad directa e indirectaRecursividad directa e indirecta
Recursividad directa e indirecta
 
Modelo Multidimensional
Modelo MultidimensionalModelo Multidimensional
Modelo Multidimensional
 
Diseño orientado a objeto
Diseño orientado a objetoDiseño orientado a objeto
Diseño orientado a objeto
 
modelo vista controlador
modelo vista controladormodelo vista controlador
modelo vista controlador
 
Tipos de pruebas de software
Tipos de pruebas de softwareTipos de pruebas de software
Tipos de pruebas de software
 
Prueba software orientado a objetos
Prueba software orientado a objetosPrueba software orientado a objetos
Prueba software orientado a objetos
 
diagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistemadiagrama de casos de uso del negocio y del sistema
diagrama de casos de uso del negocio y del sistema
 
Búsqueda IA
Búsqueda IABúsqueda IA
Búsqueda IA
 
Arquitectura del software
Arquitectura del softwareArquitectura del software
Arquitectura del software
 
Poo manual de ejercicios
Poo manual de ejercicios Poo manual de ejercicios
Poo manual de ejercicios
 
Caso de uso de caja negra
Caso de uso de caja negraCaso de uso de caja negra
Caso de uso de caja negra
 
Modelo de desarrollo de software
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de software
 
Sistema de Administracion de Condominios basados en agentes de software
Sistema de Administracion de Condominios basados en agentes de softwareSistema de Administracion de Condominios basados en agentes de software
Sistema de Administracion de Condominios basados en agentes de software
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Diagrama de contexto
Diagrama de contextoDiagrama de contexto
Diagrama de contexto
 
PROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOSPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS
 
Modelo basado en prototipos - Ingeniería de Software
Modelo basado en prototipos - Ingeniería de SoftwareModelo basado en prototipos - Ingeniería de Software
Modelo basado en prototipos - Ingeniería de Software
 
Ejercicios
EjerciciosEjercicios
Ejercicios
 

Destacado

Manual prolog
Manual prologManual prolog
Manual prologbrizey
 
Presentacion de inteligencia artificial
Presentacion de inteligencia artificialPresentacion de inteligencia artificial
Presentacion de inteligencia artificialCyyn
 
Practicas prolog
Practicas prologPracticas prolog
Practicas prologmaxsp5566
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017Drift
 

Destacado (6)

Manual prolog
Manual prologManual prolog
Manual prolog
 
Presentacion de inteligencia artificial
Presentacion de inteligencia artificialPresentacion de inteligencia artificial
Presentacion de inteligencia artificial
 
Jflambert lyada - ayudantia 2 prolog
Jflambert   lyada - ayudantia 2 prologJflambert   lyada - ayudantia 2 prolog
Jflambert lyada - ayudantia 2 prolog
 
Inteligencia artificial 2
Inteligencia artificial 2Inteligencia artificial 2
Inteligencia artificial 2
 
Practicas prolog
Practicas prologPracticas prolog
Practicas prolog
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017
 

Similar a Ejercicios programacion prolog (20)

Guía #8 - Ciclos Iterativos Anidados.pdf
Guía #8 - Ciclos Iterativos Anidados.pdfGuía #8 - Ciclos Iterativos Anidados.pdf
Guía #8 - Ciclos Iterativos Anidados.pdf
 
Manual maxima
Manual maximaManual maxima
Manual maxima
 
RasterR.pdf
RasterR.pdfRasterR.pdf
RasterR.pdf
 
Manual LaTeX
Manual LaTeXManual LaTeX
Manual LaTeX
 
Algebra lineal bernardo acevedo frias
Algebra lineal bernardo acevedo friasAlgebra lineal bernardo acevedo frias
Algebra lineal bernardo acevedo frias
 
Maxima
MaximaMaxima
Maxima
 
Algoritmos y estructura_de_datos
Algoritmos y estructura_de_datosAlgoritmos y estructura_de_datos
Algoritmos y estructura_de_datos
 
Algoritmos y estructura_de_datos
Algoritmos y estructura_de_datosAlgoritmos y estructura_de_datos
Algoritmos y estructura_de_datos
 
y estructura_de_datos
y estructura_de_datosy estructura_de_datos
y estructura_de_datos
 
Algoritmos y estructura_de_datos
Algoritmos y estructura_de_datosAlgoritmos y estructura_de_datos
Algoritmos y estructura_de_datos
 
Libro cs1
Libro cs1Libro cs1
Libro cs1
 
Introducción al r
Introducción al rIntroducción al r
Introducción al r
 
Números irracionales
Números irracionalesNúmeros irracionales
Números irracionales
 
Funciones cuadráticas
Funciones cuadráticasFunciones cuadráticas
Funciones cuadráticas
 
El Arte de Programar en R
El Arte de Programar en REl Arte de Programar en R
El Arte de Programar en R
 
El arte de programar en r
El arte de programar en rEl arte de programar en r
El arte de programar en r
 
Santana el arte_de_programar_en_r
Santana el arte_de_programar_en_rSantana el arte_de_programar_en_r
Santana el arte_de_programar_en_r
 
ApuntesC++.pdf
ApuntesC++.pdfApuntesC++.pdf
ApuntesC++.pdf
 
PROGRAMACIÓN CON LATEX
PROGRAMACIÓN CON LATEXPROGRAMACIÓN CON LATEX
PROGRAMACIÓN CON LATEX
 
Tutorial xhtml y css
Tutorial xhtml y cssTutorial xhtml y css
Tutorial xhtml y css
 

Último

SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS.pdf
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS.pdfLA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS.pdf
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS.pdfJAVIER SOLIS NOYOLA
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptAlberto Rubio
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIAAbelardoVelaAlbrecht1
 
La evolucion de la especie humana-primero de secundaria
La evolucion de la especie humana-primero de secundariaLa evolucion de la especie humana-primero de secundaria
La evolucion de la especie humana-primero de secundariamarco carlos cuyo
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfDaniel Ángel Corral de la Mata, Ph.D.
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfNataliaMalky1
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADOJosé Luis Palma
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 

Último (20)

TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
VISITA À PROTEÇÃO CIVIL _
VISITA À PROTEÇÃO CIVIL                  _VISITA À PROTEÇÃO CIVIL                  _
VISITA À PROTEÇÃO CIVIL _
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS.pdf
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS.pdfLA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS.pdf
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS.pdf
 
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).pptPINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
PINTURA ITALIANA DEL CINQUECENTO (SIGLO XVI).ppt
 
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIATRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
TRIPTICO-SISTEMA-MUSCULAR. PARA NIÑOS DE PRIMARIA
 
La evolucion de la especie humana-primero de secundaria
La evolucion de la especie humana-primero de secundariaLa evolucion de la especie humana-primero de secundaria
La evolucion de la especie humana-primero de secundaria
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
 
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdfLA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
LA OVEJITA QUE VINO A CENAR CUENTO INFANTIL.pdf
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADODECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
DECÁGOLO DEL GENERAL ELOY ALFARO DELGADO
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
Unidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDIUnidad 3 | Teorías de la Comunicación | MCDI
Unidad 3 | Teorías de la Comunicación | MCDI
 

Ejercicios programacion prolog

  • 1. Ejercicios de programación declarativa con Prolog José A. Alonso Jiménez Grupo de Lógica Computacional Dpto. de Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Sevilla, 1 de Enero de 2006 (Versión de 20 de septiembre de 2007)
  • 2. 2 Esta obra está bajo una licencia Reconocimiento–NoComercial–CompartirIgual 2.5 Spain de Creative Commons. Se permite: copiar, distribuir y comunicar públicamente la obra hacer obras derivadas Bajo las condiciones siguientes: Reconocimiento. Debe reconocer los créditos de la obra de la manera especificada por el autor. No comercial. No puede utilizar esta obra para fines comerciales. Compartir bajo la misma licencia. Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra. Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor. Esto es un resumen de la licencia completa. Para ver una copia de esta licencia, visite ØØÔ »» Ö Ø Ú ÓÑÑÓÒ׺ÓÖ »Ð Ò× ×» Ý¹Ò ¹× »¾º » ×» o envie una carta a Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
  • 3. Índice general Introducción 6 1. Operaciones con listas 9 1.1. Primer elemento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2. Resto de una lista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3. Construcción de listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.4. Relación de pertenencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.5. Concatenación de listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.6. Lista inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.7. Palíndromo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.8. Último elemento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.9. Penúltimo elemento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.10. Selección de un elemento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.11. Inserción de un elemento en una lista . . . . . . . . . . . . . . . . . . . . . 17 1.12. Sublista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.13. Permutación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 1.14. Lista con todos sus elementos iguales . . . . . . . . . . . . . . . . . . . . . 18 1.15. Paridad de la longitud de una lista . . . . . . . . . . . . . . . . . . . . . . . 19 1.16. Rotación de un elemento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.17. Subconjunto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2. Aritmética 21 2.1. Máximo de dos números . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.2. Factorial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3. Sucesión de Fibonacci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.4. Máximo común divisor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.5. Longitud de una lista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.6. Lista de números acotada por su longitud . . . . . . . . . . . . . . . . . . . 23 2.7. Máximo de una lista de números . . . . . . . . . . . . . . . . . . . . . . . . 24 2.8. Suma de los elementos de una lista . . . . . . . . . . . . . . . . . . . . . . . 24 2.9. Lista de números ordenada . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3
  • 4. 4 Índice general 2.10. Suma parcial de una lista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.11. Lista de Æ veces el número Æ . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.12. Generación de lista de números . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.13. Intervalo entero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.14. K–ésimo elemento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.15. Multiplicación de las ocurrencias de los elementos de una lista . . . . . . . 28 3. Estructuras 31 3.1. Segmentos como objetos estructurados . . . . . . . . . . . . . . . . . . . . . 31 3.2. Base de datos familiar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.3. Autómata no–determinista . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.4. El problema del mono y el plátano . . . . . . . . . . . . . . . . . . . . . . . 44 3.5. Movimientos del caballo del ajedrez . . . . . . . . . . . . . . . . . . . . . . 45 3.6. Máximo elemento de un árbol binario . . . . . . . . . . . . . . . . . . . . . 47 4. Retroceso, corte y negación 49 4.1. Ejemplos de uso del corte . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.2. Árboles de deducción de Ñ Ñ Ö . . . . . . . . . . . . . . . . . . . . . . 53 4.3. Diferencia de conjuntos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.4. Agregación de un elemento a un conjunto . . . . . . . . . . . . . . . . . . . 55 4.5. Separación de una lista de números en positivos y negativos . . . . . . . . 56 4.6. Suma de los números pares de una lista de números . . . . . . . . . . . . 56 4.7. Exponente de dos en la factorización de un número . . . . . . . . . . . . . 58 4.8. Transformación de lista a conjunto . . . . . . . . . . . . . . . . . . . . . . . 58 4.9. Signos de crecimientos de sucesiones numéricas . . . . . . . . . . . . . . . 60 4.10. Descomposición en factores primos . . . . . . . . . . . . . . . . . . . . . . . 60 4.11. Menor elemento que cumple una propiedad . . . . . . . . . . . . . . . . . 61 4.12. Números libres de cuadrados . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4.13. Suma de los números libres de cuadrados . . . . . . . . . . . . . . . . . . . 63 4.14. Máximo número de una lista . . . . . . . . . . . . . . . . . . . . . . . . . . 64 4.15. Longitud de las subsucesiones comunes maximales . . . . . . . . . . . . . 64 4.16. Elementos repetidos en una lista . . . . . . . . . . . . . . . . . . . . . . . . 65 4.17. Subconjunto maximal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.18. Suma de los elementos con posiciones múltiplos de n . . . . . . . . . . . . 67 4.19. Compresión de listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.20. Empaquetamiento de listas . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 4.21. Codificación por longitud . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 4.22. Codificación reducida por longitud . . . . . . . . . . . . . . . . . . . . . . . 70 4.23. Decodificación de lista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 4.24. Codificación reducida directa . . . . . . . . . . . . . . . . . . . . . . . . . . 72 4.25. Cota superior de una lista de números . . . . . . . . . . . . . . . . . . . . . 73
  • 5. Índice general 5 4.26. Dientes de sierra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 5. Programación lógica de segundo orden 77 5.1. Determinación de un número por su factorial . . . . . . . . . . . . . . . . . 77 5.2. Árbol de resolución y definiciones equivalentes . . . . . . . . . . . . . . . 79 5.3. Nodos de una generación en una lista de árboles binarios . . . . . . . . . . 80 5.4. Lista de elementos únicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 5.5. Elementos más frecuentes de una lista . . . . . . . . . . . . . . . . . . . . . 83 5.6. Problema 3n + 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.7. Números perfectos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 5.8. Determinación de triángulos equiláteros . . . . . . . . . . . . . . . . . . . . 89 5.9. Operación binaria aplicada a listas . . . . . . . . . . . . . . . . . . . . . . . 90 5.10. Números en un término . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 5.11. Palabra sin vocales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 5.12. Palabras maximales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 5.13. Clausura transitiva de una relación . . . . . . . . . . . . . . . . . . . . . . . 92 5.14. Traducción de cifras a palabras . . . . . . . . . . . . . . . . . . . . . . . . . 93 5.15. Transformación de lista dependiente de la posición . . . . . . . . . . . . . 94 5.16. Aplanamiento de listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 6. Estilo y eficiencia en programación lógica 97 6.1. Número de Hardy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 6.2. Subconjuntos de suma dada . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 6.3. Coloreado de mapas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 7. Aplicaciones de programación declarativa 107 7.1. Formación de grupos minimales de asignaturas compatibles . . . . . . . . 107 7.2. Simulación de una calculadora básica . . . . . . . . . . . . . . . . . . . . . 110 7.3. Problema de las subastas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 Bibliografía 121 Indice de definiciones 122
  • 7. Introducción El objetivo del presente trabajo es presentar una colección de ejercicios para la asig- natura “Programación declarativa” de tercer curso de la Ingeniería Informática. Estos ejercicios complementa los apuntes de introducción a la programación decla- rativa con Prolog ([1]) y a las transparencias de clase ([2]). Todos los ejercicios se han comprobado usando la versión 5.6.18 de SWI Prolog. 7
  • 9. Capítulo 1 Operaciones con listas Una lista es la lista vacía o se compone de un primer elemento y un resto, que es una lista. En Prolog, la lista vacía se representa por ℄ y las listas no vacía son de la forma Ä℄ donde es la cabeza y Ä es el resto. 1.1. Primer elemento Ejercicio 1.1 Definir la relación ÔÖ Ñ ÖÓ´ ĸ µ que se verifique si es el primer elemento de la lista Ä. Por ejemplo, ¹ ÔÖ Ñ ÖÓ´ ¸ ¸ ℄¸ µº Obtener las respuestas a las siguientes preguntas: ¹ ÔÖ Ñ ÖÓ´ ¸ ¸ ℄¸ µº ¹ ÔÖ Ñ ÖÓ´ ¸ ℄¸ µº ¹ ÔÖ Ñ ÖÓ´ ¸ µº Solución: La definición de ÔÖ Ñ ÖÓ es ÔÖ Ñ ÖÓ´ ℄¸ µº Las respuestas a las preguntas son ¹ ÔÖ Ñ ÖÓ´ ¸ ¸ ℄¸ µº ¹ ÔÖ Ñ ÖÓ´ ¸ ¸ ℄¸ µº ¹ ÔÖ Ñ ÖÓ´ ¸ ℄¸ µº 9
  • 10. 10 Capítulo 1. Operaciones con listas ¹ ÔÖ Ñ ÖÓ´ ¸ µº ℄ 1.2. Resto de una lista Ejercicio 1.2 Definir la relación Ö ×ØÓ´ Ľ¸ ľµ que se verifique si ľ es la lista obtenida a partir de la lista Ľ suprimiendo el primer elemento. Por ejemplo, ¹ Ö ×ØÓ´ ¸ ¸ ℄¸Äµº Ä ¸ ℄ Obtener las respuestas a las siguientes preguntas: ¹ Ö ×ØÓ´ Ä℄¸ ¸ ℄µº ¹ Ö ×ØӴĸ ¸ ℄µº Solución: La definición de Ö ×ØÓ es Ö ×ØÓ´ Ä℄¸Äµº Las respuestas a las preguntas son ¹ Ö ×ØÓ´ Ä℄¸ ¸ ℄µº Ä ¸ ℄ ¹ Ö ×ØӴĸ ¸ ℄µº Ä ¸ ¸ ℄ 1.3. Construcción de listas Ejercicio 1.3 Definir la relación ÓÒ×´ ¸ Ľ¸ ľµ que se verifique si ľ es la lista obtenida añadiéndole a Ľ como primer elemento. Por ejemplo, ¹ ÓÒ×´ ¸ ¸ ℄¸Äµº Ä ¸ ¸ ℄ Obtener las respuestas correspondientes a las siguientes preguntas: ¹ ÓÒ×´ ¸ ¸ ℄¸ ¸ ¸ ℄µº ¹ ÓÒ×´ ¸Ä¸ ¸ ¸ ℄µº ¹ ÓÒ×´ ¸Ä¸ ¸ ¸ ℄µº ¹ ÓÒ×´ ¸Ä¸ ¸ ¸ ℄µº
  • 11. 1.4. Relación de pertenencia 11 Solución: La definición de ÓÒ× es ÓÒ×´ ¸Ä¸ Ä℄µº Las respuestas a las preguntas son ¹ ÓÒ×´ ¸ ¸ ℄¸ ¸ ¸ ℄µº ¹ ÓÒ×´ ¸Ä¸ ¸ ¸ ℄µº Ä ¸ ℄ ¹ ÓÒ×´ ¸Ä¸ ¸ ¸ ℄µº ÆÓ ¹ ÓÒ×´ ¸Ä¸ ¸ ¸ ℄µº Ä ¸ ℄ 1.4. Relación de pertenencia Ejercicio 1.4 Definir la relación Ô ÖØ Ò ´ ¸ ĵ que se verifique si es un elemento de la lista Ä. Por ejemplo, ¹ Ô ÖØ Ò ´ ¸ ¸ ¸ ℄µº × ¹ Ô ÖØ Ò ´ ¸ ¸ ¸ ℄µº ÆÓ Utilizar el programa para responder a las siguientes cuestiones: 1. ¿Es un elemento de ¸ ¸ ¸ ℄? 2. ¿Cuáles son los elementos de ¸ ¸ ℄? 3. ¿Cuáles son los elementos comunes de ¸ ¸ ℄, y ¸ ¸ ℄? Solución: La definición de Ô ÖØ Ò ´ ¸Äµ, por recursión en Ä, es Ô ÖØ Ò ´ ¸ ℄µº Ô ÖØ Ò ´ ¸ Ä℄µ ¹ Ô ÖØ Ò ´ ¸Äµº Las respuesta a las preguntas son 1. ¿Es un elemento de ¸ ¸ ¸ ℄?
  • 12. 12 Capítulo 1. Operaciones con listas ¹ Ô ÖØ Ò ´ ¸ ¸ ¸ ¸ ℄µº × 2. ¿Cuáles son los elementos de ¸ ¸ ℄? ¹ Ô ÖØ Ò ´ ¸ ¸ ¸ ℄µº ÆÓ 3. ¿Cuáles son los elementos comunes de ¸ ¸ ℄, y ¸ ¸ ℄? ¹ Ô ÖØ Ò ´ ¸ ¸ ¸ ℄µ¸ Ô ÖØ Ò ´ ¸ ¸ ¸ ℄µº ÆÓ Nota: La relación Ô ÖØ Ò se corresponde con la definida Ñ Ñ Ö. 1.5. Concatenación de listas Ejercicio 1.5 Definir la relación ÓÒ ´ Ľ¸ ľ¸ Ä¿µ que se verifique si Ä¿ es la lista obtenida escribiendo los elementos de ľ a continuación de los elementos de Ľ. Por ejemplo, ¹ ÓÒ ´ ¸ ℄¸ ¸ ¸ ℄¸Äµº Ä ¸ ¸ ¸ ¸ ℄ Utilizar el programa para responder a las siguientes cuestiones: 1. ¿Qué lista hay que añadirle al lista ¸ ℄ para obtener ¸ ¸ ¸ ℄? 2. ¿Qué listas hay que concatenar para obtener ¸ ℄? 3. ¿Pertenece a la lista ¸ ¸ ℄? 4. ¿Es ¸ ℄ una sublista de ¸ ¸ ¸ ℄? 5. ¿Es ¸ ℄ una sublista de ¸ ¸ ¸ ℄? 6. ¿Cuál es el último elemento de ¸ ¸ ¸ ℄? Solución: La definición de ÓÒ ´Ä½¸Ä¾¸Ä¿µ, por recursión en Ľ, es
  • 13. 1.5. Concatenación de listas 13 ÓÒ ´ ℄¸Ä¸Äµº ÓÒ ´ Ľ℄¸Ä¾¸ Ä¿℄µ ¹ ÓÒ ´Ä½¸Ä¾¸Ä¿µº Las repuestas a las cuestiones son 1. ¿Qué lista hay que añadirle al lista ¸ ℄ para obtener ¸ ¸ ¸ ℄? ¹ ÓÒ ´ ¸ ℄¸Ä¸ ¸ ¸ ¸ ℄µº Ä ¸ ℄ 2. ¿Qué listas hay que concatenar para obtener ¸ ℄? ¹ ÓÒ ´Ä½¸Ä¾¸ ¸ ℄µº Ľ ℄ ľ ¸ ℄ Ľ ℄ ľ ℄ Ľ ¸ ℄ ľ ℄ ÆÓ 3. ¿Pertenece a la lista ¸ ¸ ℄? ¹ ÓÒ ´Ä½¸ ľ℄¸ ¸ ¸ ℄µº Ľ ℄ ľ ℄ × ¹ ÓÒ ´ ¸ ℄¸ ¸ ¸ ℄µº × 4. ¿Es ¸ ℄ una sublista de ¸ ¸ ¸ ℄? ¹ ÓÒ ´ ¸ ¸ ℄¸ ¸ ¸ ¸ ℄µº × 5. ¿Es ¸ ℄ una sublista de ¸ ¸ ¸ ℄? ¹ ÓÒ ´ ¸ ¸ ℄¸ ¸ ¸ ¸ ℄µº ÆÓ 6. ¿Cuál es el último elemento de ¸ ¸ ¸ ℄? ¹ ÓÒ ´ ¸ ℄¸ ¸ ¸ ¸ ℄µº
  • 14. 14 Capítulo 1. Operaciones con listas Nota: La relación ÓÒ se corresponde con la definida ÔÔ Ò . 1.6. Lista inversa Ejercicio 1.6 Definir la relación ÒÚ Ö× ´·Ä½¸¹Ä¾µ que se verifique si ľ es la lista obtenida invirtiendo el orden de los elementos de la lista Ľ. Por ejemplo, ¹ ÒÚ Ö× ´ ¸ ¸ ℄¸Äµº Ä ¸ ¸ ℄ Solución: Vamos a presentar dos definiciones de ÒÚ Ö× ´Ä½¸Ä¾µ. Ambas son por recursión en Ľ. Primera solución: Usando la relación ÔÔ Ò , se define ÒÚ Ö× como ÒÚ Ö× ½´ ℄¸ ℄µº ÒÚ Ö× ½´ Ľ℄¸Ä¾µ ¹ ÒÚ Ö× ½´Ä½¸Ä¿µ¸ ÔÔ Ò ´Ä¿¸ ℄¸Ä¾µº Segunda solución: Usando un acumulador, se define ÒÚ Ö× como ÒÚ Ö× ¾´Ä½¸Ä¾µ ¹ ÒÚ Ö× ¾ ÙܴĽ¸Ä¾¸ ℄µº La relación ÒÚ Ö× ¾ ÙÜ´·Ä½¸¹Ä¾¸·Ä¿µ se verifica si ľ es la lista obtenida aña- diendo la inversa de Ľ a Ä¿ y se define por recursión en Ľ como sigue ÒÚ Ö× ¾ ÙÜ´ ℄¸Ä¾¸Ä¾µº ÒÚ Ö× ¾ ÙÜ´ Ľ℄¸Ä¾¸Ä¿µ ¹ ÒÚ Ö× ¾ ÙܴĽ¸Ä¾¸ Ä¿℄µº Nota: La relación ÒÚ Ö× se corresponde con la relación definida Ö Ú Ö× . 1.7. Palíndromo Ejercicio 1.7 Un palíndromo es una palabra que se lee igual en los dos sentidos, por ejemplo “oso”. Definir la relación Ô Ð Ò ÖÓÑÓ´·Äµ que se verifique si la lista Ä es un palíndromo. Por ejemplo,
  • 15. 1.8. Último elemento 15 ¹ Ô Ð Ò ÖÓÑÓ´ Ӹ׸Ó℄µº × ¹ Ô Ð Ò ÖÓÑÓ´ Ӹ׸ ℄µº ÆÓ Solución: La definición de Ô Ð Ò ÖÓÑÓ es Ô Ð Ò ÖÓÑӴĵ ¹ Ö Ú Ö× ´Ä¸Äµº 1.8. Último elemento Ejercicio 1.8 Definir la relación ÐØ ÑÓ´ ¸ ĵ que se verifique si es el último elemento de la lista Ä. Por ejemplo, ¹ ÐØ ÑÓ´ ¸ ¸ ¸ ¸ ℄µº ¹ ÐØ ÑÓ´ ¸Äµº Ä ℄ Ä ¸ ℄ Ä ¸ ¸ ℄ × Solución: Presentamos tres definiciones de ÐØ ÑÓ. Primera solución: Usando ÔÔ Ò se define ÐØ ÑÓ por ÐØ ÑÓ ½´ ¸Äµ ¹ ÔÔ Ò ´ ¸ ℄¸Äµº Segunda solución: Usando Ö Ú Ö× se define ÐØ ÑÓ por ÐØ ÑÓ ¾´ ¸Äµ ¹ Ö Ú Ö× ´Ä¸ ℄µº Tercera solución: Una definición de ÐØ ÑÓ´ ¸Äµ por recursión en Ä es ÐØ ÑÓ ¿´ ¸ ℄µº ÐØ ÑÓ ¿´ ¸ Ä℄µ ¹ ÐØ ÑÓ ¿´ ¸Äµº Nota: La relación ÐØ ÑÓ se corresponde con la relación definida Ð ×Ø.
  • 16. 16 Capítulo 1. Operaciones con listas 1.9. Penúltimo elemento Ejercicio 1.9 Definir lar relación Ô Ò ÐØ ÑÓ´ ¸ ĵ que se verifique si es el penúltimo ele- mento de la lista Ä. Por ejemplo, ¹ Ô Ò ÐØ ÑÓ´ ¸ ¸ ¸ ¸ ℄µº ¹ Ô Ò ÐØ ÑÓ´ ¸Äµº Ä ¸ ℄ Ä ¸ ¸ ℄ × Solución: Se presentan tres definiciones de Ô Ò ÐØ ÑÓ. Primera solución: Usando ÔÔ Ò se define Ô Ò ÐØ ÑÓ por Ô Ò ÐØ ÑÓ ½´ ¸Äµ ¹ ÔÔ Ò ´ ¸ ¸ ℄¸Äµº Segunda solución: Usando Ö Ú Ö× se define Ô Ò ÐØ ÑÓ por Ô Ò ÐØ ÑÓ ¾´ ¸Äµ ¹ Ö Ú Ö× ´Ä¸ ¸ ℄µº Tercera solución: Una definición de Ô Ò ÐØ ÑÓ´ ¸Äµ por recursión en Ä es Ô Ò ÐØ ÑÓ ¿´ ¸ ¸ ℄µº Ô Ò ÐØ ÑÓ ¿´ ¸ ¸ Ä℄µ ¹ Ô Ò ÐØ ÑÓ ¿´ ¸ Ä℄µº 1.10. Selección de un elemento Ejercicio 1.10 Definir la relación × Ð ÓÒ ´ ¸ Ľ¸ ľµ que se verifique si ľ es la lista obtenida eliminando una ocurrencia de en Ľ. Por ejemplo, ¹ × Ð ÓÒ ´ ¸ ¸ ¸ ℄¸Äµº Ä ¸ ℄ Ä ¸ ℄ ÆÓ ¹ × Ð ÓÒ ´ ¸ ¸ ¸ ℄¸Äµº ÆÓ ¹ × Ð ÓÒ ´ ¸Ä¸ ½¸¾℄µº
  • 17. 1.11. Inserción de un elemento en una lista 17 Ä ¸ ½¸ ¾℄ Ä ½¸ ¸ ¾℄ Ä ½¸ ¾¸ ℄ ÆÓ ¹ × Ð ÓÒ ´ ¸ ½¸¾¸¿℄¸ ½¸¿℄µº ¾ ÆÓ Solución: La definición de × Ð ÓÒ ´ ¸Ä½¸Ä¾µ, por recursión en Ľ, es × Ð ÓÒ ´ ¸ Ä℄¸Äµº × Ð ÓÒ ´ ¸ Ľ℄¸ ľ℄µ ¹ × Ð ÓÒ ´ ¸Ä½¸Ä¾µº Nota: La relación × Ð ÓÒ se corresponde con la definida × Ð Ø. 1.11. Inserción de un elemento en una lista Ejercicio 1.11 Definir la relación Ò× ÖØ ´ ¸ Ľ¸ ľµ que se verifique si ľ es una lista obtenida insertando en Ľ. Por ejemplo, ¹ Ò× ÖØ ´ ¸ ½¸¾℄¸Äµº Ä ¸ ½¸ ¾℄ Ä ½¸ ¸ ¾℄ Ä ½¸ ¾¸ ℄ ÆÓ Solución: La definición de Ò× ÖØ es Ò× ÖØ ´ ¸Ä½¸Ä¾µ ¹ × Ð Ø´ ¸Ä¾¸Ä½µº 1.12. Sublista Ejercicio 1.12 Definir la relación ×Ù Ð ×Ø ´ Ľ¸ ľµ que se verifique si Ľ es una sublista de ľ. Por ejemplo, ¹ ×Ù Ð ×Ø ´ ¸ ℄¸ ¸ ¸ ¸ ℄µº × ¹ ×Ù Ð ×Ø ´ ¸ ℄¸ ¸ ¸ ¸ ℄µº ÆÓ
  • 18. 18 Capítulo 1. Operaciones con listas ¹ ×Ù Ð ×Ø ´ ¸ ℄¸Äµº Ä ¸ ℄ Ä ¸ ¸ ℄ Ä ¸ ¸ ¸ ℄ × Solución: La definición de ×Ù Ð ×Ø es ×Ù Ð ×Ø ´Ä½¸Ä¾µ ¹ ÔÔ Ò ´ Ä¿¸Ä ¸Ä¾µ¸ ÔÔ Ò ´Ä½¸ Ä ¸Ä µº 1.13. Permutación Ejercicio 1.13 Definir la relación Ô ÖÑÙØ Ò´·Ä½¸ ľµ que se verifique si ľ es una per- mutación de Ľ. Por ejemplo, ¹ Ô ÖÑÙØ Ò´ ¸ ¸ ℄¸Äµº Ä ¸ ¸ ℄ Ä ¸ ¸ ℄ Ä ¸ ¸ ℄ Ä ¸ ¸ ℄ Ä ¸ ¸ ℄ Ä ¸ ¸ ℄ ÆÓ Solución: La definición de Ô ÖÑÙØ Ò´Ä½¸Ä¾µ, por recursión en Ľ es Ô ÖÑÙØ Ò´ ℄¸ ℄µº Ô ÖÑÙØ Ò´Ä½¸ ľ℄µ ¹ × Ð Ø´ ¸Ä½¸Ä¿µ¸ Ô ÖÑÙØ Ò´Ä¿¸Ä¾µº Nota: La relación Ô ÖÑÙØ Ò´Ä½¸Ä¾µ es equivalente a la definida Ô ÖÑÙØ Ø ÓҴľ¸Ä½µ. 1.14. Lista con todos sus elementos iguales Ejercicio 1.14 Definir la relación ØÓ Ó× Ù Ð ×´·Äµ que se verifique si todos los elementos de la lista Ä son iguales entre sí. Por ejemplo,
  • 19. 1.15. Paridad de la longitud de una lista 19 ¹ ØÓ Ó× Ù Ð ×´ ¸ ¸ ℄µº × ¹ ØÓ Ó× Ù Ð ×´ ¸ ¸ ℄µº ÆÓ ¹ ØÓ Ó× Ù Ð ×´ ℄µº × Solución: La definición de ØÓ Ó× Ù Ð × es ØÓ Ó× Ù Ð ×´ ℄µº ØÓ Ó× Ù Ð ×´ ℄µº ØÓ Ó× Ù Ð ×´ ¸ Ä℄µ ¹ ØÓ Ó× Ù Ð ×´ Ä℄µº 1.15. Paridad de la longitud de una lista Ejercicio 1.15 Definir la relación ÐÓÒ ØÙ Ô Ö´·Äµ que se verifique si la longitud de la lista Ä es par. Por ejemplo, ¹ ÐÓÒ ØÙ Ô Ö´ ¸ ℄µº × ¹ ÐÓÒ ØÙ Ô Ö´ ¸ ¸ ℄µº ÆÓ Solución: La definición de ÐÓÒ ØÙ Ô Ö, por recursión cruzada con la relación ÐÓÒ ØÙ ÑÔ Ö, es ÐÓÒ ØÙ Ô Ö´ ℄µº ÐÓÒ ØÙ Ô Ö´ Ä℄µ ¹ ÐÓÒ ØÙ ÑÔ Ö´Äµº La relación ÐÓÒ ØÙ ÑÔ Ö´·Äµ se verifica si la longitud de la lista Ä es impar. Por ejemplo, ¹ ÐÓÒ ØÙ ÑÔ Ö´ ¸ ℄µº ÆÓ ¹ ÐÓÒ ØÙ ÑÔ Ö´ ¸ ¸ ℄µº × La definición de ÐÓÒ ØÙ ÑÔ Ö es ÐÓÒ ØÙ ÑÔ Ö´ ℄µº ÐÓÒ ØÙ ÑÔ Ö´ Ä℄µ ¹ ÐÓÒ ØÙ Ô Ö´Äµº
  • 20. 20 Capítulo 1. Operaciones con listas 1.16. Rotación de un elemento Ejercicio 1.16 Definir la relación ÖÓØ ´ Ľ¸ ľµ que se verifique si ľ es la lista obtenida a partir de Ľ colocando su primer elemento al final. Por ejemplo, ¹ ÖÓØ ´ ¸ ¸ ¸ ℄¸Äµº Ä ¸ ¸ ¸ ℄ ¹ ÖÓØ ´Ä¸ ¸ ¸ ¸ ℄µº Ä ¸ ¸ ¸ ℄ Solución: La definición de ÖÓØ es ÖÓØ ´ Ľ℄¸Äµ ¹ ÔÔ Ò ´Ä½¸ ℄¸Äµº 1.17. Subconjunto Ejercicio 1.17 Definir la relación ×Ù ÓÒ ÙÒØÓ´·Ä½¸ ľµ que se verifique si ľ es un subcon- junto de Ľ. Por ejemplo, ¹ ×Ù ÓÒ ÙÒØÓ´ ¸ ¸ ¸ ℄¸ ¸ ℄µº × ¹ ×Ù ÓÒ ÙÒØÓ´ ¸ ¸ ¸ ℄¸ ¸ ℄µº ÆÓ ¹ ×Ù ÓÒ ÙÒØÓ´ ¸ ¸ ℄¸Äµº Ä ¸ ¸ ℄ Ä ¸ ℄ Ä ¸ ℄ Ä ℄ Ä ¸ ℄ Ä ℄ Ä ℄ Ä ℄ ÆÓ Solución: La definición de ×Ù ÓÒ ÙÒØӴĽ¸Ä¾µ, por recursión en Ľ, es ×Ù ÓÒ ÙÒØÓ´ ℄¸ ℄µº ×Ù ÓÒ ÙÒØÓ´ Ľ℄¸ ľ℄µ ¹ ×Ù ÓÒ ÙÒØӴĽ¸Ä¾µº ×Ù ÓÒ ÙÒØÓ´ Ľ℄¸Ä¾µ ¹ ×Ù ÓÒ ÙÒØӴĽ¸Ä¾µº
  • 21. Capítulo 2 Aritmética 2.1. Máximo de dos números Ejercicio 2.1 Definir la relación Ñ Ü ÑÓ´· ¸· ¸ µ que se verifique si es el máximo de e . Por ejemplo, ¹ Ñ Ü ÑÓ´¾¸¿¸ µº ¿ ¹ Ñ Ü ÑÓ´¿¸¾¸ µº ¿ Solución: La definición de Ñ Ü ÑÓ es Ñ Ü ÑÓ´ ¸ ¸ µ ¹ º Ñ Ü ÑÓ´ ¸ ¸ µ ¹ º Nota: En Prolog está definida la función Ñ Ü´ ¸ µ que devuelve el máximo de e . Por ejemplo, ¹ × Ñ Ü´ ¸½¼µº ½¼ 2.2. Factorial Ejercicio 2.2 Definir la relación ØÓÖ Ð´· ¸ µ que se verifique si es el factorial de . Por ejemplo, ¹ ØÓÖ Ð´¿¸ µº 21
  • 22. 22 Capítulo 2. Aritmética Solución: La definición de ØÓÖ Ð´ ¸ µ, por recursión sobre , es ØÓÖ Ð´½¸½µº ØÓÖ Ð´ ¸ µ ¹ ½¸ ½ × ¹½¸ ØÓÖ Ð´ ½¸ ½µ¸ × ¶ ½º 2.3. Sucesión de Fibonacci Ejercicio 2.3 La sucesión de Fibonacci es 0,1,1,2,3,5,8,13,21,. . . en la que cada término, salvo los dos primeros, es la suma de los dos anteriores. Definir la relación ÓÒ ´·Æ¸¹ µ que se verifique si es el Æ–ésimo término de la sucesión de Fibonacci. Por ejemplo, ¹ ÓÒ ´ ¸ µº Solución: La definición de ÓÒ ´Æ¸ µ, por inducción en Æ, es ÓÒ ´¼¸¼µº ÓÒ ´½¸½µº ÓÒ ´Æ¸ µ ¹ Æ ½¸ ƽ × Æ¹½¸ ÓÒ ´Æ½¸ ½µ¸ ƾ × Æ¹¾¸ ÓÒ ´Æ¾¸ ¾µ¸ × ½· ¾º 2.4. Máximo común divisor Ejercicio 2.4 Definir la relación Ñ ´· ¸· ¸ µ que se verifique si es el máximo común divisor de e . Por ejemplo, ¹ Ñ ´½¼¸½ ¸ µº Solución: La definición de Ñ es
  • 23. 2.5. Longitud de una lista 23 Ñ ´ ¸ ¸ µº Ñ ´ ¸ ¸ µ ¹ ¸ ½ × ¹ ¸ Ñ ´ ¸ ½¸ µº Ñ ´ ¸ ¸ µ ¹ ¸ Ñ ´ ¸ ¸ µº 2.5. Longitud de una lista Ejercicio 2.5 Definir la relación ÐÓÒ ØÙ ´ ĸ Ƶ que se verifique si Æ es la longitud de la lista Ä. Por ejemplo ¹ ÐÓÒ ØÙ ´ ¸ ¸ ℄¸Æµº Æ ¿ ¹ ÐÓÒ ØÙ ´Ä¸¿µº Ä ¸ ¸ ℄ Solución: La definición de ÐÓÒ ØÙ es ÐÓÒ ØÙ ´ ℄¸¼µº ÐÓÒ ØÙ ´ Ä℄¸Æµ ¹ ÐÓÒ ØÙ ´Ä¸Æ½µ¸ Æ × Æ½ · ½º Nota: La relación ÐÓÒ ØÙ se corresponde con la relación definida Ð Ò Ø . 2.6. Lista de números acotada por su longitud Ejercicio 2.6 Una lista está acotada si todos sus elementos son menores que su longitud. Definir la relación Ð ×Ø ÓØ ´·Äµ que se verifique si todos los elementos de la lista de números Ä son menores que la longitud de Ä. Por ejemplo, ¹ Ð ×Ø ÓØ ´ ½¸¼¸¾℄µº × ¹ Ð ×Ø ÓØ ´ ½¸¿¸¾℄µº ÆÓ Solución: La definición de Ð ×Ø ÓØ es
  • 24. 24 Capítulo 2. Aritmética Ð ×Ø ÓØ ´Äµ ¹ Ð Ò Ø ´Ä¸Æµ¸ Ð ×Ø ÓØ ÙܴĸƵº donde Ð ×Ø ÓØ ÙÜ´·Ä¸·Æµ se verifica si todos los elementos de la lista de nú- meros Ä son menores que Æ. Por ejemplo, ¹ Ð ×Ø ÓØ ÙÜ´ ½¸ ¸¿℄¸ µº × ¹ Ð ×Ø ÓØ ÙÜ´ ½¸ ¸¿℄¸ µº ÆÓ y está definida por Ð ×Ø ÓØ ÙÜ´ ℄¸ µº Ð ×Ø ÓØ ÙÜ´ Ä℄¸Æµ ¹ Ƹ Ð ×Ø ÓØ ÙܴĸƵº 2.7. Máximo de una lista de números Ejercicio 2.7 Definir la relación Ñ Ü Ð ×Ø ´·Ä¸ µ que se verifique si es el máximo de la lista de números Ä. Por ejemplo, ¹ Ñ Ü Ð ×Ø ´ ½¸¿¸ ¸ ℄¸ µº Solución: La definición de Ñ Ü Ð ×Ø es Ñ Ü Ð ×Ø ´ ℄¸ µº Ñ Ü Ð ×Ø ´ ½¸ ¾ Ä℄¸ µ ¹ ¿ × Ñ Ü´ ½¸ ¾µ¸ Ñ Ü Ð ×Ø ´ ¿ Ä℄¸ µº 2.8. Suma de los elementos de una lista Ejercicio 2.8 Definir la relación ×ÙÑ Ð ×Ø ´·Ä¸ µ que se verifique si es la suma de los elementos de la lista de números Ä. Por ejemplo,
  • 25. 2.9. Lista de números ordenada 25 ¹ ×ÙÑ Ð ×Ø ´ ½¸¿¸ ℄¸ µº Solución: La definición de ×ÙÑ Ð ×Ø es ×ÙÑ Ð ×Ø ´ ℄¸¼µº ×ÙÑ Ð ×Ø ´ Ä℄¸ µ ¹ ×ÙÑ Ð ×Ø ´Ä¸ ½µ¸ × · ½º Nota: La relación ×ÙÑ Ð ×Ø se corresponde con la relación definida ×ÙÑÐ ×Ø. 2.9. Lista de números ordenada Ejercicio 2.9 Definir la relación ÓÖ Ò ´·Äµ que se verifique si la lista de números Ä está ordenada de manera creciente. Por ejemplo, ¹ ÓÖ Ò ´ ½¸¿¸¿¸ ℄µº × ¹ ÓÖ Ò ´ ½¸¿¸ ¸¾℄µº ÆÓ Solución: La definición de ÓÖ Ò es ÓÖ Ò ´ ℄µº ÓÖ Ò ´ ¸ Ä℄µ ¹ ¸ ÓÖ Ò ´ Ä℄µº 2.10. Suma parcial de una lista Ejercicio 2.10 Definir la relación ×ÙÑ Ô Ö Ð´·Ä½¸· ¸ ľµ que se verifique si ľ es un subconjunto de Ľ tal que la suma de sus elementos es . Por ejemplo, ¹ ×ÙÑ Ô Ö Ð´ ½¸¾¸ ¸¿¸¾℄¸ ¸Äµº Ä ½¸ ¾¸ ¾℄ Ä ¾¸ ¿℄ Ä ℄ Ä ¿¸ ¾℄ ÆÓ
  • 26. 26 Capítulo 2. Aritmética Solución: Se presentan dos definiciones de ×ÙÑ Ô Ö Ð. Primera solución: Una definición, usando ×Ù ÓÒ ÙÒØÓ (p. 20) y ×ÙÑ Ð ×Ø (p. 25), es ×ÙÑ Ô Ö Ð ½´Ä½¸ ¸Ä¾µ ¹ ×Ù ÓÒ ÙÒØӴĽ¸Ä¾µ¸ ×ÙÑ Ð ×Ø ´Ä¾¸ µº Segunda solución: Una definición recursiva de ×ÙÑ Ô Ö Ð es ×ÙÑ Ô Ö Ð ¾´ ℄¸¼¸ ℄µº ×ÙÑ Ô Ö Ð ¾´ Ľ℄¸ ¸ ľ℄µ ¹ ¸ × ¹ ¸ ×ÙÑ Ô Ö Ð ¾´Ä½¸ ¸Ä¾µº ×ÙÑ Ô Ö Ð ¾´ Ľ℄¸ ¸Ä¾µ ¹ ×ÙÑ Ô Ö Ð ¾´Ä½¸ ¸Ä¾µº 2.11. Lista de Æ veces el número Æ Ejercicio 2.11 Definir la relación Ð ×Ø ´·Æ¸¹Äµ que se verifique si Ä es la lista de longitud Æ cuyos elementos son Æ. Por ejemplo, ¹ Ð ×Ø ´¿¸Äµº Ä ¿¸ ¿¸ ¿℄ Solución: La definición de Ð ×Ø es Ð ×Ø ´Æ¸Äµ ¹ Ð ×Ø ÙܴƸƸĵº donde Ð ×Ø ÙÜ´·Æ¸·Å¸¹Äµ se verifica si Ä es la lista de longitud Å cuyos elementos son Æ. Por ejemplo, ¹ Ð ×Ø ÙÜ´ ¸ ¸Äµº Ä ¸ ¸ ¸ ℄ y se define por Ð ×Ø ÙÜ´ ¸¼¸ ℄µº Ð ×Ø ÙܴƸŸ Æ Ä℄µ ¹ Å ¼¸ Ž × Å¹½¸ Ð ×Ø ÙܴƸŽ¸Äµº
  • 27. 2.12. Generación de lista de números 27 2.12. Generación de lista de números Ejercicio 2.12 Definir la relación Ð ×Ø Ò Ñ ÖÓ×´·Æ¸·Å¸¹Äµ que se verifica si L es la lista de los números desde N hasta M, ambos inclusive. Por ejemplo, ¹ Ð ×Ø Ò Ñ ÖÓ×´¿¸ ¸Äµº Ä ¿¸ ¸ ℄ ¹ Ð ×Ø Ò Ñ ÖÓ×´¿¸¾¸Äµº ÆÓ Solución: La definición de Ð ×Ø Ò Ñ ÖÓ× es Ð ×Ø Ò Ñ ÖÓ״ƸƸ Æ℄µº Ð ×Ø Ò Ñ ÖÓ״ƸŸ Æ Ä℄µ ¹ Æ Å¸ ƽ × Æ·½¸ Ð ×Ø Ò Ñ ÖÓ״ƽ¸Å¸Äµº Nota: La relación Ð ×Ø Ò Ñ ÖÓ× se corresponde con la definida ÒÙÑÐ ×Ø. 2.13. Intervalo entero Ejercicio 2.13 Definir la relación ÒØÖ ´·Æ½¸·Æ¾¸ µ que se verifique si es un número en- tero tal que ƽ ≤ ≤ ƾ. Por ejemplo, ¹ ÒØÖ ´¾¸ ¸ µº ¾ ¿ ÆÓ Solución: La definición de ÒØÖ es ÒØÖ ´Æ½¸Æ¾¸Æ½µ ¹ ƽ ƾº ÒØÖ ´Æ½¸Æ¾¸ µ ¹ ƽ ƾ¸ Æ¿ × Æ½·½¸ ÒØÖ ´Æ¿¸Æ¾¸ µº Nota: La relación ÒØÖ se corresponde con la definida ØÛ Ò.
  • 28. 28 Capítulo 2. Aritmética 2.14. K–ésimo elemento Ejercicio 2.14 Definir la relación Ð Ñ ÒØÓ Ò´·Ã¸ ĸ µ que se verifique si es el Öésimo elemento de la lista Ä (se empieza a numerar en 1). Por ejemplo, ¹ Ð Ñ ÒØÓ Ò´¾¸ ¸ ¸ ¸ ℄¸ µº ¹ Ð Ñ ÒØÓ Ò´¾¸Ä¸ µº Ä ¸ ℄ Solución: La definición de Ð Ñ ÒØÓ Ò es Ð Ñ ÒØÓ Ò´½¸ ℄¸ µº Ð Ñ ÒØÓ Ò´Ã¸ Ä℄¸ µ ¹ à ½¸ ý × Ã¹½¸ Ð Ñ ÒØÓ Ò´Ã½¸Ä¸ µº Nota: La relación Ð Ñ ÒØÓ Ò se corresponde con la relación definida ÒØ ½. 2.15. Multiplicación de las ocurrencias de los elementos de una lista Ejercicio 2.15 Definir la relación ÑÙÐØ ÔÐ ´·Ä½¸·Æ¸¹Ä¾µ que se verifica si ľ es la lista obtenida repitiendo Æ veces los elementos de la lista Ľ. Por ejemplo, ¹ ÑÙÐØ ÔÐ ´ ¸ ¸ ℄¸¿¸Äµº Ä ¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ℄ Solución: La definición de ÑÙÐØ ÔÐ es ÑÙÐØ ÔÐ ´Ä½¸Æ¸Ä¾µ ¹ ÑÙÐØ ÔÐ ÙܴĽ¸Æ¸Æ¸Ä¾µº donde ÑÙÐØ ÔÐ ÙÜ´·Ä½¸·Ã¸·Æ¸¹Ä¾µ se verifica si ľ es la lista obtenida repitien- do à veces el primer elemento de Ľ y Æ veces los restantes elementos. Por ejemplo, ¹ ÑÙÐØ ÔÐ ÙÜ´ ¸ ¸ ℄¸¾¸¿¸Äµº Ä ¸ ¸ ¸ ¸ ¸ ¸ ¸ ℄ Su definición es
  • 29. 2.15. Multiplicación de las ocurrencias de los elementos de una lista 29 ÑÙÐØ ÔÐ ÙÜ´ ℄¸ ¸ ¸ ℄µº ÑÙÐØ ÔÐ ÙÜ´ Ľ℄¸¼¸Æ¸Ä¾µ ¹ ÑÙÐØ ÔÐ ÙܴĽ¸Æ¸Æ¸Ä¾µº ÑÙÐØ ÔÐ ÙÜ´ Ľ℄¸Ã¸Æ¸ ľ℄µ ¹ à ¼¸ ý × Ã¹½¸ ÑÙÐØ ÔÐ ÙÜ´ Ľ℄¸Ã½¸Æ¸Ä¾µº
  • 30. 30 Capítulo 2. Aritmética
  • 31. Capítulo 3 Estructuras 3.1. Segmentos como objetos estructurados Ejercicio 3.1 Supongamos que representamos los puntos del plano mediante términos de la for- ma ÔÙÒØÓ´ ¸ µ donde e son números, y los segmentos del plano mediante términos de la forma × Ñ ÒØӴȽ¸È¾µ donde Ƚ y Ⱦ son los puntos extremos del segmento. Definir las relaciones Ú ÖØ Ð´ ˵ y ÓÖ ÞÓÒØ Ð´ ˵ que se verifiquen si el segmento Ë es vertical (resp. horizontal). Por ejemplo, ¹ Ú ÖØ Ð´× Ñ ÒØÓ´ÔÙÒØÓ´½¸¾µ¸ÔÙÒØÓ´½¸¿µµµº × ¹ Ú ÖØ Ð´× Ñ ÒØÓ´ÔÙÒØÓ´½¸¾µ¸ÔÙÒØÓ´ ¸¾µµµº ÆÓ ¹ Ú ÖØ Ð´× Ñ ÒØÓ´ÔÙÒØÓ´½¸¾µ¸ÔÙÒØÓ´½¸¿µµµº ÆÓ ¹ Ú ÖØ Ð´× Ñ ÒØÓ´ÔÙÒØÓ´½¸¾µ¸ÔÙÒØÓ´ ¸¾µµµº × Usar el programa para responder a las siguientes cuestiones: 1. ¿Es vertical el segmento que une los puntos ´½¸½µ y ´½¸¾µ? 2. ¿Es vertical el segmento que une los puntos ´½¸½µ y ´¾¸¾µ? 3. ¿Hay algún tal que el segmento que une los puntos ´½¸½µ y ´¾¸ µ sea vertical? 4. ¿Hay algún tal que el segmento que une los puntos ´½¸¾µ y ´ ¸¿µ sea vertical? 5. ¿Hay algún tal que el segmento que une los puntos ´½¸½µ y ´¾¸ µ sea horizontal? 31
  • 32. 32 Capítulo 3. Estructuras 6. ¿Para qué puntos el segmento que comienza en ´¾¸¿µ es vertical? 7. ¿Hay algún segmento que sea horizontal y vertical? Solución: Las definiciones de Ú ÖØ Ð y ÓÖ ÞÓÒØ Ð son Ú ÖØ Ð´× ´ÔÙÒØÓ´ ¸ µ¸ÔÙÒØÓ´ ¸ ½µµµº ÓÖ ÞÓÒØ Ð´× ´ÔÙÒØÓ´ ¸ µ¸ÔÙÒØÓ´ ½¸ µµµº Las respuestas a las preguntas son 1. ¿Es vertical el segmento que une los puntos ´½¸½µ y ´½¸¾µ? ¹ Ú ÖØ Ð´× ´ÔÙÒØÓ´½¸½µ¸ÔÙÒØÓ´½¸¾µµµº × 2. ¿Es vertical el segmento que une los puntos ´½¸½µ y ´¾¸¾µ? ¹ Ú ÖØ Ð´× ´ÔÙÒØÓ´½¸½µ¸ÔÙÒØÓ´¾¸¾µµµº ÆÓ 3. ¿Hay algún tal que el segmento que une los puntos ´½¸½µ y ´¾¸ µ sea vertical? ¹ Ú ÖØ Ð´× ´ÔÙÒØÓ´½¸½µ¸ÔÙÒØÓ´¾¸ µµµº ÆÓ 4. ¿Hay algún tal que el segmento que une los puntos ´½¸¾µ y ´ ¸¿µ sea vertical? ¹ Ú ÖØ Ð´× ´ÔÙÒØÓ´½¸¾µ¸ÔÙÒØÓ´ ¸¿µµµº ½ ÆÓ 5. ¿Hay algún tal que el segmento que une los puntos ´½¸½µ y ´¾¸ µ sea horizontal? ¹ ÓÖ ÞÓÒØ Ð´× ´ÔÙÒØÓ´½¸½µ¸ÔÙÒØÓ´¾¸ µµµº ½ ÆÓ 6. ¿Para qué puntos el segmento que comienza en ´¾¸¿µ es vertical? ¹ Ú ÖØ Ð´× ´ÔÙÒØÓ´¾¸¿µ¸Èµµº È ÔÙÒØÓ´¾¸ µ ÆÓ 7. ¿Hay algún segmento que sea horizontal y vertical?
  • 33. 3.2. Base de datos familiar 33 ¹ Ú ÖØ Ð´Ëµ¸ ÓÖ ÞÓÒØ Ð´Ëµº Ë × ´ÔÙÒØÓ´ ¸ µ¸ ÔÙÒØÓ´ ¸ µµ ÆÓ ¹ Ú ÖØ Ð´ µ¸ ÓÖ ÞÓÒØ Ð´ µº × 3.2. Base de datos familiar Ejercicio 3.2 En este ejercicio vamos a trabajar con una base de datos familiar. 1. Representar la información relativa a las siguientes familias: En la primera familia, • el padre es Tomás García Pérez, nacido el 7 de Mayo de 1960, trabaja de profesor y gana 60 euros diarios; • la madre es Ana López Ruiz, nacida el 10 de marzo de 1962, trabaja de médica y gana 90 euros diarios; • el hijo es Juan García López, nacido el 5 de Enero de 1980, estudiante; • la hija es María García López, nacida el 12 de Abril de 1992, estudiante. En la segunda familia, • el padre es José Pérez Ruiz, nacido el 6 de Marzo de 1963, trabaja de pintor y gana 120 euros diarios; • la madre es Luisa Gálvez Pérez, nacida el 12 de Mayo de 1964, trabaja de médica y gana 90 euros diarios; • un hijo es Juan Luis Pérez Pérez, nacido el 5 de Febrero de 1990, estudiante; • una hija es María José Pérez Pérez, nacida el 12 de Junio de 1992, estudiante; • otro hijo es José María Pérez Pérez, nacido el 12 de Julio de 1994, estudiante. 2. Realizar las siguientes consultas: ¿existe familia sin hijos? ¿existe familia con un hijo? ¿existe familia con dos hijos? ¿existe familia con tres hijos? ¿existe familia con cuatro hijos.? 3. Buscar los nombres de los padres de familia con tres hijos. 4. Definir la relación × Ó´ µ que se verifique si es un hombre casado.
  • 34. 34 Capítulo 3. Estructuras 5. Preguntar por los hombres casados. 6. Definir la relación × ´ µ que se verifique si es una mujer casada. 7. Preguntar por las mujeres casadas. 8. Determinar el nombre de todas las mujeres casadas que trabajan. 9. Definir la relación Ó´ µ que se verifique si figura en alguna lista de hijos. 10. Preguntar por los hijos. 11. Definir la relación Ô Ö×ÓÒ ´ µ que se verifique si es una persona existente en la base de datos. 12. Preguntar por los nombres y apellidos de todas las personas existentes en la base de datos. 13. Determinar todos los estudiantes nacidos antes de 1993. 14. Definir la relación Ò Ñ ÒØÓ´ ¸ µ de forma que si es una persona, enton- ces es su fecha de nacimiento. 15. Buscar todos los hijos nacidos en 1992. 16. Definir la relación ×Ù Ð Ó´ ¸ µ que se verifique si el sueldo de la persona es . 17. Buscar todas las personas nacidas antes de 1964 cuyo sueldo sea superior a 72 euros dia- rios. 18. Definir la relación ØÓØ Ð´Ä¸ µ de forma que si Ä es una lista de personas, entonces es la suma de los sueldos de las personas de la lista Ä. 19. Calcular los ingresos totales de cada familia. Solución: Solución del apartado 1: La representación de la información sobre las dos familias es Ñ Ð ´Ô Ö×ÓÒ ´ ØÓÑ ×¸ Ö ¸Ô Ö Þ℄¸ ´ ¸Ñ ÝÓ¸½ ¼µ¸ ØÖ Ó´ÔÖÓ ×ÓÖ¸ ¼µµ¸ Ô Ö×ÓÒ ´ Ò ¸ÐÓÔ Þ¸ÖÙ Þ℄¸ ´½¼¸Ñ ÖÞÓ¸½ ¾µ¸ ØÖ Ó´Ñ ¸ ¼µµ¸ Ô Ö×ÓÒ ´ Ù Ò¸ Ö ¸ÐÓÔ Þ℄¸ ´ ¸ Ò ÖÓ¸½ ¼µ¸ ×ØÙ ÒØ µ¸
  • 35. 3.2. Base de datos familiar 35 Ô Ö×ÓÒ ´ Ñ Ö ¸ Ö ¸ÐÓÔ Þ℄¸ ´½¾¸ Ö Ð¸½ ¾µ¸ ×ØÙ ÒØ µ ℄µº Ñ Ð ´Ô Ö×ÓÒ ´ Ó× ¸Ô Ö Þ¸ÖÙ Þ℄¸ ´ ¸Ñ ÖÞÓ¸½ ¿µ¸ ØÖ Ó´Ô ÒØÓÖ¸½¾¼µµ¸ Ô Ö×ÓÒ ´ ÐÙ × ¸ ÐÚ Þ¸Ô Ö Þ℄¸ ´½¾¸Ñ ÝÓ¸½ µ¸ ØÖ Ó´Ñ ¸ ¼µµ¸ Ô Ö×ÓÒ ´ Ù Ò ÐÙ ×¸Ô Ö Þ¸Ô Ö Þ℄¸ ´ ¸ Ö ÖÓ¸½ ¼µ¸ ×ØÙ ÒØ µ¸ Ô Ö×ÓÒ ´ Ñ Ö Ó× ¸Ô Ö Þ¸Ô Ö Þ℄¸ ´½¾¸ ÙÒ Ó¸½ ¾µ¸ ×ØÙ ÒØ µ¸ Ô Ö×ÓÒ ´ Ó× Ñ Ö ¸Ô Ö Þ¸Ô Ö Þ℄¸ ´½¾¸ ÙÐ Ó¸½ µ¸ ×ØÙ ÒØ µ ℄µº Solución del apartado 2: Las consultas, y sus respuestas son, ¹ Ñ Ð ´ ¸ ¸ ℄µº ÆÓ ¹ Ñ Ð ´ ¸ ¸ ℄µº ÆÓ ¹ Ñ Ð ´ ¸ ¸ ¸ ℄µº × ¹ Ñ Ð ´ ¸ ¸ ¸ ¸ ℄µº × ¹ Ñ Ð ´ ¸ ¸ ¸ ¸ ¸ ℄µº ÆÓ Solución del apartado 3: ¹ Ñ Ð ´Ô Ö×ÓÒ ´Æȸ ¸ µ¸ ¸ ¸ ¸ ℄µº ÆÈ Ó× ¸ Ô Ö Þ¸ ÖÙ Þ℄ ÆÓ Solución del apartado 4: × Ó´ µ ¹ Ñ Ð ´ ¸ ¸ µº
  • 36. 36 Capítulo 3. Estructuras Solución del apartado 5: ¹ × Ó´ µº Ô Ö×ÓÒ ´ ØÓÑ ×¸ Ö ¸ Ô Ö Þ℄¸ ´ ¸ Ñ ÝÓ¸ ½ ¼µ¸ ØÖ Ó´ÔÖÓ ×ÓÖ¸ ¼µµ Ô Ö×ÓÒ ´ Ó× ¸ Ô Ö Þ¸ ÖÙ Þ℄¸ ´ ¸ Ñ ÖÞÓ¸ ½ ¿µ¸ ØÖ Ó´Ô ÒØÓÖ¸ ½¾¼µµ ÆÓ Solución del apartado 6: × ´ µ ¹ Ñ Ð ´ ¸ ¸ µº Solución del apartado 7: ¹ × ´ µº Ô Ö×ÓÒ ´ Ò ¸ ÐÓÔ Þ¸ ÖÙ Þ℄¸ ´½¼¸ Ñ ÖÞÓ¸ ½ ¾µ¸ ØÖ Ó´Ñ ¸ ¼µµ Ô Ö×ÓÒ ´ ÐÙ × ¸ ÐÚ Þ¸ Ô Ö Þ℄¸ ´½¾¸ Ñ ÝÓ¸ ½ µ¸ ØÖ Ó´Ñ ¸ ¼µµ ÆÓ Solución del apartado 8: ¹ × ´Ô Ö×ÓÒ ´ Ƹ ¸ ℄¸ ¸ØÖ Ó´ ¸ µµµº Æ Ò Æ ÐÙ × ÆÓ Solución del apartado 9: Ó´ µ ¹ Ñ Ð ´ ¸ ¸Äµ¸ Ñ Ñ Ö´ ¸Äµº Solución del apartado 10:
  • 37. 3.2. Base de datos familiar 37 ¹ Ó´ µº Ô Ö×ÓÒ ´ Ù Ò¸ Ö ¸ÐÓÔ Þ℄¸ ´ ¸ Ò ÖÓ¸½ ¼µ¸ ×ØÙ ÒØ µ Ô Ö×ÓÒ ´ Ñ Ö ¸ Ö ¸ÐÓÔ Þ℄¸ ´½¾¸ Ö Ð¸½ ¾µ¸ ×ØÙ ÒØ µ Ô Ö×ÓÒ ´ Ù Ò ÐÙ ×¸Ô Ö Þ¸Ô Ö Þ℄¸ ´ ¸ Ö ÖÓ¸½ ¼µ¸ ×ØÙ ÒØ µ Ô Ö×ÓÒ ´ Ñ Ö Ó× ¸Ô Ö Þ¸Ô Ö Þ℄¸ ´½¾¸ ÙÒ Ó¸½ ¾µ¸ ×ØÙ ÒØ µ Ô Ö×ÓÒ ´ Ó× Ñ Ö ¸Ô Ö Þ¸Ô Ö Þ℄¸ ´½¾¸ ÙÐ Ó¸½ µ¸ ×ØÙ ÒØ µ ÆÓ Solución del apartado 11: Ô Ö×ÓÒ ´ µ ¹ × Ó´ µ × ´ µ Ó´ µº Solución del apartado 12: ¹ Ô Ö×ÓÒ ´Ô Ö×ÓÒ ´ ¸ ¸ µµº ØÓÑ ×¸ Ö ¸ Ô Ö Þ℄ Ó× ¸ Ô Ö Þ¸ ÖÙ Þ℄ Ò ¸ ÐÓÔ Þ¸ ÖÙ Þ℄ ÐÙ × ¸ ÐÚ Þ¸ Ô Ö Þ℄ Ù Ò¸ Ö ¸ ÐÓÔ Þ℄ Ñ Ö ¸ Ö ¸ ÐÓÔ Þ℄ Ù Ò Ð٠׸ Ô Ö Þ¸ Ô Ö Þ℄ Ñ Ö Ó× ¸ Ô Ö Þ¸ Ô Ö Þ℄ Ó× Ñ Ö ¸ Ô Ö Þ¸ Ô Ö Þ℄ ÆÓ Solución del apartado 13: ¹ Ô Ö×ÓÒ ´Ô Ö×ÓÒ ´ ¸ ´ ¸ ¸ Óµ¸ ×ØÙ ÒØ µµ¸ Ó ½ ¿º Ù Ò¸ Ö ¸ ÐÓÔ Þ℄ Ó ½ ¼ Ñ Ö ¸ Ö ¸ ÐÓÔ Þ℄ Ó ½ ¾ Ù Ò Ð٠׸ Ô Ö Þ¸ Ô Ö Þ℄ Ó ½ ¼ Ñ Ö Ó× ¸ Ô Ö Þ¸ Ô Ö Þ℄ Ó ½ ¾ ÆÓ Solución del apartado 14:
  • 38. 38 Capítulo 3. Estructuras Ò Ñ ÒØÓ´Ô Ö×ÓÒ ´ ¸ ¸ µ¸ µº Solución del apartado 15: ¹ Ó´ µ¸ Ò Ñ ÒØÓ´ ¸ ´ ¸ ¸½ ¾µµº Ô Ö×ÓÒ ´ Ñ Ö Ó× ¸Ô Ö Þ¸Ô Ö Þ℄¸ ´½¾¸ ÙÒ Ó¸½ ¾µ¸ ×ØÙ ÒØ µ ÆÓ Solución del apartado 16: ×Ù Ð Ó´Ô Ö×ÓÒ ´ ¸ ¸ØÖ Ó´ ¸ µµ¸ µº ×Ù Ð Ó´Ô Ö×ÓÒ ´ ¸ ¸ ×ØÙ ÒØ µ¸¼µº Solución del apartado 17: ¹ Ô Ö×ÓÒ ´ µ¸ Ò Ñ ÒØÓ´ ¸ ´ ¸ ¸ Óµµ¸ Ó ½ ¸ ×Ù Ð Ó´ ¸ µ¸ ¾º Ô Ö×ÓÒ ´ Ó× ¸ Ô Ö Þ¸ ÖÙ Þ℄¸ ´ ¸ Ñ ÖÞÓ¸ ½ ¿µ¸ ØÖ Ó´Ô ÒØÓÖ¸ ½¾¼µµ Ó ½ ¿ ½¾¼ Ô Ö×ÓÒ ´ Ò ¸ ÐÓÔ Þ¸ ÖÙ Þ℄¸ ´½¼¸ Ñ ÖÞÓ¸ ½ ¾µ¸ ØÖ Ó´Ñ ¸ ¼µµ Ó ½ ¾ ¼ ÆÓ Solución del apartado 18: ØÓØ Ð´ ℄¸¼µº ØÓØ Ð´ Ä℄¸ µ ¹ ×Ù Ð Ó´ ¸ ½µ¸ ØÓØ Ð´Ä¸ ¾µ¸ × ½ · ¾º Solución del apartado 19:
  • 39. 3.3. Autómata no–determinista 39 ¹ Ñ Ð ´ ¸ ¸ µ¸ØÓØ Ð´ ¸ ℄¸ÌÓØ Ðµº Ô Ö×ÓÒ ´ ØÓÑ ×¸ Ö ¸Ô Ö Þ℄¸ ´ ¸Ñ ÝÓ¸½ ¼µ¸ ØÖ Ó´ÔÖÓ ×ÓÖ¸ ¼µµ Ô Ö×ÓÒ ´ Ò ¸ÐÓÔ Þ¸ÖÙ Þ℄¸ ´½¼¸Ñ ÖÞÓ¸½ ¾µ¸ ØÖ Ó´Ñ ¸ ¼µµ Ô Ö×ÓÒ ´ Ù Ò¸ Ö ¸ÐÓÔ Þ℄¸ ´ ¸ Ò ÖÓ¸½ ¼µ¸ ×ØÙ ÒØ µ¸ Ô Ö×ÓÒ ´ Ñ Ö ¸ Ö ¸ÐÓÔ Þ℄¸ ´½¾¸ Ö Ð¸½ ¾µ¸ ×ØÙ ÒØ µ℄ ÌÓØ Ð ½ ¼ Ô Ö×ÓÒ ´ Ó× ¸Ô Ö Þ¸ÖÙ Þ℄¸ ´ ¸Ñ ÖÞÓ¸½ ¿µ¸ ØÖ Ó´Ô ÒØÓÖ¸½¾¼µµ Ô Ö×ÓÒ ´ ÐÙ × ¸ ÐÚ Þ¸Ô Ö Þ℄¸ ´½¾¸Ñ ÝÓ¸½ µ¸ ØÖ Ó´Ñ ¸ ¼µµ Ô Ö×ÓÒ ´ Ù Ò ÐÙ ×¸Ô Ö Þ¸Ô Ö Þ℄¸ ´ ¸ Ö ÖÓ¸½ ¼µ¸ ×ØÙ ÒØ µ¸ Ô Ö×ÓÒ ´ Ñ Ö Ó× ¸Ô Ö Þ¸Ô Ö Þ℄¸ ´½¾¸ ÙÒ Ó¸½ ¾µ¸ ×ØÙ ÒØ µ Ô Ö×ÓÒ ´ Ó× Ñ Ö ¸Ô Ö Þ¸Ô Ö Þ℄¸ ´½¾¸ ÙÐ Ó¸½ µ¸ ×ØÙ ÒØ µ℄ ÌÓØ Ð ¾½¼ ÆÓ 3.3. Autómata no–determinista Ejercicio 3.3 Consideremos el autómata representado por
  • 40. 40 Capítulo 3. Estructuras b e1 a a e2 b e3e4 b siendo ¿ el estado final. 1. Representar el autómata utilizando las siguientes relaciones Ò Ð´ µ que se verifica si es el estado final. ØÖ Ò×´ ½¸ ¸ ¾µ que se verifica si se puede pasar del estado ½ al estado ¾ usando la letra . ÒÙÐÓ´ ½¸ ¾µ que se verifica si se puede pasar del estado ½ al estado ¾ mediante un movimiento nulo. 2. Definir la relación ÔØ ´ ¸Äµ que se verifique si el autómata, a partir del estado , acepta la lista Ä. Por ejemplo, ¹ ÔØ ´ ½¸ ¸ ¸ ¸ ℄µº × ¹ ÔØ ´ ¾¸ ¸ ¸ ¸ ℄µº ÆÓ 3. Determinar si el autómata acepta la lista ¸ ¸ ¸ ℄. 4. Determinar los estados a partir de los cuales el autómata acepta la lista ¸ ℄. 5. Determinar las palabras de longitud 3 aceptadas por el autómata a partir del estado ½. 6. Definir la relación ÔØ ÓØ ½´ ¸Ä¸Æµ que se verifique si el autómata, a partir del estado , acepta la lista Ä y la longitud de Ä es Æ.
  • 41. 3.3. Autómata no–determinista 41 7. Buscar las cadenas aceptadas a partir de ½ con longitud 3. 8. Definir la relación ÔØ ÓØ ¾´ ¸Ä¸Æµ que se verifique si el autómata, a partir del estado , acepta la lista Ä y la longitud de Ä es menor o igual que Æ. 9. Buscar las cadenas aceptadas a partir de ½ con longitud menor o igual 3. Solución: Solución del apartado 1: Ò Ð´ ¿µº ØÖ Ò×´ ½¸ ¸ ½µº ØÖ Ò×´ ½¸ ¸ ¾µº ØÖ Ò×´ ½¸ ¸ ½µº ØÖ Ò×´ ¾¸ ¸ ¿µº ØÖ Ò×´ ¿¸ ¸ µº ÒÙÐÓ´ ¾¸ µº ÒÙÐÓ´ ¿¸ ½µº Solución del apartado 2: ÔØ ´ ¸ ℄µ ¹ Ò Ð´ µº ÔØ ´ ¸ Ä℄µ ¹ ØÖ Ò×´ ¸ ¸ ½µ¸ ÔØ ´ ½¸Äµº ÔØ ´ ¸Äµ ¹ ÒÙÐÓ´ ¸ ½µ¸ ÔØ ´ ½¸Äµº Solución del apartado 3: ¹ ÔØ ´ ½¸ ¸ ¸ ¸ ℄µº × Solución del apartado 4: ¹ ÔØ ´ ¸ ¸ ℄µº ½ ¿ ÆÓ Solución del apartado 5:
  • 42. 42 Capítulo 3. Estructuras ¹ ÔØ ´ ½¸ ¸ ¸ ℄µº ÆÓ Solución del apartado 6: Presentamos dos definiciones. La primera usando ÔØ ÔØ ÓØ ½ ´ ¸Ä¸Æµ ¹ Ð Ò Ø ´Ä¸Æµ¸ ÔØ ´ ¸Äµº La segunda definición es una variación de la definición de acepta: ÔØ ÓØ ½ ´ ¸ ℄¸¼µ ¹ Ò Ð´ µº ÔØ ÓØ ½ ´ ¸ Ä℄¸Æµ ¹ Æ ¼¸ ØÖ Ò×´ ¸ ¸ ½µ¸ Å × Æ ¹ ½¸ ÔØ ÓØ ½ ´ ½¸Ä¸Åµº ÔØ ÓØ ½ ´ ¸Ä¸Æµ ¹ ÒÙÐÓ´ ¸ ½µ¸ ÔØ ÓØ ½ ´ ½¸Ä¸Æµº Nota: La primera definición es más simple y eficiente que la segunda como se ob- serva en el siguiente ejemplo ¹ Ø Ñ ´ ÔØ ÓØ ½ ´ ¾¸ ĸ ¼¼¼µµº ± ½¼¸¼¾ Ò Ö Ò ×¸ ¼º¼½ ÈÍ Ò ¼º¼½ × ÓÒ × ´½¾ ± È͸ ½¼¼¾ ¼¼ Ä Ô×µ ¹ Ø Ñ ´ ÔØ ÓØ ½ ´ ¾¸ ĸ ¼¼¼µµº ± ¾¼¸¼¿ Ò Ö Ò ×¸ ¼º¼¾ ÈÍ Ò ¼º¼¾ × ÓÒ × ´½¾ ± È͸ ½¼¼½ ¼ Ä Ô×µ A partir de ahora, adoptaremos la definición ÔØ ÓØ ½ ÔØ ÓØ ½´ ¸Ä¸Åµ ¹ ÔØ ÓØ ½ ´ ¸Ä¸Åµº Solución del apartado 7:
  • 43. 3.3. Autómata no–determinista 43 ¹ ÔØ ÓØ ½´ ½¸Ä¸¿µº Ä ¸ ¸ ℄ Ä ¸ ¸ ℄ ÆÓ Solución del apartado 8: Presentamos dos definiciones. La primera usando ÔØ ÔØ ÓØ ¾ ´ ¸Ä¸Æµ ¹ ØÛ Ò´¼¸Æ¸Åµ¸ Ð Ò Ø ´Ä¸Åµ¸ ÔØ ´ ¸Äµº y la segunda modificando ÔØ ÔØ ÓØ ¾ ´ ¸ ℄¸ Ƶ ¹ Ò Ð´ µº ÔØ ÓØ ¾ ´ ¸ Ä℄¸Æµ ¹ Æ ¼¸ ØÖ Ò×´ ¸ ¸ ½µ¸ Å × Æ¹½¸ ÔØ ÓØ ¾ ´ ½¸Ä¸Åµº ÔØ ÓØ ¾ ´ ¸Ä¸Æµ ¹ Æ ¼¸ ÒÙÐÓ´ ¸ ½µ¸ ÔØ ÓØ ¾ ´ ½¸Ä¸Æµº Nota: La primera definición es más simple y eficiente que la segunda como se ob- serva en el siguiente ejemplo ¹ Ø Ñ ´ ÔØ ÓØ ¾ ´ ½¸ ĸ½¼¼¼¼µµº ± Ò Ö Ò ×¸ ¼º¼¼ ÈÍ Ò ¼º¼¼ × ÓÒ × ´¼± È͸ ÁÒ Ò Ø Ä Ô×µ ¹ Ø Ñ ´ ÔØ ÓØ ¾ ´ ½¸ ĸ½¼¼¼¼µµº ± ¼¸¼¾ Ò Ö Ò ×¸ ¼º¼ ÈÍ Ò ¼º¼ × ÓÒ × ´½½¿± È͸ ½ ½ Ä Ô×µ A partir de ahora, adoptaremos la definición ÔØ ÓØ ¾ ÔØ ÓØ ¾´ ¸Ä¸Åµ ¹ ÔØ ÓØ ¾ ´ ¸Ä¸Åµº Solución del apartado 9: ¹ ÔØ ÓØ ¾´ ½¸Ä¸¿µº Ä ¸ ¸ ℄ Ä ¸ ℄ Ä ¸ ¸ ℄ ÆÓ
  • 44. 44 Capítulo 3. Estructuras 3.4. El problema del mono y el plátano Ejercicio 3.4 Un mono se encuentra en la puerta de una habitación. En el centro de la habitación hay un plátano colgado del techo. El mono está hambriento y desea coger el plátano, pero no lo alcanza desde el suelo. En la ventana de la habitación hay una silla que el mono puede usar. El mono puede realizar las siguientes acciones: pasear de un lugar a otro de la habitación, empujar la silla de un lugar a otro de la habitación (si está en el mismo lugar que la silla), subirse en la silla (si está en el mismo lugar que la silla) y coger el plátano (si está encima de la silla en el centro de la habitación). Definir la relación ×ÓÐÙ Ò´ ¸Ëµ que se verifique si Ë es una sucesión de acciones que aplicadas al estado permiten al mono coger el plátano. Por ejemplo, ¹ ×ÓÐÙ Ò´ ×Ø Ó´ÔÙ ÖØ ¸×Ù ÐÓ¸Ú ÒØ Ò ¸× Òµ¸Äµº Ä Ô × Ö´ÔÙ ÖØ ¸Ú ÒØ Ò µ¸ ÑÔÙ Ö´Ú ÒØ Ò ¸ ÒØÖÓµ¸×Ù Ö¸ Ó Ö℄ donde ×Ø Ó´ÈŸ ŸÈ˸ µ significa que el mono se encuentra en la posición ÈÅ (puerta, centro o ventana) encima de Å (suelo o silla), la silla se encuentra en la posición ÈË (puerta, centro o ventana) y el mono tiene ( = ÓÒ) o no ( = × Ò) el plátano. Solución: ×ÓÐÙ Ò´ ×Ø Ó´ ¸ ¸ ¸ ÓÒµ¸ ℄µº ×ÓÐÙ Ò´ ½¸ Ä℄µ ¹ ÑÓÚ Ñ ÒØÓ´ ½¸ ¸ ¾µ¸ ×ÓÐÙ Ò´ ¾¸Äµº La relación ÑÓÚ Ñ ÒØÓ´ ×Ø Ó´ÈŽ¸ Ž¸È˽¸ ½µ¸ ¸ ×Ø Ó´Èž¸ ž¸È˾¸ ¾µµ se ve- rifica si en el ×Ø Ó´ÈŽ¸ Ž¸È˽¸ ½µ se puede aplicar la acción y como resultado de su aplicación se pasa al ×Ø Ó´Èž¸ ž¸È˾¸ ¾µ. ÑÓÚ Ñ ÒØÓ´ ×Ø Ó´ ÒØÖÓ¸× ÐÐ ¸ ÒØÖÓ¸× Òµ¸ Ó Ö¸ ×Ø Ó´ ÒØÖÓ¸× ÐÐ ¸ ÒØÖÓ¸ ÓÒµµº ÑÓÚ Ñ ÒØÓ´ ×Ø Ó´ ¸×Ù ÐÓ¸ ¸Íµ¸ ×Ù Ö¸ ×Ø Ó´ ¸× ÐÐ ¸ ¸Íµµº ÑÓÚ Ñ ÒØÓ´ ×Ø Ó´ ½¸×Ù ÐÓ¸ ½¸Íµ¸ ÑÔÙ Ö´ ½¸ ¾µ¸ ×Ø Ó´ ¾¸×Ù ÐÓ¸ ¾¸Íµµº ÑÓÚ Ñ ÒØÓ´ ×Ø Ó´ ¸×Ù ÐÓ¸ ¸Íµ¸ Ô × Ö´ ¸ µ¸ ×Ø Ó´ ¸×Ù ÐÓ¸ ¸Íµµº
  • 45. 3.5. Movimientos del caballo del ajedrez 45 3.5. Movimientos del caballo del ajedrez Ejercicio 3.5 Supongamos que los cuadros del tablero de ajedrez los representamos por pares de números ¸ ℄ con e entre ½ y . 1. Definir la relación × ÐØ ´· ½¸ ¾µ que se verifica si el caballo puede pasar en un movi- miento del cuadrado ½ al cuadrado ¾. Por ejemplo, ¹ × ÐØ ´ ½¸½℄¸Ëµº Ë ¿¸¾℄ Ë ¾¸¿℄ ÆÓ 2. Definir la relación Ñ ÒӴĵ que se verifique si Ä es una lista de cuadrados representando el camino recorrido por un caballo sobre un tablero vacío. Por ejemplo, ¹ Ñ ÒÓ´ ½¸½℄¸ ℄µº ¿¸¾℄ ¾¸¿℄ ÆÓ 3. Usando la relación Ñ ÒÓ, escribir una pregunta para determinar los caminos de longitud 4 por los que puede desplazarse un caballo desde cuadro ¾¸½℄ hasta el otro extremo del tablero ( = ) de forma que en el segundo movimiento pase por el cuadro ¸ ℄. 4. Calcular el menor número de movimientos necesarios para desplazar el caballo del cuadro ½¸½℄ al ¾¸¾℄. ¿Cuántos caminos de dicha longitud hay de [1,1] a [2,2]? Solución: Solución del apartado 1: × ÐØ ´ ¸ ℄¸ ½¸ ½℄µ ¹ ÜÝ´ ܸ ݵ¸ ½ × · ܸ ÓÖÖ ØÓ´ ½µ¸ ½ × · ݸ ÓÖÖ ØÓ´ ½µº La relación ÜÝ´ ¸ µ se verifica si un caballo puede moverse espacios horizon- tales e verticales. ÜÝ´¾¸½µº ÜÝ´¾¸¹½µº ÜÝ´¹¾¸½µº ÜÝ´¹¾¸¹½µº
  • 46. 46 Capítulo 3. Estructuras ÜÝ´½¸¾µº ÜÝ´½¸¹¾µº ÜÝ´¹½¸¾µº ÜÝ´¹½¸¹¾µº La relación ÓÖÖ ØÓ´· µ se verifica si está entre 1 y 8. ÓÖÖ ØÓ´ µ ¹ ½ ¸ º Solución del apartado 2: Ñ ÒÓ´ ℄µº Ñ ÒÓ´ ½¸ ¾ Ä℄µ ¹ × ÐØ ´ ½¸ ¾µ¸ Ñ ÒÓ´ ¾ Ä℄µº Solución del apartado 3: ¹ Ñ ÒÓ´ ¾¸½℄¸ ½¸ ¸ ℄¸ ¾¸ ¸ ℄℄µº ½ ¸ ¾℄ ¾ ¸ ℄ ½ ¸ ¾℄ ¾ ¸ ℄ ½ ¸ ¾℄ ¾ ¸ ℄ ½ ¸ ¾℄ ¾ ¸ ℄ ¿ ½ ¿¸ ¿℄ ¾ ¸ ℄ ½ ¿¸ ¿℄ ¾ ¸ ℄ ½ ¿¸ ¿℄ ¾ ¸ ℄ ½ ¿¸ ¿℄ ¾ ¸ ℄ ¿ ÆÓ Solución del apartado 4: ¹ Ñ ÒÓ´ ½¸½℄¸ ¸ ¾¸¾℄℄µº ÆÓ ¹ Ñ ÒÓ´ ½¸½℄¸ ¸ ¸ ¾¸¾℄℄µº ÆÓ ¹ Ñ ÒÓ´ ½¸½℄¸ ¸ ¸ ¸ ¾¸¾℄℄µº × ¹ Ñ ÒÓ´ ½¸½℄¸ ¾¸ ¿¸ ¸ ¾¸¾℄℄µº ¾ ¿¸ ¾℄ ¿ ¸ ¿℄ ¿¸ ℄ ¾ ¿¸ ¾℄ ¿ ¸ ¿℄ ¸ ½℄
  • 47. 3.6. Máximo elemento de un árbol binario 47 ¾ ¿¸ ¾℄ ¿ ¸ ½℄ ¸ ¿℄ ¾ ¿¸ ¾℄ ¿ ½¸ ¿℄ ¿¸ ℄ ¾ ¿¸ ¾℄ ¿ ¾¸ ℄ ¸ ¿℄ ¾ ¾¸ ¿℄ ¿ ¸ ¾℄ ¿¸ ℄ ¾ ¾¸ ¿℄ ¿ ¿¸ ℄ ½¸ ℄ ¾ ¾¸ ¿℄ ¿ ¿¸ ℄ ¸ ¿℄ ¾ ¾¸ ¿℄ ¿ ¿¸ ½℄ ¸ ¿℄ ¾ ¾¸ ¿℄ ¿ ½¸ ℄ ¿¸ ℄ ÆÓ 3.6. Máximo elemento de un árbol binario Ejercicio 3.6 Un árbol binario es vacío o consta de tres partes: la raíz (que debe de ser un número positivo), el subárbol izquierdo (que debe ser un árbol binario) y el subárbol derecho (que debe ser un árbol binario). Usaremos la siguiente representación Ò Ð representa el árbol vacío Ø´Á¸Ê¸ µ representa el árbol de la raíz Ê, subárbol izquierdo Á y subárbol derecho . Por ejemplo, Ø´Ø´Ò Ð¸¾¸Ò е¸½¸Ø´Ø´Ò и ¸Ò е¸¿¸Ò еµ representa el árbol ½ » ¾ ¿ » Definir la relación Ñ Ü ÑÓ´·Ì¸¹ µ que se verifique si es el máximo de los nodos del árbol Ì. Por ejemplo, ¹ Ñ Ü ÑÓ´Ò Ð¸Æµº Æ ¼ ¹ Ñ Ü ÑÓ´Ø´Ò Ð¸¾¸Ò е¸Æµº Æ ¾ ¹ Ñ Ü ÑÓ´Ø´Ø´Ò Ð¸¾¸Ò е¸¿¸Ò е¸Æµº Æ ¿ Solución: La definición de Ñ Ü ÑÓ es Ñ Ü ÑÓ´Ò Ð¸¼µº Ñ Ü ÑÓ´Ø´Á¸Ê¸ µ¸Åµ ¹ Ñ Ü ÑÓ´Á¸ÅÁµ¸
  • 48. 48 Capítulo 3. Estructuras Ñ Ü ÑÓ´ ¸Å µ¸ Ž × Ñ Ü´ÅÁ¸Å µ¸ Å × Ñ Ü´Ê¸Å½µº
  • 49. Capítulo 4 Retroceso, corte y negación 4.1. Ejemplos de uso del corte Ejercicio 4.1 1. Definir la relación ´ ¸ µ de forma que: si < ¿, entonces = ¼; si ¿ ≤ < , entonces = ¾; si ≤ , entonces = . 2. Construir el árbol de deducción correspondiente a la cuestión ¹ ´½¸ µ¸ ¾ º 3. Definir la relación ½´ ¸ µ a partir de la definición de ´ ¸ µ, introduciendo un corte al final de las dos primeras cláusulas. 4. Construir el árbol de deducción correspondiente a la cuestión ¹ ½´½¸ µ¸ ¾ º 5. Construir el árbol de deducción correspondiente a la cuestión ¹ ½´ ¸ µº 6. En el árbol anterior se observa que se efectúan comparaciones innecesarias (por ejemplo, después de fallar la comparación ¿, efectúa la comparación ¿ ). Definir la relación ¾´ ¸ µ suprimiendo en la definición de ½´ ¸ µ las comparaciones innecesarias. 7. Construir el árbol de deducción correspondiente a la cuestión ¹ ¾´ ¸ µº 49
  • 50. 50 Capítulo 4. Retroceso, corte y negación 8. Construir el árbol de deducción correspondiente a la cuestión ¹ ¾´½¸ µ¸ ¾ º 9. Definir la relación ¿´ ¸ µ a partir de la definición de ¾´ ¸ µ, suprimiendo los cortes. 10. Obtener las respuestas correspondientes a la cuestión ¹ ¿´½¸ µº Solución: Solución del apartado 1: La definición de es ´ ¸¼µ ¹ ¿º ´ ¸¾µ ¹ ¿ ¸ º ´ ¸ µ ¹ º Solución del apartado 2: El árbol de deducción se muestra en la figura 4.1 (página 50). 1<3, 2<0 3 =< 1, 1<6, 2<2 6 =< 1, 2<4 f(1,Y), 2<Y {X/1, Y/2} {X/1, Y/0} {X/1, Y/4} 2<0 Fallo Fallo Fallo Figura 4.1: Árbol de resolución del apartado 2 Solución del apartado 3: La definición de ½ es ½´ ¸¼µ ¹ ¿¸ º ½´ ¸¾µ ¹ ¿ ¸ ¸ º ½´ ¸ µ ¹ º Solución del apartado 4: El árbol de deducción se muestra en la figura 4.2 (página 51). Solución del apartado 5: El árbol de deducción se muestra en la figura 4.3 (página 51). Solución del apartado 6: La definición de ¾ es
  • 51. 4.1. Ejemplos de uso del corte 51 {X/1, Y/0} 1<3, !, 2<0 !, 2<0 2<0 Fallo f_1(1,Y), 2<Y Figura 4.2: Árbol de resolución del apartado 4 3 =< 7, 7<6, ! 6 =< 77<3, ! Exito {Y/4} f_1(7,Y) {X/7, Y/2} {X/7, Y/0} {X/7, Y/4} Fallo 7<6, ! Fallo Figura 4.3: Árbol de resolución del apartado 5
  • 52. 52 Capítulo 4. Retroceso, corte y negación ¾´ ¸¼µ ¹ ¿¸ º ¾´ ¸¾µ ¹ ¸ º ¾´ ¸ µº Solución del apartado 7: El árbol de deducción se muestra en la figura 4.4 (página 52). 7<3, ! Exito {Y/4} f_1(7,Y) {X/7, Y/2} {X/7, Y/0} {X/7, Y/4} Fallo 7<6, ! Fallo Figura 4.4: Árbol de resolución del apartado 7 Solución del apartado 8: El árbol de deducción se muestra en la figura 4.5 (página 52). {X/1, Y/0} 1<3, !, 2<0 !, 2<0 2<0 Fallo f_2(1,Y), 2<Y Figura 4.5: Árbol de resolución del apartado 8 Solución del apartado 9: La definición de ¿ es
  • 53. 4.2. Árboles de deducción de Ñ Ñ Ö 53 ¿´ ¸¼µ ¹ ¿º ¿´ ¸¾µ ¹ º ¿´ ¸ µº Solución del apartado 10: Las respuestas son ¹ ¿´½¸ µº ¼ ¾ ÆÓ 4.2. Árboles de deducción de Ñ Ñ Ö Ejercicio 4.2 La relación Ñ Ñ Ö está definida por Ñ Ñ Ö ´ ¸ ℄µ ¹ º Ñ Ñ Ö ´ ¸ Ä℄µ ¹ Ñ Ñ Ö ´ ¸Äµº Escribir los árboles de SLD resolución correspondientes a las siguientes preguntas 1. ¹ Ñ Ñ Ö ´ ¸ ¸ ¸ ℄µ¸ º 2. ¹ Ñ Ñ Ö ´ ¸ ¸ ¸ ℄µ¸ º 3. ¹ ¸ Ñ Ñ Ö ´ ¸ ¸ ¸ ℄µº Solución: 4.3. Diferencia de conjuntos Ejercicio 4.3 Definir la relación Ö Ò ´· ½¸· ¾¸¹ ¿µ que se verifique si ¿ es la dife- rencia de los conjuntos ½ y ¾. Por ejemplo, ¹ Ö Ò ´ ¸ ℄¸ ¸ ℄¸ µº ℄ ÆÓ Definir una versión con negación ( Ö Ò ½) y otra con corte ( Ö Ò ¾) y comparar la eficiencia de las distintas definiciones con el ejemplo ¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¸ Ľµ¸ Ø Ñ ´ Ö Ò ½´ Ľ¸ Ľµµº ¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¸ Ľµ¸ Ø Ñ ´ Ö Ò ¾´ Ľ¸ Ľµµº
  • 54. 54 Capítulo 4. Retroceso, corte y negación ! Resp.: X=b {X/a} !, a=a. a=a Resp.: X=a memberchk(X,[a,b,c]), X=a. memberchk(X,[a,b,c]), X=b. {X/a} !, a=b. a=b Fallo X=b, memberchk(X,[a,b,c]). {X/b} memberchk(b,[a,b,c]). memberchk(b,[b,c]). Figura 4.6: Árbol de resolución Ñ Ñ Ö Nota: La relación Ö Ò se corresponde con la relación definida ×Ù ØÖ Ø. Solución: 1a definición (con negación): Ö Ò ½´ ℄¸ ¸ ℄µº Ö Ò ½´ Ä℄¸Ä¾¸Ä¿µ ¹ Ñ Ñ Ö´ ¸Ä¾µ¸ Ö Ò ½´Ä¸Ä¾¸Ä¿µº Ö Ò ½´ Ä℄¸Ä¾¸ Ä¿℄µ ¹ ÒÓØ´Ñ Ñ Ö´ ¸Ä¾µµ¸ Ö Ò ½´Ä¸Ä¾¸Ä¿µº 2a definición (con corte): Ö Ò ¾´ ℄¸ ¸ ℄µº Ö Ò ¾´ Ä℄¸Ä¾¸Ä¿µ ¹ Ñ Ñ Ö´ ¸Ä¾µ¸ ¸ Ö Ò ¾´Ä¸Ä¾¸Ä¿µº Ö Ò ¾´ Ä℄¸Ä¾¸ Ä¿℄µ ¹ ± ÒÓØ´Ñ Ñ Ö´ ¸Ä¾µµ¸ Ö Ò ¾´Ä¸Ä¾¸Ä¿µº 3a definición (con corte y memberchk):
  • 55. 4.4. Agregación de un elemento a un conjunto 55 Ö Ò ¿´ ℄¸ ¸ ℄µº Ö Ò ¿´ Ä℄¸Ä¾¸Ä¿µ ¹ Ñ Ñ Ö ´ ¸Ä¾µ¸ ¸ Ö Ò ¿´Ä¸Ä¾¸Ä¿µº Ö Ò ¿´ Ä℄¸Ä¾¸ Ä¿℄µ ¹ ± ÒÓØ´Ñ Ñ Ö ´ ¸Ä¾µµ¸ Ö Ò ¿´Ä¸Ä¾¸Ä¿µº Comparaciones: ¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¸ Ľµ¸ Ø Ñ ´ Ö Ò ½´ Ľ¸ Ľ¸ ℄µµº ± ¼½¸ ¼½ Ò Ö Ò ×¸ ¼¸¾ ÈÍ Ò ¼¸¾ × ÓÒ × ´ ± È͸ ¾¼ Ä Ô×µ ¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¸ Ľµ¸ Ø Ñ ´ Ö Ò ¾´ Ľ¸ Ľ¸ ℄µµº ± ¼½¸ ¼½ Ò Ö Ò ×¸ ¼¸¾ ÈÍ Ò ¼¸¾ × ÓÒ × ´ ± È͸ ¾¼¼ ¼¼ Ä Ô×µ ¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¸ Ľµ¸ Ø Ñ ´ Ö Ò ¿´ Ľ¸ Ľ¸ ℄µµº ± ¾¸¼¼½ Ò Ö Ò ×¸ ¼¸¼ ÈÍ Ò ¼¸¼ × ÓÒ × ´ ± È͸ ¾ Ä Ô×µ ¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¸ Ľµ¸ Ø Ñ ´×Ù ØÖ Ø´ Ľ¸ Ľ¸ ℄µµº ± ¾¸¼¼½ Ò Ö Ò ×¸ ¼¸¼ ÈÍ Ò ¼¸¼ × ÓÒ × ´½¼ ± È͸ ¾ ¼½¾ Ä Ô×µ 4.4. Agregación de un elemento a un conjunto Ejercicio 4.4 Definir la relación Ö Ö´· ¸·Ä¸¹Ä½µ que se verifique si Ľ es la lista obtenida añadiéndole a Ä, si no pertenece a Ä y es Ä en caso contrario. Por ejemplo, ¹ Ö Ö´ ¸ ¸ ℄¸Äµº Ä ¸ ¸ ℄ ¹ Ö Ö´ ¸ ¸ ℄¸Äµº Ä ¸ ℄ Hacer una versión con negación y otra con corte. Solución: 1a definición (con negación): Ö Ö ½´ ¸Ä¸Äµ ¹ Ñ Ñ Ö´ ¸Äµº Ö Ö ½´ ¸Ä¸ Ä℄µ ¹ ÒÓØ´Ñ Ñ Ö´ ¸Äµµº 2a definición (con corte): Ö Ö ¾´ ¸Ä¸Äµ ¹ Ñ Ñ Ö´ ¸Äµ¸ º Ö Ö ¾´ ¸Ä¸ Ä℄µº
  • 56. 56 Capítulo 4. Retroceso, corte y negación 4.5. Separación de una lista de números en positivos y ne- gativos Ejercicio 4.5 Definir la relación × Ô Ö ´·Ä½¸·Ä¾¸¹Ä¿µ que separa la lista de números Ľ en dos listas: ľ formada por los números positivos y Ä¿ formada por los números negativos o cero. Por ejemplo, ¹ × Ô Ö ´ ¾¸¼¸¹¿¸ ¸¼¸¾℄¸Ä¾¸Ä¿µº ľ ¾¸ ¸ ¾℄ Ä¿ ¼¸ ¹¿¸ ¼℄ × Proponer dos soluciones, una sin corte y otra con corte. Solución: Definición con negación: × Ô Ö ½´ ℄¸ ℄¸ ℄µº × Ô Ö ½´ Æ ÊĽ℄¸ Æ Êľ℄¸Ä¿µ ¹ Æ ¼¸ × Ô Ö ½´ÊĽ¸Êľ¸Ä¿µº × Ô Ö ½´ Æ ÊĽ℄¸Ä¾¸ Æ ÊÄ¿℄µ ¹ Æ ¼¸ × Ô Ö ½´ÊĽ¸Ä¾¸ÊÄ¿µº Definición con corte: × Ô Ö ¾´ ℄¸ ℄¸ ℄µº × Ô Ö ¾´ Æ ÊĽ℄¸ Æ Êľ℄¸Ä¿µ ¹ Æ ¼¸ ¸ × Ô Ö ¾´ÊĽ¸Êľ¸Ä¿µº × Ô Ö ¾´ Æ ÊĽ℄¸Ä¾¸ Æ ÊÄ¿℄µ ¹ ± Æ ¼¸ × Ô Ö ¾´ÊĽ¸Ä¾¸ÊÄ¿µº 4.6. Suma de los números pares de una lista de números Ejercicio 4.6 Definir la relación ×ÙÑ Ô Ö ×´·Ä¸¹Æµ que se verifica si Æ es la suma de todos los números pares de la lista de números Ä. Por ejemplo, ¹ ×ÙÑ Ô Ö ×´ ¾¸¿¸ ℄¸Æµº Æ ¹ ×ÙÑ Ô Ö ×´ ½¸¿¸ ¸ ¸ ¸½½¸¾ ℄¸Æµº Æ ¿¼
  • 57. 4.6. Suma de los números pares de una lista de números 57 Hacer una versión con negación y otra con corte. Solución: Versión 1 (con negación): ×ÙÑ Ô Ö × ½´ ℄¸¼µº ×ÙÑ Ô Ö × ½´ Æ Ä℄¸ µ ¹ Ô Ö´Æµ¸ ×ÙÑ Ô Ö × ½´Ä¸ ½µ¸ × ½ · ƺ ×ÙÑ Ô Ö × ½´ Æ Ä℄¸ µ ¹ ÒÓØ´Ô Ö´ Ƶµ¸ ×ÙÑ Ô Ö × ½´Ä¸ µº Ô Ö´Æµ ¹ Æ ÑÓ ¾ ¼º Versión 2 (con corte): ×ÙÑ Ô Ö × ¾´ ℄¸¼µº ×ÙÑ Ô Ö × ¾´ Æ Ä℄¸ µ ¹ Ô Ö´Æµ¸ ¸ ×ÙÑ Ô Ö × ¾´Ä¸ ½µ¸ × ½ · ƺ ×ÙÑ Ô Ö × ¾´ Æ Ä℄¸ µ ¹ ± ÒÓØ´Ô Ö´ Ƶµ¸ ×ÙÑ Ô Ö × ¾´Ä¸ µº Versión 3 (con corte y acumulador): ×ÙÑ Ô Ö × ¿´Ä¸ µ ¹ ×ÙÑ Ô Ö × ¿ Ùܴĸ¼¸ µº ×ÙÑ Ô Ö × ¿ ÙÜ´ ℄¸ ¸ µº ×ÙÑ Ô Ö × ¿ ÙÜ´ Æ Ä℄¸ ¸ µ ¹ Ô Ö´Æµ¸ ¸ ½ × · Ƹ ×ÙÑ Ô Ö × ¿ Ùܴĸ ½¸ µº ×ÙÑ Ô Ö × ¿ ÙÜ´ Æ Ä℄¸ ¸ µ ¹ ± ÒÓØ´Ô Ö´ Ƶµ¸ ×ÙÑ Ô Ö × ¿ Ùܴĸ ¸ µº
  • 58. 58 Capítulo 4. Retroceso, corte y negación 4.7. Exponente de dos en la factorización de un número Ejercicio 4.7 Definir la relación ÜÔÓÒ ÒØ Ó×´·Æ¸¹ µ que se verifica si es el exponen- te de 2 en la descomposición de Æ como producto de factores primos. Por ejemplo, ¹ ÜÔÓÒ ÒØ Ó×´ ¼¸ µº ¿ ¹ ÜÔÓÒ ÒØ Ó×´ ¸ µº ¼ Hacer una versión con negación y otra con corte. Solución: 1a Versión (con negación): ÜÔÓÒ ÒØ Ó× ½´Æ¸ µ ¹ Æ ÑÓ ¾ ¼¸ ƽ × Æ » ¾¸ ÜÔÓÒ ÒØ Ó× ½´Æ½¸ ½µ¸ × ½ · ½º ÜÔÓÒ ÒØ Ó× ½´Æ¸¼µ ¹ Æ ÑÓ ¾ ¼º 2a Versión (con corte): ÜÔÓÒ ÒØ Ó× ¾´Æ¸ µ ¹ Æ ÑÓ ¾ ¼¸ ¸ ƽ × Æ » ¾¸ ÜÔÓÒ ÒØ Ó× ¾´Æ½¸ ½µ¸ × ½ · ½º ÜÔÓÒ ÒØ Ó× ¾´ ¸¼µº 4.8. Transformación de lista a conjunto Ejercicio 4.8 Definir la relación Ð ×Ø ÓÒ ÙÒØÓ´·Ä¸¹ µ que se verifique si es el conjun- to correspondiente a la lista Ä (es decir, contiene los mismos elementos que Ä en el mismo orden, pero si Ä tiene elementos repetidos sólo se incluye en la última aparición de cada elemento). Por ejemplo, ¹ Ð ×Ø ÓÒ ÙÒØÓ´ ¸ ¸ ¸ ℄¸ µº ¸ ¸ ℄ Nota: La relación Ð ×Ø ÓÒ ÙÒØÓ se corresponde con la relación definida Ð ×Ø ØÓ × Ø.
  • 59. 4.8. Transformación de lista a conjunto 59 Solución: La definición de Ð ×Ø ÓÒ ÙÒØÓ es Ð ×Ø ÓÒ ÙÒØÓ´ ℄¸ ℄µº Ð ×Ø ÓÒ ÙÒØÓ´ Ä℄¸ µ ¹ Ñ Ñ Ö´ ¸Äµ¸ Ð ×Ø ÓÒ ÙÒØӴĸ µº Ð ×Ø ÓÒ ÙÒØÓ´ Ä℄¸ ℄µ ¹ · Ñ Ñ Ö´ ¸Äµ¸ Ð ×Ø ÓÒ ÙÒØӴĸ µº La definición anterior puede simplificarse con cortes Ð ×Ø ÓÒ ÙÒØÓ ½´ ℄¸ ℄µº Ð ×Ø ÓÒ ÙÒØÓ ½´ Ä℄¸ µ ¹ Ñ Ñ Ö´ ¸Äµ¸ ¸ Ð ×Ø ÓÒ ÙÒØÓ ½´Ä¸ µº Ð ×Ø ÓÒ ÙÒØÓ ½´ Ä℄¸ ℄µ ¹ ± · Ñ Ñ Ö´ ¸Äµ¸ Ð ×Ø ÓÒ ÙÒØÓ ½´Ä¸ µº 3a definición (con corte y memberchk): Ð ×Ø ÓÒ ÙÒØÓ ¿´ ℄¸ ℄µº Ð ×Ø ÓÒ ÙÒØÓ ¿´ Ä℄¸Ä¾µ ¹ Ñ Ñ Ö ´ ¸Äµ¸ ¸ Ð ×Ø ÓÒ ÙÒØÓ ¿´Ä¸Ä¾µº Ð ×Ø ÓÒ ÙÒØÓ ¿´ Ä℄¸ ľ℄µ ¹ ± ÒÓØ´Ñ Ñ Ö´ ¸Äµµ¸ Ð ×Ø ÓÒ ÙÒØÓ ¿´Ä¸Ä¾µº Comparaciones: ¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¸ Ľµ¸ Ø Ñ ´Ð ×Ø ÓÒ ÙÒØÓ ½´ Ľ¸ оµµº ± ½¸¼¼¿¸¼¼½ Ò Ö Ò ×¸ ¼¸ ¼ ÈÍ Ò ¼¸ ½ × ÓÒ × ´ ± È͸ ¾ ¼ ¼¿ Ä Ô×µ ¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¸ Ľµ¸ Ø Ñ ´Ð ×Ø ÓÒ ÙÒØÓ ¾´ Ľ¸ оµµº ± ¼½¸ ¼½ Ò Ö Ò ×¸ ¼¸¾ ÈÍ Ò ¼¸¾ × ÓÒ × ´ ¿± È͸ ½ ¾ ¼ Ä Ô×µ ¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¸ Ľµ¸ Ø Ñ ´Ð ×Ø ÓÒ ÙÒØÓ ¿´ Ľ¸ оµµº ± ¿¸¼¼½ Ò Ö Ò ×¸ ¼¸¼ ÈÍ Ò ¼¸¼ × ÓÒ × ´ ¼± È͸ ¾ ½ Ä Ô×µ ¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¸ Ľµ¸ Ø Ñ ´Ð ×Ø ØÓ × Ø´ Ľ¸ оµµº ± ¿¸¼¼ Ò Ö Ò ×¸ ¼¸¼ ÈÍ Ò ¼¸¼ × ÓÒ × ´ ¿± È͸ ¾ ½ Ä Ô×µ
  • 60. 60 Capítulo 4. Retroceso, corte y negación 4.9. Signos de crecimientos de sucesiones numéricas Ejercicio 4.9 Definir la relación Ö Ñ ÒØÓ×´·Ä½¸¹Ä¾µ que se verifique si ľ es la lista correspondientes a los crecimientos de la lista numérica Ľ; es decir, entre cada par de elementos consecutivos e de Ľ coloca el signo · si e y signo ¹ en caso contrario. Por ejemplo, ¹ Ö Ñ ÒØÓ×´ ½¸¿¸¾¸¾¸ ¸¿℄¸Äµº Ä ½¸ ·¸ ¿¸ ¹¸ ¾¸ ¹¸ ¾¸ ·¸ ¸ ¹℄ Dar una definición sin corte y otra con corte. Solución: La definición de Ö Ñ ÒØÓ× sin usar corte es Ö Ñ ÒØÓ× ½´ ℄¸ ℄µº Ö Ñ ÒØÓ× ½´ ¸ Ľ℄¸ ¸· ľ℄µ ¹ ¸ Ö Ñ ÒØÓ× ½´ Ľ℄¸Ä¾µº Ö Ñ ÒØÓ× ½´ ¸ Ľ℄¸ ¸¹ ľ℄µ ¹ ¸ Ö Ñ ÒØÓ× ½´ Ľ℄¸Ä¾µº La definición de Ö Ñ ÒØÓ× usando corte es Ö Ñ ÒØÓ× ¾´ ℄¸ ℄µº Ö Ñ ÒØÓ× ¾´ ¸ Ľ℄¸ ¸· ľ℄µ ¹ ¸ ¸ Ö Ñ ÒØÓ× ¾´ Ľ℄¸Ä¾µº Ö Ñ ÒØÓ× ¾´ ¸ Ľ℄¸ ¸¹ ľ℄µ ¹ ± ¸ Ö Ñ ÒØÓ× ¾´ Ľ℄¸Ä¾µº 4.10. Descomposición en factores primos Ejercicio 4.10 Definir las siguientes relaciones: Ñ ÒÓÖ Ú ×ÓÖ ÔÖÓÔ Ó´·Æ¸ µ que se verifique si es el menor divisor de Æ mayor o igual que 2. Por ejemplo, ¹ Ñ ÒÓÖ Ú ×ÓÖ ÔÖÓÔ Ó´¿¼¸ µº ¾ ¹ Ñ ÒÓÖ Ú ×ÓÖ ÔÖÓÔ Ó´¿¸ µº ¿
  • 61. 4.11. Menor elemento que cumple una propiedad 61 ØÓÖ Þ Ò´·Æ¸¹Äµ que se verifique si Ä es la lista correspondiente a la descomposi- ción del número Æ en factores primos (se considera los que elementos de Ä están ordenados de manera creciente). Por ejemplo, ¹ ØÓÖ Þ Ò´½¾¸Äµº Ä ¾¸ ¾¸ ¿℄ ÆÓ ¹ ØÓÖ Þ Ò´½¸Äµº Ä ℄ ÆÓ Solución: La definición de Ñ ÒÓÖ Ú ×ÓÖ ÔÖÓÔ Ó es Ñ ÒÓÖ Ú ×ÓÖ ÔÖÓÔ Ó´Æ¸ µ ¹ ƽ × ÐÓÓÖ´×ÕÖشƵµ¸ ØÛ Ò´¾¸Æ½¸ µ¸ Æ ÑÓ ¼¸ º Ñ ÒÓÖ Ú ×ÓÖ ÔÖÓÔ Ó´Æ¸Æµº La definición de ØÓÖ Þ Ò es ØÓÖ Þ Ò´½¸ ℄µº ØÓÖ Þ Ò´Æ¸ Ä℄µ ¹ Æ ½¸ Ñ ÒÓÖ Ú ×ÓÖ ÔÖÓÔ Ó´Æ¸ µ¸ ƽ × Æ» ¸ ØÓÖ Þ Ò´Æ½¸Äµº 4.11. Menor elemento que cumple una propiedad Ejercicio 4.11 Definir la relación Ð ÙÐ ´·Æ¸·Å¸ µ que se verifique si es el menor múlti- plo de Æ tal que la suma de sus dígitos es mayor que Å. Por ejemplo, ¹ Ð ÙÐ ´¿¸½¼¸ µº ¿ × ¹ Ð ÙÐ ´ ¸¾¼¸ µº ¿ × Solución: La definición de Ð ÙÐ es
  • 62. 62 Capítulo 4. Retroceso, corte y negación Ð ÙÐ ´Æ¸Å¸ µ ¹ Ñ ÐØ ÔÐӴƸ µ¸ ×ÙÑ ØÓ×´ ¸Æ½µ¸ ƽ Ÿ º La relación Ñ ÐØ ÔÐÓ´·Æ¸¹ µ se verifica si es un múltiplo de Æ. Por ejemplo, ¹ Ñ ÐØ ÔÐÓ´ ¸ µº ½¼ ½ × Ñ ÐØ ÔÐӴƸƵº Ñ ÐØ ÔÐӴƸŵ ¹ Ñ ÐØ ÔÐӴƸƽµ¸ Å × Æ·Æ½º La relación ×ÙÑ ØÓ×´·Æ¸¹Ëµ se verifica si Ë es la suma de los dígitos del nú- mero Æ. Por ejemplo, ¹ ×ÙÑ ØÓ×´¾¿ ¸Ëµº Ë ½¾ ×ÙÑ ØÓ״ƸƵ ¹ Æ ½¼¸ º ×ÙÑ ØÓ״Ƹ˵ ¹ ± Æ ½¼¸ ƽ × Æ »» ½¼¸ Ê × Æ ¹ ½¼¶Æ½¸ ×ÙÑ ØÓ״ƽ¸Ë½µ¸ Ë × Ë½ · ʺ 4.12. Números libres de cuadrados Ejercicio 4.12 Un número es libre de cuadrados si no es divisible por el cuadrado de ningún nú- mero mayor que 1. Definir la relación Ð Ö Ù Ö Ó×´·Æµ que se verifique si el número Æ es libre de cuadrados. Por ejemplo,
  • 63. 4.13. Suma de los números libres de cuadrados 63 ¹ Ð Ö Ù Ö Ó×´¿¼µº × ¹ Ð Ö Ù Ö Ó×´½¾µº ÆÓ Solución: La definición de Ð Ö Ù Ö Ó× es Ð Ö Ù Ö Ó״Ƶ ¹ Å × ÐÓÓÖ´×ÕÖشƵµ¸ ÒÓØ´´ ØÛ Ò´¾¸Å¸ µ¸ Æ ÑÓ ´ ¶ µ ¼µµº 4.13. Suma de los números libres de cuadrados Ejercicio 4.13 Definir la relación ×ÙÑ Ð Ö × Ù Ö Ó×´·Ä¸¹Ëµ que se verifique si Ë es la suma de los números libres de cuadrados la lista numérica Ä. Por ejemplo, ¹ ×ÙÑ Ð Ö × Ù Ö Ó×´ ¸½¾¸½ ¸¿¼℄¸Ëµº Ë ¿ Nota: Dar dos definiciones, una con negación y otra con corte. Solución: La definición de ×ÙÑ Ð Ö × Ù Ö Ó× usando la negación es ×ÙÑ Ð Ö × Ù Ö Ó× ½´ ℄¸¼µº ×ÙÑ Ð Ö × Ù Ö Ó× ½´ Ä℄¸Ëµ ¹ Ð Ö Ù Ö Ó×´ µ¸ ×ÙÑ Ð Ö × Ù Ö Ó× ½´Ä¸Ë½µ¸ Ë × ·Ë½º ×ÙÑ Ð Ö × Ù Ö Ó× ½´ Ä℄¸Ëµ ¹ ÒÓØ´Ð Ö Ù Ö Ó×´ µµ¸ ×ÙÑ Ð Ö × Ù Ö Ó× ½´Ä¸Ëµº y la definición usando corte es ×ÙÑ Ð Ö × Ù Ö Ó× ¾´ ℄¸¼µº ×ÙÑ Ð Ö × Ù Ö Ó× ¾´ Ä℄¸Ëµ ¹ Ð Ö Ù Ö Ó×´ µ¸ ¸ ×ÙÑ Ð Ö × Ù Ö Ó× ¾´Ä¸Ë½µ¸ Ë × ·Ë½º ×ÙÑ Ð Ö × Ù Ö Ó× ¾´ Ä℄¸Ëµ ¹ ± ÒÓØ´Ð Ö Ù Ö Ó×´ µµ¸ ×ÙÑ Ð Ö × Ù Ö Ó× ¾´Ä¸Ëµº
  • 64. 64 Capítulo 4. Retroceso, corte y negación 4.14. Máximo número de una lista Ejercicio 4.14 Definir la relación Ñ Ü Ð ×Ø ´·Ä¸¹Æµ que se verifique si Æ es el mayor número de la lista Ä. Por ejemplo, ¹ Ñ Ü Ð ×Ø ´ ¾¸ ¾¿¸ ¸ · ℄¸Æµº Æ ¹ Ñ Ü Ð ×Ø ´ ¹¾¸ ¾¿¸¹ ¸ · ℄¸Æµº Æ ¹¾ ¹ Ñ Ü Ð ×Ø ´ ¾¿¸ · ℄¸Æµº ÆÓ Solución: La definición de Ñ Ü Ð ×Ø es Ñ Ü Ð ×Ø ´Ä¸Åµ ¹ Ñ Ñ Ö´Å¸Äµ¸ ÒÙÑ Ö´Åµ¸ ÒÓØ´´Ñ Ñ Ö´Æ¸Äµ¸ ÒÙÑ Ö´Æµ¸ Æ Åµµº 4.15. Longitud de las subsucesiones comunes maximales Ejercicio 4.15 Definir la relación ÐÓÒ ØÙ × Ñ´·Ä½¸·Ä¾¸¹Æµ que se verifique si Æ es la lon- gitud de las subsucesiones comunes maximales de las listas Ľ y ľ. Por ejemplo, ¹ ÐÓÒ ØÙ × Ñ´ ¾¸½¸ ¸ ¸¾¸¿¸ ¸¾¸ ¸¿℄¸ ½¸ ¸ ¸¿¸¾℄¸Æµº Æ ÆÓ ya que ½¸ ¸¿¸¾℄ es una subsucesión de las dos listas y no poseen ninguna otra subsucesión común de mayor longitud. Obsérvese que los elementos de la subsucesión no son necesariamente elementos adyacentes en las listas. Solución: La definición de ÐÓÒ ØÙ × Ñ es ÐÓÒ ØÙ × Ñ´ ℄¸ ¸¼µº ÐÓÒ ØÙ × Ñ´ ¸ ℄¸¼µº ÐÓÒ ØÙ × Ñ´ Ľ℄¸ ľ℄¸Æµ ¹ ¸ ÐÓÒ ØÙ × Ñ´Ä½¸Ä¾¸Åµ¸ Æ × Å·½º ÐÓÒ ØÙ × Ñ´ Ľ℄¸ ľ℄¸Æµ ¹
  • 65. 4.16. Elementos repetidos en una lista 65 ± ¸ ÐÓÒ ØÙ × Ñ´Ä½¸ ľ℄¸Æ½µ¸ ÐÓÒ ØÙ × Ñ´ Ľ℄¸Ä¾¸Æ¾µ¸ Æ × Ñ Ü´Æ½¸Æ¾µº 4.16. Elementos repetidos en una lista Ejercicio 4.16 Definir la relación Ö Ô Ø Ó´¹ ¸·Äµ que se verifique si el elemento está repe- tido (i.e. ocurre más de una vez) en la lista Ä. Por ejemplo, ¹ Ö Ô Ø Ó´ ¸ ½¸¾¸½¸¿¸ ¸¿℄µº ½ ½ ¿ ¿ ÆÓ ¹ Ö Ô Ø Ó´ ¸ ½¸¾¸ ℄µº ÆÓ Solución: La definición de Ö Ô Ø Ó es Ö Ô Ø Ó´ ¸Äµ ¹ × Ð Ø´ ¸Ä¸Êµ¸ Ñ Ñ Ö ´ ¸Êµº Ejercicio 4.17 Defimir la relación Ð Ñ Ò ´· ¸·Ä½¸¹Ä¾µ que se verifique si ľ es la lista ob- tenida eliminando todas las ocurrencias de en la lista Ľ. Por ejemplo, ¹ Ð Ñ Ò ´ ¸ ½¸ ¸ ¸¿¸ ¸ ¸ ¸ ¸ ℄¸Äµº Ä ½¸ ¸ ¿¸ ¸ ℄ Solución: La definición de Ð Ñ Ò es Ð Ñ Ò ´ ¸ ℄¸ ℄µº Ð Ñ Ò ´ ¸ Ľ℄¸Ä¾µ ¹ Ð Ñ Ò ´ ¸Ä½¸Ä¾µº Ð Ñ Ò ´ ¸ Ľ℄¸ ľ℄µ ¹ ¸ Ð Ñ Ò ´ ¸Ä½¸Ä¾µº Ejercicio 4.18 Definir la relación Ö Ô Ø Ó×´·Ä½¸¹Ä¾µ que se verifique si ľ es la lista de los elementos repetidos de la lista Ľ. Por ejemplo,
  • 66. 66 Capítulo 4. Retroceso, corte y negación ¹ Ö Ô Ø Ó× ½´ ½¸¾¸ ¸¿¸ ¸½¸¿¸ ℄¸Äµº Ä ½¸ ¸ ¿℄ Solución: La primera definición de Ö Ô Ø Ó× es Ö Ô Ø Ó× ½´ ℄¸ ℄µº Ö Ô Ø Ó× ½´ Ľ℄¸ ľ℄µ ¹ Ñ Ñ Ö ´ ¸Ä½µ¸ Ð Ñ Ò ´ ¸Ä½¸Ä¿µ¸ Ö Ô Ø Ó× ½´Ä¿¸Ä¾µº Ö Ô Ø Ó× ½´ Ľ℄¸Ä¾µ ¹ ÒÓØ´Ñ Ñ Ö ´ ¸Ä½µµ¸ Ö Ô Ø Ó× ½´Ä½¸Ä¾µº con cortes se transforma en Ö Ô Ø Ó× ¾´ ℄¸ ℄µº Ö Ô Ø Ó× ¾´ Ľ℄¸ ľ℄µ ¹ Ñ Ñ Ö ´ ¸Ä½µ¸ ¸ Ð Ñ Ò ´ ¸Ä½¸Ä¿µ¸ Ö Ô Ø Ó× ¾´Ä¿¸Ä¾µº Ö Ô Ø Ó× ¾´ Ľ℄¸Ä¾µ ¹ ± ÒÓØ´Ñ Ñ Ö ´ ¸Ä½µµ¸ Ö Ô Ø Ó× ¾´Ä½¸Ä¾µº 4.17. Subconjunto maximal Ejercicio 4.19 Definir la relación ×Ù ÓÒ ÙÒØÓ Ñ Ü Ñ Ð´·Ä½¸¹Ä¾µ que se verifica si ľ es un subconjunto maximal de Ľ (es decir, es un conjunto de elementos de Ľ tal que sólo existe un elemento de Ľ que no pertenece a ľ). Por ejemplo, ¹ ×Ù ÓÒ ÙÒØÓ Ñ Ü Ñ Ð´ ¸ ¸ ¸ ¸ ¸ ¸ ℄¸Äµº Ä ¸ ℄ Ä ¸ ℄ Ä ¸ ℄ ÆÓ Solución: La definición de ×Ù ÓÒ ÙÒØÓ Ñ Ü Ñ Ð es ×Ù ÓÒ ÙÒØÓ Ñ Ü Ñ Ð´Ä½¸Ä¾µ ¹ Ð ×Ø ØÓ × Ø´Ä½¸Ä¿µ¸ × Ð Ø´ ¸Ä¿¸Ä¾µº
  • 67. 4.18. Suma de los elementos con posiciones múltiplos de n 67 Nota: La relación Ð ×Ø ØÓ × Ø se corresponde con la relación Ð ×Ø ÓÒ ÙÒØÓ definida en la página 59. 4.18. Suma de los elementos con posiciones múltiplos de n Ejercicio 4.20 Definir la relación ×ÙÑ ÔÓ× ÓÒ ×´·Æ¸·Ä¸¹Ëµ que se verifique si Ë es la suma de los elementos de la lista que ocupan las posiciones que son múltiplos de Æ. Por ejemplo, ¹×ÙÑ ÔÓ× ÓÒ ×´¾¸ ¿¸ ¸ ¸ ¸½¸¾℄¸Ëµº Ë ½ ¹ ×ÙÑ ÔÓ× ÓÒ ×´¿¸ ¿¸ ¸ ¸ ¸½¸¾℄¸Ëµº Ë Solución: La definición de ×ÙÑ ÔÓ× ÓÒ × es ×ÙÑ ÔÓ× ÓÒ ×´Æ¸Ä¸Ëµ ¹ Ð Ñ ÒØÓ Ý Ö ×ØӴƸĸ ¸Ä½µ¸ ¸ ×ÙÑ ÔÓ× ÓÒ ×´Æ¸Ä½¸Ë½µ¸ Ë × ·Ë½º ×ÙÑ ÔÓ× ÓÒ ×´ ¸ ¸¼µº donde Ð Ñ ÒØÓ Ý Ö ×ØÓ´·Æ¸·Ä½¸¹ ¸¹Ä¾µ se verifica si es el elemento Æ–ésimo de Ľ y ľ es la lista Ľ a partir del elemento . Por ejemplo, ¹ Ð Ñ ÒØÓ Ý Ö ×ØÓ´¿¸ ¿¸ ¸ ¸ ¸½¸¾℄¸ ¸Äµº Ä ¸ ½¸ ¾℄ La definición de Ð Ñ ÒØÓ Ý Ö ×ØÓ es Ð Ñ ÒØÓ Ý Ö ×ØӴƸĽ¸ ¸Ä¾µ ¹ Ð Ò Ø ´Ä¸Æµ¸ ÔÔ Ò ´Ä¸Ä¾¸Ä½µ¸ Ð ×شĸ µº 4.19. Compresión de listas Ejercicio 4.21 Definir la relación ÓÑÔÖ Ñ ´·Ä½¸¹Ä¾µ que se verifique si ľ es la lista obte- nida sustituyendo cada sucesión de un elemento de Ľ por dicho elemento. Por ejemplo,
  • 68. 68 Capítulo 4. Retroceso, corte y negación ¹ ÓÑÔÖ Ñ ´ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ℄¸Äµº Ä ¸ ¸ ¸ ¸ ℄ Solución: Vamos a presentar dos definiciones. La primera definición de ÓÑÔÖ Ñ es ÓÑÔÖ Ñ ´ ℄¸ ℄µº ÓÑÔÖ Ñ ´ ℄¸ ℄µº ÓÑÔÖ Ñ ´ ¸ Ľ℄¸Ä¾µ ¹ ÓÑÔÖ Ñ ´ Ľ℄¸Ä¾µº ÓÑÔÖ Ñ ´ ¸ Ľ℄¸ ľ℄µ ¹ ¸ ÓÑÔÖ Ñ ´ Ľ℄¸Ä¾µº En la segunda definición se usa el corte ÓÑÔÖ Ñ ¾´ ℄¸ ℄µº ÓÑÔÖ Ñ ¾´ ℄¸ ℄µº ÓÑÔÖ Ñ ¾´ ¸ Ľ℄¸Ä¾µ ¹ ¸ ¸ ÓÑÔÖ Ñ ¾´ Ľ℄¸Ä¾µº ÓÑÔÖ Ñ ¾´ ¸ Ľ℄¸ ľ℄µ ¹ ± ¸ ÓÑÔÖ Ñ ¾´ Ľ℄¸Ä¾µº 4.20. Empaquetamiento de listas Ejercicio 4.22 Definir la relación ÑÔ ÕÙ Ø ´·Ä½¸¹Ä¾µ que se verifique si ľ es la lista obtenida sustituyendo cada sucesión de un elemento de Ľ por la lista formada por dicha sucesión. Por ejemplo, ¹ ÑÔ ÕÙ Ø ´ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ℄¸Äµº Ä ℄¸ ¸ ℄¸ ¸ ¸ ℄¸ ¸ ℄¸ ¸ ¸ ℄℄ Solución: La definición de ÑÔ ÕÙ Ø es ÑÔ ÕÙ Ø ´ ℄¸ ℄µº ÑÔ ÕÙ Ø ´ Ľ℄¸ ľ Ä¿℄µ ¹ ÑÔ ÕÙ Ø ÙÜ´ ¸Ä½¸Ä ¸Ä¾µ¸ ÑÔ ÕÙ Ø ´Ä ¸Ä¿µº
  • 69. 4.21. Codificación por longitud 69 La relación ÑÔ ÕÙ Ø ÙÜ´ ¸Ä½¸Ä ¸Ä¾µ se verifica si Ä es la lista obtenida eli- minando en Ľ todas las ocurrencias iniciales de y ľ es la lista formada por y las ocurrencias iniciales de en Ľ; por ejemplo, ¹ ÑÔ ÕÙ Ø ÙÜ´ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ℄¸Ä ¸Ä¾µº Ä ¸ ¸ ¸ ¸ ℄ ľ ¸ ¸ ℄ La definición de ÑÔ ÕÙ Ø ÙÜ es ÑÔ ÕÙ Ø ÙÜ´ ¸ ℄¸ ℄¸ ℄µº ÑÔ ÕÙ Ø ÙÜ´ ¸ Ľ℄¸Ä ¸ ľ℄µ ¹ ÑÔ ÕÙ Ø ÙÜ´ ¸Ä½¸Ä ¸Ä¾µº ÑÔ ÕÙ Ø ÙÜ´ ¸ Ľ℄¸ Ľ℄¸ ℄µ ¹ º La definición anterior puede transformarse introduciendo corte en ÑÔ ÕÙ Ø ÙÜ ¾´ ¸ ℄¸ ℄¸ ℄µº ÑÔ ÕÙ Ø ÙÜ ¾´ ¸ Ľ℄¸Ä ¸ ľ℄µ ¹ ¸ ÑÔ ÕÙ Ø ÙÜ ¾´ ¸Ä½¸Ä ¸Ä¾µº ÑÔ ÕÙ Ø ÙÜ ¾´ ¸ Ľ℄¸ Ľ℄¸ ℄µº 4.21. Codificación por longitud Ejercicio 4.23 Definir la relación Ó ´·Ä½¸¹Ä¾µ que se verifique si ľ es la codifica- ción por longitud de la lista Ľ; es decir, las sucesiones de un mismo elemento de Ľ se codifican por términos de la forma ƹ donde Æ es la longitud de la sucesión. Por ejemplo, ¹ Ó ´ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ℄¸Äµº Ä ½¹ ¸ ¾¹ ¸ ¿¹ ¸ ¾¹ ¸ ¿¹ ℄ (Indicación: Usar la relación ÑÔ ÕÙ Ø (4.20)). Solución: La definición de Ó es Ó ´Ä½¸Ä¾µ ¹ ÑÔ ÕÙ Ø ´Ä½¸Äµ¸ Ó Ùܴĸľµº
  • 70. 70 Capítulo 4. Retroceso, corte y negación La relación Ó ÙÜ´·Ä½¸¹Ä¾µ se verifica si, suponiendo que Ľ es una lista de la forma ½¸ººº¸ ½℄¸ººº¸ Ѹºººº Ñ℄℄), ľ es la lista ƽ¹ ½¸ºººÆѹ Ñ℄ donde Æ es la longitud de ¸ººº¸ ℄. Por ejemplo. ¹ Ó ÙÜ´ ℄¸ ¸ ℄¸ ¸ ¸ ℄¸ ¸ ℄¸ ¸ ¸ ℄℄¸Äµº Ä ½¹ ¸ ¾¹ ¸ ¿¹ ¸ ¾¹ ¸ ¿¹ ℄ La definición de Ó ÙÜ es Ó ÙÜ´ ℄¸ ℄µº Ó ÙÜ´ ℄ Ľ℄¸ ƹ ľ℄µ ¹ Ð Ò Ø ´ ℄¸Æµ¸ Ó ÙܴĽ¸Ä¾µº 4.22. Codificación reducida por longitud Ejercicio 4.24 Definir la relación Ó Ö Ù ´·Ä½¸¹Ä¾µ que se verifique si ľ es la codificación reducida por longitud de la lista Ľ; es decir, las sucesiones de un mismo elemento de Ľ se codifican por términos de la forma ƹ donde Æ es la longitud de la sucesión cuando Æ es mayor que 1 y por cuando Æ es igual a 1. Por ejemplo, ¹ Ó Ö Ù ´ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ℄¸Äµº Ä ¸ ¾¹ ¸ ¿¹ ¸ ¸ ¿¹ ℄ (Indicación: Usar la relación Ó (4.21)). Solución: La definición de Ó Ö Ù es Ó Ö Ù ´Ä½¸Ä¾µ ¹ Ó ´Ä½¸Äµ¸ Ó Ö Ù Ùܴĸľµº La relación Ó Ö Ù ÙÜ´·Ä½¸¹Ä¾µ se verifica si ľ es la lista obtenida transformando los elementos de Ľ de la forma ½¹ por y dejando los restantes elemen- tos de la misma forma (se supone que Ľ es una lista de la forma ƽ¹ ½¸ººº¸Æѹ Ñ℄). Por ejemplo, ¹ Ó Ö Ù ÙÜ´ ½¹ ¸¾¹ ¸¿¹ ¸½¹ ¸¿¹ ℄¸Äµº Ä ¸ ¾¹ ¸ ¿¹ ¸ ¸ ¿¹ ℄ La definición de Ó Ö Ù ÙÜ es
  • 71. 4.23. Decodificación de lista 71 Ó Ö Ù ÙÜ´ ℄¸ ℄µº Ó Ö Ù ÙÜ´ ½¹ Ľ℄¸ ľ℄µ ¹ Ó Ö Ù ÙܴĽ¸Ä¾µº Ó Ö Ù ÙÜ´ ƹ Ľ℄¸ ƹ ľ℄µ ¹ Æ ½¸ Ó Ö Ù ÙܴĽ¸Ä¾µº La definición anterior puede simplificarse introduciendo un corte: Ó Ö Ù ÙÜ´ ℄¸ ℄µº Ó Ö Ù ÙÜ´ ½¹ Ľ℄¸ ľ℄µ ¹ ¸ Ó Ö Ù ÙܴĽ¸Ä¾µº Ó Ö Ù ÙÜ´ ƹ Ľ℄¸ ƹ ľ℄µ ¹ ± Æ ½¸ Ó Ö Ù ÙܴĽ¸Ä¾µº 4.23. Decodificación de lista Ejercicio 4.25 Definir la relación Ó ´·Ä½¸¹Ä¾µ que, dada la lista Ľ, devuelve la lista ľ cuya codificación reducida por longitud es Ľ. Por ejemplo, ¹ Ó ´ ¸¾¹ ¸¿¹ ¸ ¸¿¹ ℄¸Äµº Ä ¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ℄ Solución: La definición de Ó es Ó ´ ℄¸ ℄µº Ó ´ ½¹ Ľ℄¸ ľ℄µ ¹ ¸ Ó ´Ä½¸Ä¾µº Ó ´ ƹ Ľ℄¸ ľ℄µ ¹ ± Æ ½¸ ¸ ƽ × Æ ¹ ½¸ Ó ´ ƽ¹ Ľ℄¸Ä¾µº Ó ´ Ľ℄¸ ľ℄µ ¹ ± × Ø Ñ Ó Ó ´Ä½¸Ä¾µº
  • 72. 72 Capítulo 4. Retroceso, corte y negación 4.24. Codificación reducida directa Ejercicio 4.26 Definir la relación Ó Ö Ø ´·Ä½¸¹Ä¾µ que se verifica si ľ es la codificación reducida de Ľ (es decir, las sucesiones de un mismo elemento de Ľ se codifican por términos de la forma ƹ donde Æ es la longitud de la sucesión cuando Æ es mayor que 1 y por cuando Æ es igual a 1), pero en su definición no se crean listas de elementos repetidos como en la definición de Ó Ö Ù . Por ejemplo, ¹ Ó Ö Ø ´ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ℄¸Äµº Ä ¸ ¾¹ ¸ ¿¹ ¸ ¸ ¿¹ ℄ Solución: La definición de Ó Ö Ø es Ó Ö Ø ´ ℄¸ ℄µº Ó Ö Ø ´ Ľ℄¸ Ì Ä¾℄µ ¹ Ù ÒØ Ý Ö ×ØÓ´ ¸ Ľ℄¸Æ¸Ä¿µ¸ Ø ÖÑ ÒӴƸ ¸Ìµ¸ Ó Ö Ø ´Ä¿¸Ä¾µº La relación Ù ÒØ Ý Ö ×ØÓ´· ¸·Ä½¸¹Æ¸¹Ä¾µ se verifica si Æ es el número de veces que aparece en la cabeza de la lista Ľ y ľ es el resto de la lista Ľ cuando se le quita la sucesión de elementos de su cabeza. Por ejemplo, ¹ Ù ÒØ Ý Ö ×ØÓ´ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ℄¸Æ¸Äµº Æ ¾ Ä ¸ ¸ ¸ ¸ ¸ ¸ ℄ La definición de Ù ÒØ Ý Ö ×ØÓ es Ù ÒØ Ý Ö ×ØÓ´ ¸ Ľ℄¸Æ¸Ä¾µ ¹ Ù ÒØ Ý Ö ×ØÓ´ ¸Ä½¸Å¸Ä¾µ¸ Æ × Å·½º Ù ÒØ Ý Ö ×ØÓ´ ¸ Ä℄¸¼¸ Ä℄µ ¹ º Ù ÒØ Ý Ö ×ØÓ´ ¸ ℄¸¼¸ ℄µº La definición anterior puede simplificarse con cortes: Ù ÒØ Ý Ö ×ØÓ ½´ ¸ Ľ℄¸Æ¸Ä¾µ ¹ ¸ Ù ÒØ Ý Ö ×ØÓ ½´ ¸Ä½¸Å¸Ä¾µ¸ Æ × Å·½º Ù ÒØ Ý Ö ×ØÓ ½´ ¸Ä¸¼¸Äµº
  • 73. 4.25. Cota superior de una lista de números 73 La relación Ø ÖÑ ÒÓ´·Æ¸· ¸¹Ìµ se verifica si Ì es el término correspondiente al nú- mero Æ y al elemento (es decir, Ì es si Æ es 1 y es ƹ en otro caso). Por ejemplo, ¹ Ø ÖÑ ÒÓ´½¸ ¸Ìµº Ì ¹ Ø ÖÑ ÒÓ´¾¸ ¸Ìµº Ì ¾¹ La definición de Ø ÖÑ ÒÓ es Ø ÖÑ ÒÓ´½¸ ¸ µº Ø ÖÑ ÒӴƸ ¸Æ¹ µ ¹ Æ ½º La definición anterior puede simplificarse con cortes: Ø ÖÑ ÒÓ ½´½¸ ¸ µ ¹ º Ø ÖÑ ÒÓ ½´Æ¸ ¸Æ¹ µº ± ¹ Æ ½º 4.25. Cota superior de una lista de números Ejercicio 4.27 Definir la relación ÓØ ×ÙÔ Ö ÓÖ´·Ä¸·Æµ que se verifique si Æ es una cota superior de Ä (es decir, todos los elementos de Ä son menores o iguales que Æ). Por ejemplo, ¹ ÓØ ×ÙÔ Ö ÓÖ´ ½¸ ¸¿℄¸ µº × ¹ ÓØ ×ÙÔ Ö ÓÖ´ ½¸ ¸¿℄¸ µº × ¹ ÓØ ×ÙÔ Ö ÓÖ´ ½¸ ¸¿℄¸ µº ÆÓ Dar dos definiciones, una recursiva y la otra no recursiva. Solución: La definición recursiva de ÓØ ×ÙÔ Ö ÓÖ es ÓØ ×ÙÔ Ö ÓÖ ½´ ℄¸ µº ÓØ ×ÙÔ Ö ÓÖ ½´ Ä℄¸Æµ ¹ Ƹ ÓØ ×ÙÔ Ö ÓÖ ½´Ä¸Æµº La definición no recursiva de ÓØ ×ÙÔ Ö ÓÖ es
  • 74. 74 Capítulo 4. Retroceso, corte y negación ÓØ ×ÙÔ Ö ÓÖ ¾´Ä¸Æµ ¹ · ´Ñ Ñ Ö´ ¸Äµ¸ Ƶº Mediante el siguiente ejemplo se compara la eficiencia de las dos definiciones ¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¼¸ ĵ¸ Ø Ñ ´ ÓØ ×ÙÔ Ö ÓÖ ½´ ĸ½¼¼¼¼µµº ± ¾¼¸¼¼½ Ò Ö Ò ×¸ ¼º¼¼ ÈÍ Ò ¼º¼½ × ÓÒ × ´¼± È͸ ÁÒ Ò Ø Ä Ô×µ ¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¼¸ ĵ¸ Ø Ñ ´ ÓØ ×ÙÔ Ö ÓÖ ¾´ ĸ½¼¼¼¼µµº ± ¿¼¸¼¼¾ Ò Ö Ò ×¸ ¼º¼½ ÈÍ Ò ¼º¼½ × ÓÒ × ´ ¿± È͸ ¿¼¼¼¾¼¼ Ä Ô×µ ¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¼¼¸ ĵ¸ Ø Ñ ´ ÓØ ×ÙÔ Ö ÓÖ ½´ ĸ½¼¼¼¼¼µµº ± ¾¼¼¸¼¼½ Ò Ö Ò ×¸ ¼º¼ ÈÍ Ò ¼º¼ × ÓÒ × ´ ± È͸ ¾ ½ Ä Ô×µ ¹ ÒÙÑÐ ×Ø´½¸½¼¼¼¼¼¸ ĵ¸ Ø Ñ ´ ÓØ ×ÙÔ Ö ÓÖ ¾´ ĸ½¼¼¼¼¼µµº ± ¿¼¼¸¼¼¾ Ò Ö Ò ×¸ ¼º¼ ÈÍ Ò ¼º¼ × ÓÒ × ´½¼ ± È͸ ¿ ¼¼¾ Ä Ô×µ 4.26. Dientes de sierra Ejercicio 4.28 Definir la relación ÒØ ´·Ä¸¹Ä½¸¹ ¸¹Ä¾µ que se verifique si Ä se compone de una lista Ľ de números estrictamente creciente hasta un cierto número que llamaremos cima, de la cima y de una lista ľ de números estrictamente decreciente. Las listas tiene Ľ y ľ tienen que ser no vacías y la cima es el mayor elemento de Ä. Por ejemplo, ¹ ÒØ ´ ½¸¾¸ ¸ ¸¿¸½℄¸Ä½¸ ¸Ä¾µº Ľ ½¸ ¾℄ ľ ¸ ¿¸ ½℄ ÆÓ ¹ ÒØ ´ ½¸¾¸ ℄¸Ä½¸ ¸Ä¾µº ÆÓ Las listas que poseen esta forma de descomposición se llaman dientes. Solución: La definición de ÒØ es ÒØ ´Ä¸ ½ Ľ℄¸ ¸ ¾ ľ℄µ ¹ ÔÔ Ò ´ ½ Ľ℄¸ ¸ ¾ ľ℄¸Äµ¸ Ö ÒØ ´ ½ Ľ℄µ¸ Ð ×Ø´ ½ Ľ℄¸ µ¸ ¸ Ö ÒØ ´ ¸ ¾ ľ℄µº La relación Ö ÒØ ´·Äµ se verifica si la lista de números Ä es estrictamente creciente.
  • 75. 4.26. Dientes de sierra 75 Ö ÒØ ´ ℄µº Ö ÒØ ´ ¸ Ä℄µ ¹ ¸ Ö ÒØ ´ Ä℄µº La relación Ö ÒØ ´·Äµ se verifica si la lista de números Ä es estrictamente decre- ciente. Ö ÒØ ´ ℄µº Ö ÒØ ´ ¸ Ä℄µ ¹ ¸ Ö ÒØ ´ Ä℄µº Ejercicio 4.29 Una sierra es una lista numérica compuesta por la yuxtaposición de dientes. Nótese que dos dientes consecutivos deben compartir un elemento. Por ejemplo [1,2,1,3,1] es una sierra compuesta por los dientes [1,2,1] y [1,3,1], pero [1,2,1,1,3,1] no es una sierra. Definir la relación ÒØ × × ÖÖ ´·Ä½¸ ľµ que se verifique si Ľ es una sierra y ľ es la lista de los dientes de Ľ. Por ejemplo, ¹ ÒØ × × ÖÖ ´ ½¸¾¸½¸¿¸½℄¸Äµº Ä ½¸ ¾¸ ½℄¸ ½¸ ¿¸ ½℄℄ ÆÓ ¹ ÒØ × × ÖÖ ´ ½¸¾¸½¸½¸¿¸½℄¸Äµº ÆÓ Solución: La definición de ÒØ × × ÖÖ es ÒØ × × ÖÖ ´Ä¸ Ä℄µ ¹ ÒØ ´Ä¸ ¸ ¸ µ¸ º ÒØ × × ÖÖ ´Ä¸ Ľ Ê℄µ ¹ ÔÔ Ò ´Ä½¸Ä¾¸Äµ¸ ÒØ ´Ä½¸ ¸ ¸ µ¸ Ð ×شĽ¸ µ¸ ÒØ × × ÖÖ ´ ľ℄¸Êµº El corte aumenta la eficiencia como se aprecia en el siguiente ejemplo con la definición con corte ¹ ÒÙÑÐ ×Ø´½¸½¼¼¸ Ľµ¸ ÔÔ Ò ´ Ľ¸ ½ Ľ℄¸ ľµ¸ Ø Ñ ´ ÒØ × × ÖÖ ´ ľ¸Äµµº ± ½¸ Ò Ö Ò ×¸ ¼º¿ ÈÍ Ò ¼º¿ × ÓÒ × ´ ± È͸ ½ ½ ¿¼¼ Ä Ô×µ ÆÓ
  • 76. 76 Capítulo 4. Retroceso, corte y negación y el mismo ejemplo con la definición sin el corte ¹ ÒÙÑÐ ×Ø´½¸½¼¼¸ Ľµ¸ ÔÔ Ò ´ Ľ¸ ½ Ľ℄¸ ľµ¸ Ø Ñ ´ ÒØ × × ÖÖ ´ ľ¸Äµµº ± ¿¸½ ¸¾ ¼ Ò Ö Ò ×¸ ¼º ¾ ÈÍ Ò ¼º × ÓÒ × ´ ± È͸ ¿ ¾¼ Ä Ô×µ ÆÓ
  • 77. Capítulo 5 Programación lógica de segundo orden 5.1. Determinación de un número por su factorial Ejercicio 5.1 Definir la relación ØÓÖ Ð ÒÚ Ö×Ó´· ¸¹Æµ que se verifique si es el facto- rial de Æ. Por ejemplo, ¹ ØÓÖ Ð ÒÚ Ö×Ó´½¾¼¸Æµº Æ ÆÓ ¹ ØÓÖ Ð ÒÚ Ö×Ó´ ¼¸Æµº ÆÓ Solución: Presentamos tres definiciones y comparamos su eficicencia. La primera definición usa un acumulador para almacenar los candidatos de la so- lución. ØÓÖ Ð ÒÚ Ö×Ó ½´ ¸Æµ ¹ ØÓÖ Ð ÒÚ Ö×Ó ½ ÙÜ´ ¸½¸Æµº La relación ØÓÖ Ð ÒÚ Ö×Ó ½ ÙÜ´· ¸· ¸¹Æµ se verifica si Æ es el menor número mayor o igual que cuyo factorial es . ØÓÖ Ð ÒÚ Ö×Ó ½ ÙÜ´ ¸ ¸ µ ¹ ØÓÖ Ð´ ¸ µº ØÓÖ Ð ÒÚ Ö×Ó ½ ÙÜ´ ¸ ¸Æµ ¹ ØÓÖ Ð´ ¸Æ½µ¸ ƽ ¸ ½ × · ½¸ ØÓÖ Ð ÒÚ Ö×Ó ½ ÙÜ´ ¸ ½¸Æµº 77
  • 78. 78 Capítulo 5. Programación lógica de segundo orden La relación ØÓÖ Ð´·Æ¸¹ µ se verifica si es el factorial de Æ. ØÓÖ Ð´½¸½µº ØÓÖ Ð´Æ¸ µ ¹ Æ ½¸ ƽ × Æ¹½¸ ØÓÖ Ð´Æ½¸ ½µ¸ × ½ ¶ ƺ La segunda definición se diferencia de la anterior en que almacena en memoria los factoriales de los candidatos considerados. ØÓÖ Ð ÒÚ Ö×Ó ¾´ ¸Æµ ¹ ØÓÖ Ð ÒÚ Ö×Ó ¾ ÙÜ´ ¸½¸Æµº La relación ØÓÖ Ð ÒÚ Ö×Ó ¾ ÙÜ´· ¸· ¸¹Æµ se verifica si Æ es el menor número mayor o igual que cuyo factorial (con memoria) es . ØÓÖ Ð ÒÚ Ö×Ó ¾ ÙÜ´ ¸ ¸ µ ¹ ØÓÖ Ð ÓÒ Ñ ÑÓÖ ´ ¸ µº ØÓÖ Ð ÒÚ Ö×Ó ¾ ÙÜ´ ¸ ¸Æµ ¹ ØÓÖ Ð ÓÒ Ñ ÑÓÖ ´ ¸Æ½µ¸ ƽ ¸ ½ × · ½¸ ØÓÖ Ð ÒÚ Ö×Ó ¾ ÙÜ´ ¸ ½¸Æµº La relación ØÓÖ Ð ÓÒ Ñ ÑÓÖ ´·Æ¸¹ µ se verifica si es el factorial de Æ. Además almacena en la base de datos internas los factoriales calculados. ¹ ÝÒ Ñ ØÓÖ Ð ÓÒ Ñ ÑÓÖ »¾º ØÓÖ Ð ÓÒ Ñ ÑÓÖ ´½¸½µº ØÓÖ Ð ÓÒ Ñ ÑÓÖ ´Æ¸ µ ¹ Æ ½¸ ƽ × Æ¹½¸ ØÓÖ Ð ÓÒ Ñ ÑÓÖ ´Æ½¸ ½µ¸ × ½ ¶ Ƹ ×× ÖØ ´ ØÓÖ Ð ÓÒ Ñ ÑÓÖ ´Æ¸ µ ¹ µº En la tercera definición se utiliza dos acumuladores para almacenar el candidato y el factorial del candidato anterior.
  • 79. 5.2. Árbol de resolución y definiciones equivalentes 79 ØÓÖ Ð ÒÚ Ö×Ó ¿´ ¸Æµ ¹ ØÓÖ Ð ÒÚ Ö×Ó ÙÜ ¿´ ¸½¸½¸Æµº La relación ØÓÖ Ð ÒÚ Ö×Ó ÙÜ ¿´· ¸· ¸· ¸¹Æµ se verifica si X = A ∗ (A + 1) ∗ · · · ∗ N (de forma que si A = 1 entonces X = N!). ØÓÖ Ð ÒÚ Ö×Ó ÙÜ ¿´ ¸ ¸ ¸ µ ¹ ¶ º ØÓÖ Ð ÒÚ Ö×Ó ÙÜ ¿´ ¸ ¸ ¸Æµ ¹ ½ × ¶ ¸ ½ ¸ ¸ ½ × · ½¸ ØÓÖ Ð ÒÚ Ö×Ó ÙÜ ¿´ ¸ ½¸ ½¸Æµº En los siguientes ejemplos se compara la eficiencia. ¹ ØÓÖ Ð´¾ ¼¸ µ¸ Ø Ñ ´ ØÓÖ Ð ÒÚ Ö×Ó ½´ ¸ Ƶµº ± ¾ ¸ ¼½ Ò Ö Ò ×¸ ¼º¾ ÈÍ Ò ¼º¿¼ × ÓÒ × ´ ± È͸ ½¼ Ä Ô×µ ¹ ØÓÖ Ð´¾ ¼¸ µ¸ Ø Ñ ´ ØÓÖ Ð ÒÚ Ö×Ó ¾´ ¸ Ƶµº ± ¿¸ Ò Ö Ò ×¸ ¼º¼¼ ÈÍ Ò ¼º¼¼ × ÓÒ × ´¼± È͸ ÁÒ Ò Ø Ä Ô×µ ¹ ØÓÖ Ð´¾ ¼¸ µ¸ Ø Ñ ´ ØÓÖ Ð ÒÚ Ö×Ó ¿´ ¸ Ƶµº ± ½¸¾ Ò Ö Ò ×¸ ¼º¼¼ ÈÍ Ò ¼º¼½ × ÓÒ × ´¼± È͸ ÁÒ Ò Ø Ä Ô×µ ¹ ØÓÖ Ð´½¼¼¼¸ µ¸ Ø Ñ ´ ØÓÖ Ð ÒÚ Ö×Ó ½´ ¸ Ƶµº ± ¿¾½¸ ¾¾ Ò Ö Ò ×¸ ¼º ÈÍ Ò ¼º × ÓÒ × ´ ± È͸ ¿ Ä Ô×µ ÊÊÇÊ ÇÙØ Ó ÐÓ Ð ×Ø ¹ ØÓÖ Ð´½¼¼¼¸ µ¸ Ø Ñ ´ ØÓÖ Ð ÒÚ Ö×Ó ¾´ ¸ Ƶµº ± ½¿¸ Ò Ö Ò ×¸ ¼º¼ ÈÍ Ò ¼º¼ × ÓÒ × ´ ± È͸ ½ ½ Ä Ô×µ ¹ ØÓÖ Ð´½¼¼¼¸ µ¸ Ø Ñ ´ ØÓÖ Ð ÒÚ Ö×Ó ¿´ ¸ Ƶµº ± ¸ Ò Ö Ò ×¸ ¼º¼¿ ÈÍ Ò ¼º¼¿ × ÓÒ × ´½¼ ± È͸ ½ ¼¼ Ä Ô×µ 5.2. Árbol de resolución y definiciones equivalentes Ejercicio 5.2 Se piden los siguientes apartados:
  • 80. 80 Capítulo 5. Programación lógica de segundo orden 1. Dibujar el árbol de resolución correspondiente al programa Ô´ ℄¸ ℄µº Ô´ ℄¸ ℄µ ¹ ¸ ¸ Ô´ ¸ µº Ô´ ℄¸ µ ¹ Ô´ ¸ µº y al objetivo ¹ Ô´ ¸½¸ ℄¸ µº 2. Explicar la relación que hay entre Ľ y ľ cuando se verifica ԴĽ¸Ä¾µ. 3. Dar una definición no recursiva del predicado ԴĽ¸Ä¾µ. Solución: 1. El árbol de resolución está en la figura 5.1 (página 81). 2. la relación ԴĽ¸Ä¾µ se verifica si ľ es la lista de los elementos de Ľ que son mayores que 4. 3. Una definición no recursiva de Ô es Ô½´Ä½¸Ä¾µ ¹ Ò Ðд ¸´Ñ Ñ Ö´ ¸Ä½µ¸ µ¸Ä¾µº 5.3. Nodos de una generación en una lista de árboles bi- narios Ejercicio 5.3 Un árbol binario es vacío o consta de tres partes: la raíz (que debe de ser un número positivo), el subárbol izquierdo (que debe ser un árbol binario) y el subárbol derecho (que debe ser un árbol binario). Usaremos la siguiente representación Ò Ð representa el árbol vacío Ø´Á¸Ê¸ µ representa el árbol de la raíz Ê, subárbol izquierdo Á y subárbol derecho . Por ejemplo, Ø´Ø´Ò Ð¸¾¸Ò е¸½¸Ø´Ø´Ò и ¸Ò е¸¿¸Ò еµ representa el árbol
  • 81. 5.3. Nodos de una generación en una lista de árboles binarios 81 5 > 4, !, p([1,6],B1) !, p([1,6],B1) 2 {X1/5, A1/[1,6], B0/[5|B1]} 2 {X3/1, A3/[6], B1/[1|B3]} 3 {X3/1, A3/[6], B3/B1} p([6],B1)1 > 4, !, p([6],B3) 2 {X4/6, A4/[], B1/[6|B4]} 6 > 4, !, p([],B4) !, p([],B4) p([5,1,6],B0) 3 Fallo p([],B4) 1 {B4/[]} B = B0 = [5|B1] = [5,6|B4] = [5,6] Figura 5.1: Árbol de resolución
  • 82. 82 Capítulo 5. Programación lógica de segundo orden ½ » ¾ ¿ » Definir la relación Ò Ö Ò´·Æ¸·Ä½¸¹Ä¾µ que se verifique si ľ es la lista de nodos de la generación Æ de la lista de árboles Ľ. Por ejemplo, ¹ Ò Ö Ò´¼¸ Ø´Ø´Ò Ð¸¾¸Ò е¸¿¸Ò е¸Ø´Ò и ¸Ø´Ò и ¸Ò еµ℄¸Äµº Ä ¿¸ ℄ ¹ Ò Ö Ò´½¸ Ø´Ø´Ò Ð¸¾¸Ò е¸¿¸Ò е¸Ø´Ò и ¸Ø´Ò и ¸Ò еµ℄¸Äµº Ä ¾¸ ℄ ¹ Ò Ö Ò´¾¸ Ø´Ø´Ò Ð¸¾¸Ò е¸¿¸Ò е¸Ø´Ò и ¸Ø´Ò и ¸Ò еµ℄¸Äµº Ä ℄ Solución: La definición de Ò Ö Ò es Ò Ö Ò´¼¸Ä¸ µ ¹ Ò ÐÐ´Ê¸Ñ Ñ Ö´Ø´ ¸Ê¸ µ¸Äµ¸ µº Ò Ö Ò´Æ¸Ä¸ µ ¹ Æ ¼¸ Ð Ñ Ò Ö ×´Ä¸Ä½µ¸ ƽ × Æ¹½¸ Ò Ö Ò´Æ½¸Ä½¸ µº donde Ð Ñ Ò Ö ×´·Ä½¸¹Ä¾µ se verifica si ľ es la lista de los árboles obtenidos de la lista de árboles Ľ eliminando sus raices. Por ejemplo, ¹ Ð Ñ Ò Ö ×´ Ø´Ø´Ò Ð¸¾¸Ò е¸¿¸Ò е¸Ø´Ò и ¸Ø´Ò и ¸Ò еµ℄¸Äµº Ä Ø´Ò Ð¸ ¾¸ Ò Ðµ¸ Ò Ð¸ Ò Ð¸ Ø´Ò Ð¸ ¸ Ò Ðµ℄ La definición de Ð Ñ Ò Ö × es Ð Ñ Ò Ö ×´ ℄¸ ℄µº Ð Ñ Ò Ö ×´ Ò Ð Ä½℄¸Ä¾µ ¹ Ð Ñ Ò Ö ×´Ä½¸Ä¾µº Ð Ñ Ò Ö ×´ Ø´Á¸ ¸ µ Ľ℄¸ Á¸ ľ℄µ ¹ Ð Ñ Ò Ö ×´Ä½¸Ä¾µº
  • 83. 5.4. Lista de elementos únicos 83 5.4. Lista de elementos únicos Ejercicio 5.4 Definir la relación Ò Ó×´·Ä½¸¹Ä¾µ que se verifique si ľ es la lista de los ele- mentos que ocurren solamente una vez en la lista Ľ. Por ejemplo, ¹ Ò Ó×´ ¾¸ ¸¿¸¾℄¸Äµº Ä ¸ ¿℄ ¹ Ò Ó×´ ¾¸ ¸ ¸¾℄¸Äµº Ä ℄ Solución: La definición de Ò Ó× es Ò Ó״Ľ¸Ä¾µ ¹ Ò Ðд ¸ × Ò Ó´ ¸Ä½µ¸Ä¾µº donde la relación × Ò Ó´ ¸·Äµ se verifica si es un elemento que ocurre solamente una vez en la lista Ä. Por ejemplo, ¹ × Ò Ó´ ¸ ¾¸ ¸¿¸¾℄µº ¿ ÆÓ × Ò Ó´ ¸Äµ ¹ × Ð Ø´ ¸Ä¸Êµ¸ ÒÓØ´Ñ Ñ Ö ´ ¸Êµµº 5.5. Elementos más frecuentes de una lista Ejercicio 5.5 Definir el predicado ÔÓÔÙÐ Ö ×´Ä½¸Ä¾µ que se verifique si ľ es la lista de los elementos de Ľ que aparecen el mayor número de veces. Por ejemplo, ¹ ÔÓÔÙÐ Ö ×´ ÖÓ× ¸ Ù Ò¸ Ú ¸Ñ ÒÙ¸ÖÓ× ¸ÒÙÖ ¸ Ú ℄¸Äµº Ä Ú ¸ÖÓ× ℄ Solución: La definición de ÔÓÔÙÐ Ö × es ÔÓÔÙÐ Ö ×´Ä½¸Ä¾µ ¹ × ØÓ ´ ¸ ´´Ñ Ñ Ö´ ¸Ä½µ¸ Ù ÒØ ´ ¸Ä½¸Æ½µ¸
  • 84. 84 Capítulo 5. Programación lógica de segundo orden ÒÓØ´´Ñ Ñ Ö´ ¸Ä½µ¸ Ù ÒØ ´ ¸Ä½¸Æ¾µ¸ ƽ ƾµµµµ¸ ľµº La relación Ù ÒØ ´· ¸·Ä¸¹Æµ se verifica si Æ es el número de veces que aparece el ele- mento en la lista Ä. Por ejemplo, ¹ Ù ÒØ ´ ¸ Ö¸ ¸ ¸Ñ¸Ö¸Ò¸ ℄¸Æµº Æ ¾ La definición de Ù ÒØ es Ù ÒØ ´ ¸ ℄¸¼µº Ù ÒØ ´ ¸ Ä℄¸Æµ ¹ ¸ ¸ Ù ÒØ ´ ¸Ä¸Åµ¸ Æ × Å·½º Ù ÒØ ´ ¸ Ä℄¸Æµ ¹ ± ¸ Ù ÒØ ´ ¸Ä¸Æµº 5.6. Problema 3n + 1 Ejercicio 5.6 Consideremos la función siguiente definida sobre los números naturales: f (x) = 3x + 1, si x es impar; x/2, si x es par se pide: 1. Definir la relación ×Ù × Ò´· ¸ ĵ que se verifique si Ä es la lista de los elementos X, f (X), f (f (X)), . . . , f n(X) tal que f n(X) = 1. Por ejemplo, ¹ ×Ù × Ò´¿¸Äµº Ä ¿¸ ½¼¸ ¸ ½ ¸ ¸ ¸ ¾¸ ½℄ Ä se llama la sucesión generada por Æ. 2. Definir la relación ÐÓÒ ØÙ ×´· ¸ ĵ que se verifica si Ä la lista de pares ¹Æ donde es un número de 1 a y Æ es la longitud de sucesión generada por . Por ejemplo,
  • 85. 5.6. Problema 3n + 1 85 ¹ ÐÓÒ ØÙ ×´ ¸Äµº Ä ½¹½¸ ¾¹¾¸ ¿¹ ¸ ¹¿¸ ¹ ℄ 3. Definir la relación ÐÓÒ ØÙ Ñ Ü´· ¸ ȵ que se verifica si È es un par de la forma ¹Æ donde es un número entre 1 y tal que la longitud de la sucesión generada por es la más larga de las sucesiones generadas por 1,2,. . . , y Æ es la longitud de dicha sucesión. Por ejemplo, ¹ ÐÓÒ ØÙ Ñ Ü´½¼¸Äµº Ä ¹¾¼ 4. Definir Ñ ÒÓÖ ÕÙ Ò Ö Ñ ÝÓÖ´·Æ¸¹Åµ que se verifique si Å es el menor número na- tural tal que la longitud de la sucesión generada por Å es mayor que Æ. Por ejemplo, ¹ Ñ ÒÓÖ ÕÙ Ò Ö Ñ ÝÓÖ´½¼¼¸Æµº Æ ¾ Solución: La relación ´· ¸¹ µ se verifica si ´ µ. ´ ¸ µ ¹ ÑÓ ¾ ¼¸ ¸ × »¾º ´ ¸ µ ¹ ± ÑÓ ¾ » ¼¸ × ¿¶ ·½º Solución del apartado 1: La definición de ×Ù × Ò es ×Ù × Ò´½¸ ½℄µ ¹ º ×Ù × Ò´ ¸ Ä℄µ ¹ ± » ½¸ ´ ¸ µ¸ ×Ù × Ò´ ¸Äµº Solución del apartado 2: Presentamos dos definiciones de ÐÓÒ ØÙ ×. La primera definición de ÐÓÒ ØÙ × es recursiva. ÐÓÒ ØÙ ×´ ¸Äµ ¹ ÐÓÒ ØÙ × ÙÜ´ ¸Ä½µ¸ Ö Ú Ö× ´Ä½¸Äµº ÐÓÒ ØÙ × ÙÜ´½¸ ½¹Æ℄µ ¹ ¸ ×Ù × Ò´½¸Äµ¸