Ejercicios de programación declarativa con Prolog

Documentos relacionados
a 1 = a 2 = a 3 = = a n 1 = 0 a n = C 0 (1+i) n

Dom(R 1 ) = {1;2} Rang(R 1 ) = {1;2}

C 0 = C n (1 r) C 0 = C n (1 d n) d 1 d n. i =

i (m) J (m) = m i (m) i (m) = J(m) i (m) = (1+i) 1 m 1 (m) V (m) 0 = C 1 (m) = 1 Ä 1+i (m)ä nm

ÁÒ Ò Ö Ð ½ º Ä Â Ù ½ ½ ½ º½ºÂ Ù ¹ Ð ÀÓÑ Ö º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º ½ ½ º¾ºÄ Ê Ð ÓÒ Â Ù º º º º º º º

Ð ØÙ Ó Ø ÖÖ ÑÓØÓ Ý ÓÒ Ñ ÕÙ ÔÖÓÔ Ò ÒØÖÓ Ý Ë ÑÓÐÓ Ð ÙÔ Ö Ð Ì ÖÖ º ÍÒ Ø ÖÖ ÑÓØÓ Ò ÓÑÓ ÙÒ Ú ÒØÓ Ò ØÙÖ Ð ÒØÖÓ Ó Ö Ì ÖÖ ÕÙ Ñ Ø Ò Ö Ø Ò Ò Ò ÓÖÑ ÓÒ º Ì Ð ÓÑÓ

º ÒØÓÒ Ó Ö ÖÖ ØÓ ÁÒ Ø ØÙØÓ ØÖÓÒÓÑ ¹ÍÆ Å ¼¼ ½ Ä Ñ Ò ÓÒ Ö Ð Ø Ú Ð Ì ÖÖ ÄÙÒ Ý ËÓÐ Ö Ø ÖÓ ÔÙ Ø ÖÑ Ò Ö Ð Ø Ò Ö Ð Ø Ú Ð ËÓÐ Ð Ì ÖÖ Ð Ò Ò Ó Ô Ö ÖÖÓÐÐ Ö ÙÒ Ø

e = 1, (40) C

ÁÒ Ò Ö Ð º Ú ¹ Ð Ó ÐÓ À Ö Ó ½¼½½ º½º ÄÓ ÓÒ ÔØÓ Ð ÒØÖ ÐÓ Ë Ñ Ø º¾º ÄÓ ÈÙ ÐÓ Ë Ñ Ø º º º º º º º º º º º º º º º º º º º º º º ½¼½½ º º º º º º º º º º

¾

dt = d( A ω Ó (ωt + ϕ 0) a = A ω 2 Ò (ωt + ϕ 0 ) = ω 2 x v = A ωó (ωt + ϕ 0 )

Compensación Selectiva de Armónicos Mediante Filtros Activos de Potencia

x = γ(x vt) t = γ(t βx/c)

ÁÒ Ò Ö Ð º Å ÕÙ Ú ÒØ Å ÐÕÙ º½º Ä Ò ÖÒÓÒ Å ÕÙ Ú ÒØ º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º º¾º Ð ËÓ Ë Ð Ñ º º º º º º º º º º º º º




SEMANA 1: NÚMEROS REALES

ÁÒ Ò Ö Ð ½ Ð ÒØÓÖÒÓ ÍÆÁ ½ ¾ Í Ó Ð Ë ÐÐ ½ ÈÖÓ Ö Ñ ÓÒ ËÖ Ø ¾



UNIVERSIDAD COMPLUTENSE DE MADRID MARCOS TEMPORALES Y PROBABILÍSTICOS PARA TESTING FORMAL.

Alfonso Gálvez EL MISTERIO DE LA ORACIÓN

ÓÐ


ÍÆÁÎ ÊËÁ ÍÌ ÆÇÅ ÆÍ ÎÇ Ä Æ ÍÄÌ ÁÆ ÆÁ Ê Å ýæá Ä ÌÊÁ ËÍ ÁÊ Á Æ ÈÇË Ê Ç Æ Ê Á Æ ÌÊ ÌÇÊÁ Ë Î ÄÍ Á Æ Ë ÅÈ Ç ÊÇ ÇÌË Å ÆÁÈÍÄ ÇÊ Ë ÈÇÊ Å ÆÍ Ä ÇÊÌÁ Ë Ä Ê ÇÅÇ Ê



ÍÆÁÎ ÊËÁ ÍÌ ÆÇÅ ÆÍ ÎÇ Ä Æ ÍÄÌ ÁÆ ÆÁ Ê Å ýæá Ä ÌÊÁ ÁÎÁËÁ Æ ËÌÍ ÁÇË ÈÇË Ê Ç ÁË Ç Å ÆÁÈÍÄ ÇÊ Ë Ë Ç Æ Å ÌÇ ÇË ÁÌ Ê ÌÁÎÇË Æ Á Ë Ë ÅÈ Ç ÈÇÊ ÍËÌ ÎÇ ÇÆ ýä Ë Æ

2. Determine los números enteros n que satisfacen la relación planteada:


Programación Declarativa Curso Tema 3: Estructuras. José A. Alonso Jiménez Miguel A. Gutiérrez Naranjo

Ð ÁÒ Ô Ò Ò Ñ Ü Ò Ð Ñ ÝÓÖ Ô ÖØ Ð Ñ Ð Ò Ø Ð Ò ÝÓÒ Ö Ò µº ÓÑÓ Ý Ò Ó ÐÓ Þ Ó ÂÓ Î Ð ÒØ Ù ÖÓÒ Ò Ò ÖÓ Ð Ñ ÝÓÖ Å ÒÙ Ð Ý Ð ÜØÓ Å Ù Ð ýò Ð º Ð Ø Ö ÖÓ ÐÓ Ó Ë ÐÚ

Editor: Editorial de la Universidad de Granada Autor: Javier Pascual Granado D.L.: GR ISBN:

Å Ø Ó Ò ÅÙÐØ Ñ Ø Ò Ø Ö È Ö ÐÐ Ð Þ Ø ÓÒ ÖÒ Ò Ó ÖØ Ù ÒØ ½ ÂÓ Å ÒÙ Ð ÓÒØ ÐÐ ¾ ØÖ Ø Ë Ñ Ð Ö ØÝ ÕÙ Ö Ö Ú ÖÝ ÑÔÓÖØ ÒØ Ò Ø Ñ Ò Ò Ò Ô ÐÐÝ Ò Ø ÜØ Ñ Ò Ò º Ì Ó Ð

Diédrico. Representación de puntos y rectas (1).

Es aquel formado por todos los elementos involucrados en el problema.

Ê ÙÑ Ò ÙØ ÚÓ ØÙ ÐÑ ÒØ Ð ÒÚ Ø Ò Ò Ð Ö Ò ÔÙÒØ Ö Ù Ö Ð Ô Ó ÕÙ Ù Ò Ø ØÖÙØÙÖ º ØÓ ÓÖ Ò ÐÓ ÙØ Ò ÓÑÔÖ Ñ Ó ÕÙ Ñ Ù Ö Ñ ÒÓ Ô Ó ÕÙ ÙÒ Ò ØÖ ÓÒ Ð ÒÓ Ö ÕÙ Ö Ò ÙÒ ÓÔ


Representación binaria de números enteros en complemento a 2


ÇÅÈ Ê Á Æ Ä ÍÆÇË Å ÌÇ ÇË Ê Ê ËÁ Æ ÄÌ ÊÆ ÌÁÎ Î˺ ËÌ ËÌÁ ËÁ Æ ÍË Æ Ç Å Å Ä ÇÆËÇ ËýÆ À À ÊÆýÆ ÌÖ Ó Ö Ó Ô Ö Ð Ø ØÙÐÓ Å Ø Ö Ò ÁÒÚ Ø Ò ÇÔ Ö Ø Ú Ý Ø Ø Ö ØÓÖ

el acelerador LHC, y el bosón de Higgs

RESUMEN DE CONCEPTOS


Contenido. Aplicaciones de la infografía Arquitectura de un sistema gráfico. Modelo de Aplicación Programa de Aplicación Paquete Gráfico


ESCUELA PREPARATORIA OFICIAL NO.16 MATERÍA: PENSAMIENTO NUMÉRICO Y ALGEBRAICO I

Ejercicios sobre recursividad

MATEMÁTICAS 1º ESO. c) La población mundial es de unos seis mil millones de habitantes:

GENERALIDADES SOBRE SISTEMAS NUMÉRICOS. Transversal Programación Básica

El vapor Ortega fué ren olcado a la Habana seiridestruido por un incendio. La dictadura no ha de íavorecei a un solo partido sino a la nación entera

Análisis y Complejidad de Algoritmos. Arboles Binarios. Arturo Díaz Pérez

ELEMENTOS DE LA MATEMATICA

PREPARADOR DE CALCULO 11

1. Método de bisección

Unidad didáctica 1. Operaciones básicas con números enteros

T E X T O D E L M A N U A L D E H T M L, W E B M A E S T R O, P O R F R A N C I S C O A R O C E N A

Olimpiada Mexicana de Matemáticas. Guanajuato.

RESUMEN DE CONCEPTOS TEÓRICOS MATEMÁTICAS 1º ESO. CURSO

1. GENERALIDADES SOBRE LOS POLINOMIOS.

Manos a la obra: Recursión, división y listas

Semana 1: Números Reales y sus Operaciones

Introducción a la Matemática Discreta. Boletín de problemas. Temas 1, 2 y 3. Grado en Ingeniería Informática. Ingeniería del Software

Tema 6: Funciones recursivas

SISTEMA DE NUMEROS REALES

MATEMÁTICA DE CUARTO 207

Estructuras de Datos y de la Información Ingeniería Técnica en Informática de Gestión. Curso 2007/2008 Ejercicios del Tema 2

f: D IR IR x f(x) v. indep. v. dependiente, imagen de x mediante f, y = f(x). A x se le llama antiimagen de y por f, y se denota por x = f -1 (y).

1.- Para cada uno de los siguientes problemas escribir el diagrama de flujo y el pseudocódigo de un programa que lo resuelva:

CURSO CONTENIDOS MÍNIMOS U1: NÚMEROS NATURALES. U2: POTENCIA Y RAÍCES.

Aritmética en Haskell

Un árbol binario T se define como un conjunto finito de elementos, llamados nodos, de forma que:

Notas de NdeCColaboración

F U N D A D O POR DON 0SE B A T l L E Y O R D O Ñ E Z EL > 6 DE J U N I O DE « '»eriarclóo 0 E O O A4 I N C O A LLAMENOS CHURRASOUERA

6 Vectores. Dependencia e independencia lineal.

TEMA 2: NÚMEROS ENTEROS

Programación Declarativa UNIVERSIDAD DE MÁLAGA

ASCII HTML HTML Dec Hex Símbolo Numero Nombre Descripción

MODELOS DE KRIPKE. Lógicas para la Informática y la Inteligencia Artificial

¾ Ó ØÓ ØÖ Ú Ö Ù Ö Ø ÓÒ Ñ Ú Ö ÙØ Ú Þ Ñ ÓÑ Òº Ö Ø Ò Ò Ø ÒÓÓ Ò Ñ Ö ¹ ÒÓÖ Ù Ò Ó Ù ÖÓÒ Ó Ó ÔÖÓØÓÓÓ ÓÑÙÒ Ò Ó º ÔÖÓØÓÓÓ ØÖ Ò ÔÓÖØ Ì È ÑÙ ØÖ ÙÒ Ô Ø Ò Ò Ù Ó Ó

NOTICIAS DE ULTIMA HORA CONFIRMAN QUE LA NORMALIDAD REINA EN ESPAÑA : L as versiones que llegan de

TEMA 1 CONJUNTOS NUMÉRICOS

TEMA 1. Las cuentas de andar por casa

Conjuntos Los conjuntos se emplean en muchas áreas de las matemáticas, de modo que es importante una comprensión de los conjuntos y de su notación.

Tema 13: Aplicaciones de programación funcional

Tema 2. Fundamentos de la Teoría de Lenguajes Formales

MODELOS DE COMPUTACION I Preguntas Tipo Test. 1. El lema de bombeo puede usarse para demostrar que un lenguaje determinado es regular.

Práctica N o 5 - Programación Lógica

Conjuntos Numéricos I

Definición 1 Un semigrupo es un conjunto E provisto de una operación binaria asociativa sobre E, se denota por (E, ).

CAPITULO 2: LENGUAJES

El ente básico de la parte de la matemática conocida como ANÁLISIS, lo constituye el llamado sistema de los número reales.

FICHAS DE TRABAJO REFUERZO

Univ. Nacional de Colombia, Medellín Escuela de Matemáticas Matemáticas Discretas Abril 6, Soluciones Taller 7

Preparación para Álgebra 1 de Escuela Superior

TEORÍA DE DIVISIBILIDAD

PRELIMINARES. En este capítulo vamos a dar, sin ser muy estrictos, algunas nociones necesarias para la compresión de la asignatura.

Fundamentos matemáticos. Tema 1 Números reales. Polinomios

Tipos algebraicos y abstractos. Algoritmos y Estructuras de Datos I. Tipos algebraicos

Transcripció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 7 de noviembre de 2006)

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......................................... 13 1.7. Palíndromo......................................... 14 1.8. Último elemento....................................... 14 1.9. Penúltimo elemento..................................... 15 1.10. Selección de un elemento.................................. 15 1.11. Inserción de un elemento en una lista.......................... 16 1.12. Sublista............................................ 16 1.13. Permutación......................................... 17 1.14. Lista con todos sus elementos iguales.......................... 17 1.15. Paridad de la longitud de una lista............................ 17 1.16. Rotación de un elemento.................................. 18 1.17. Subconjunto......................................... 18 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................................ 24 2.10. Suma parcial de una lista.................................. 25 2.11. Lista de Æ veces el número Æ................................ 25 2.12. Generación de lista de números.............................. 26 2.13. Intervalo entero....................................... 26 2.14. K ésimo elemento...................................... 27 3

4 Índice general 2.15. Multiplicación de las ocurrencias de los elementos de una lista............ 27 3. Estructuras 29 3.1. Segmentos como objetos estructurados.......................... 29 3.2. Base de datos familiar................................... 31 3.3. Autómata no determinista................................. 36 3.4. El problema del mono y el plátano............................ 40 3.5. Movimientos del caballo del ajedrez........................... 41 3.6. Máximo elemento de un árbol binario.......................... 43 4. Retroceso, corte y negación 45 4.1. Ejemplos de uso del corte................................. 45 4.2. Árboles de deducción de Ñ Ñ Ö........................... 48 4.3. Diferencia de conjuntos................................... 48 4.4. Agregación de un elemento a un conjunto........................ 50 4.5. Separación de una lista de números en positivos y negativos............. 51 4.6. Suma de los números pares de una lista de números................. 51 4.7. Exponente de dos en la factorización de un número.................. 52 4.8. Transformación de lista a conjunto............................ 53 4.9. Signos de crecimientos de sucesiones numéricas.................... 54 4.10. Descomposición en factores primos............................ 55 4.11. Menor elemento que cumple una propiedad...................... 56 4.12. Números libres de cuadrados............................... 57 4.13. Suma de los números libres de cuadrados........................ 57 4.14. Máximo número de una lista............................... 58 4.15. Longitud de las subsucesiones comunes maximales.................. 58 4.16. Elementos repetidos en una lista............................. 59 4.17. Subconjunto maximal.................................... 60 4.18. Suma de los elementos con posiciones múltiplos de n................. 60 4.19. Compresión de listas.................................... 61 4.20. Empaquetamiento de listas................................ 62 4.21. Codificación por longitud................................. 62 4.22. Codificación reducida por longitud............................ 63 4.23. Decodificación de lista................................... 64 4.24. Codificación reducida directa............................... 64 4.25. Cota superior de una lista de números.......................... 66 4.26. Dientes de sierra....................................... 67 5. Programación lógica de segundo orden 69 5.1. Determinación de un número por su factorial...................... 69 5.2. Árbol de resolución y definiciones equivalentes.................... 71 5.3. Nodos de una generación en una lista de árboles binarios............... 73 5.4. Lista de elementos únicos................................. 74 5.5. Elementos más frecuentes de una lista.......................... 74 5.6. Problema 3n + 1....................................... 75 5.7. Números perfectos..................................... 77

Índice general 5 5.8. Determinación de triángulos equiláteros......................... 80 5.9. Operación binaria aplicada a listas............................ 80 5.10. Números en un término.................................. 80 5.11. Palabra sin vocales..................................... 81 5.12. Palabras maximales..................................... 82 5.13. Clausura transitiva de una relación............................ 82 5.14. Traducción de cifras a palabras.............................. 83 5.15. Transformación de lista dependiente de la posición.................. 84 5.16. Aplanamiento de listas................................... 85 6. Estilo y eficiencia en programación lógica 87 6.1. Número de Hardy...................................... 87 6.2. Subconjuntos de suma dada................................ 90 6.3. Coloreado de mapas.................................... 92 7. Aplicaciones de programación declarativa 95 7.1. Formación de grupos minimales de asignaturas compatibles............. 95 7.2. Simulación de una calculadora básica.......................... 98 7.3. Problema de las subastas.................................. 103 Bibliografía 107 Indice de definiciones 107

6 Índice general

Introducción El objetivo del presente trabajo es presentar una colección de ejercicios para la asignatura Programación declarativa de tercer curso de la Ingeniería Informática. Estos ejercicios complementa los apuntes de introducción a la programación declarativa 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: ¹ ÓÒ µº ¹ ÓÒ Ä µº ¹ ÓÒ Ä µº ¹ ÓÒ Ä µº Solución: La definición de ÓÒ es ÓÒ Ä Ä µº Las respuestas a las preguntas son ¹ ÓÒ µº ¹ ÓÒ Ä µº Ä ¹ ÓÒ Ä µº ¹ ÓÒ Ä µº Ä

1.4. Relación de pertenencia 11 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? ¹ Ô ÖØ Ò µº 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 Ñ Ñ Ö.

12 Capítulo 1. Operaciones con listas 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 ÓÒ Ä Äµº ÓÒ Ä½ ľ Ä µ ¹ ÓÒ Ä½ ľ Ä µº 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? ¹ ÓÒ Ä½ ľ µº Ľ ľ ¹ ÓÒ µº

1.6. Lista inversa 13 4. Es una sublista de? ¹ ÓÒ µº 5. Es una sublista de? ¹ ÓÒ µº 6. Cuál es el último elemento de? ¹ ÓÒ µº 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ñadiendo la inversa de Ľ a Ä y se define por recursión en Ľ como sigue ÒÚ Ö ¾ ÙÜ Ä¾ ľµº ÒÚ Ö ¾ ÙÜ Ä½ ľ Ä µ ¹ ÒÚ Ö ¾ ÙÜ Ä½ ľ Ä µº Nota: La relación ÒÚ Ö se corresponde con la relación definida Ö Ú Ö.

14 Capítulo 1. Operaciones con listas 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, ¹ Ô Ð Ò ÖÓÑÓ Ó Ó µº ¹ Ô Ð Ò ÖÓÑÓ Ó µº 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 Ð Ø.

1.9. Penúltimo elemento 15 1.9. Penúltimo elemento Ejercicio 1.9 Definir lar relación Ô Ò ÐØ ÑÓ Äµ que se verifique si es el penúltimo elemento 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, ¹ Ð ÓÒ Äµº Ä Ä ¹ Ð ÓÒ Äµº ¹ Ð ÓÒ Ä ½ ¾ µº Ä ½ ¾ Ä ½ ¾ Ä ½ ¾ ¹ Ð ÓÒ ½ ¾ ½ µº ¾

16 Capítulo 1. Operaciones con listas 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, ¹ Ù Ð Ø µº ¹ Ù Ð Ø µº ¹ Ù Ð Ø Äµº Ä Ä Ä Solución: La definición de Ù Ð Ø es Ù Ð Ø Ä½ ľµ ¹ ÔÔ Ò Ä Ä Ä¾µ ÔÔ Ò Ä½ Ä Ä µº

1.13. Permutación 17 1.13. Permutación Ejercicio 1.13 Definir la relación Ô ÖÑÙØ Ò Ä½ ľµ que se verifique si ľ es una permutació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, ¹ ØÓ Ó Ù Ð µº ¹ ØÓ Ó Ù Ð µº ¹ ØÓ Ó Ù Ð µº 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,

18 Capítulo 1. Operaciones con listas ¹ ÐÓÒ ØÙ Ô Ö µº ¹ ÐÓÒ ØÙ Ô Ö µº es Solución: La definición de ÐÓÒ ØÙ Ô Ö, por recursión cruzada con la relación ÐÓÒ ØÙ ÑÔ Ö, ÐÓÒ ØÙ Ô Ö µº ÐÓÒ ØÙ Ô Ö Ä µ ¹ ÐÓÒ ØÙ ÑÔ Ö Äµº La relación ÐÓÒ ØÙ ÑÔ Ö Äµ se verifica si la longitud de la lista Ä es impar. Por ejemplo, ¹ ÐÓÒ ØÙ ÑÔ Ö µº ¹ ÐÓÒ ØÙ ÑÔ Ö µº La definición de ÐÓÒ ØÙ ÑÔ Ö es ÐÓÒ ØÙ ÑÔ Ö µº ÐÓÒ ØÙ ÑÔ Ö Ä µ ¹ ÐÓÒ ØÙ Ô Ö Äµº 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 subconjunto de Ľ. Por ejemplo,

1.17. Subconjunto 19 ¹ Ù ÓÒ ÙÒØÓ µº ¹ Ù ÓÒ ÙÒØÓ µº ¹ Ù ÓÒ ÙÒØÓ Äµº Ä Ä Ä Ä Ä Ä Ä Ä Solución: La definición de Ù ÓÒ ÙÒØÓ Ä½ ľµ, por recursión en Ľ, es Ù ÓÒ ÙÒØÓ µº Ù ÓÒ ÙÒØÓ Ä½ ľ µ ¹ Ù ÓÒ ÙÒØÓ Ä½ ľµº Ù ÓÒ ÙÒØÓ Ä½ ľµ ¹ Ù ÓÒ ÙÒØÓ Ä½ ľµº

20 Capítulo 1. Operaciones con listas

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, ¹ ØÓÖ Ð µº Solución: La definición de ØÓÖ Ð µ, por recursión sobre, es 21

22 Capítulo 2. Aritmética ØÓÖ Ð ½ ½µº ØÓÖ Ð µ ¹ ½ ½ ¹½ ØÓÖ Ð ½ ½µ ½º 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 Ð Ø ÓØ Äµ ¹ Ð Ò Ø Ä Æµ Ð Ø ÓØ ÙÜ Ä Æµº donde Ð Ø ÓØ ÙÜ Ä Æµ se verifica si todos los elementos de la lista de números Ä son menores que Æ. Por ejemplo, ¹ Ð Ø ÓØ ÙÜ ½ µº ¹ Ð Ø ÓØ ÙÜ ½ µº y está definida por Ð Ø ÓØ ÙÜ µº Ð Ø ÓØ ÙÜ Ä Æµ ¹ Æ Ð Ø ÓØ ÙÜ Ä Æµº

24 Capítulo 2. Aritmética 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, ¹ ÙÑ Ð Ø ½ µº 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 25 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, ¹ ÙÑ Ô Ö Ð ½ ¾ ¾ ĵº Ä ½ ¾ ¾ Ä ¾ Ä Ä ¾ Solución: Se presentan dos definiciones de ÙÑ Ô Ö Ð. Primera solución: Una definición, usando Ù ÓÒ ÙÒØÓ (p. 19) y ÙÑ Ð Ø (p. 24), 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, ¹ Ð Ø ÙÜ Äµº Ä

26 Capítulo 2. Aritmética y se define por Ð Ø ÙÜ ¼ µº Ð Ø ÙÜ Æ Å Æ Ä µ ¹ Å ¼ Ž Ź½ Ð Ø ÙÜ Æ Å½ ĵº 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 entero tal que ƽ ƾ. Por ejemplo, ¹ ÒØÖ ¾ µº ¾ Solución: La definición de ÒØÖ es ÒØÖ Æ½ ƾ ƽµ ¹ ƽ ƾº ÒØÖ Æ½ ƾ µ ¹

2.14. K ésimo elemento 27 ƽ ƾ Æ Æ½ ½ ÒØÖ Æ Æ¾ µº Nota: La relación ÒØÖ se corresponde con la definida ØÛ Ò. 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 repitiendo à veces el primer elemento de Ľ y Æ veces los restantes elementos. Por ejemplo, ¹ ÑÙÐØ ÔÐ ÙÜ ¾ ĵº Ä

28 Capítulo 2. Aritmética Su definición es ÑÙÐØ ÔÐ ÙÜ µº ÑÙÐØ ÔÐ ÙÜ Ä½ ¼ Æ Ä¾µ ¹ ÑÙÐØ ÔÐ ÙÜ Ä½ Æ Æ Ä¾µº ÑÙÐØ ÔÐ ÙÜ Ä½ Ã Æ Ä¾ µ ¹ à ¼ ý ù½ ÑÙÐØ ÔÐ ÙÜ Ä½ ý Æ Ä¾µº

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 forma ÔÙÒØÓ µ 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? 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 29

30 Capítulo 3. Estructuras Ú ÖØ Ð ÔÙÒØÓ µ ÔÙÒØÓ ½µµµº ÓÖ ÞÓÒØ Ð ÔÙÒØÓ µ ÔÙÒØÓ ½ µµµº 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 31 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. 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.

32 Capítulo 3. Estructuras 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, entonces 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 diarios. 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 33 Solución del apartado 2: Las consultas, y sus respuestas son, ¹ Ñ Ð µº ¹ Ñ Ð µº ¹ Ñ Ð µº ¹ Ñ Ð µº ¹ Ñ Ð µº Solución del apartado 3: ¹ Ñ Ð Ô Ö ÓÒ ÆÈ µ µº ÆÈ Ó Ô Ö Þ ÖÙ Þ Solución del apartado 4: Ó µ ¹ Ñ Ð µº Solución del apartado 5: ¹ Ó µº Ô Ö ÓÒ ØÓÑ Ö Ô Ö Þ Ñ ÝÓ ½ ¼µ ØÖ Ó ÔÖÓ ÓÖ ¼µµ Ô Ö ÓÒ Ó Ô Ö Þ ÖÙ Þ Ñ ÖÞÓ ½ µ ØÖ Ó Ô ÒØÓÖ ½¾¼µµ Solución del apartado 6: µ ¹ Ñ Ð µº Solución del apartado 7: ¹ µº Ô Ö ÓÒ Ò ÐÓÔ Þ ÖÙ Þ ½¼ Ñ ÖÞÓ ½ ¾µ ØÖ Ó Ñ ¼µµ Ô Ö ÓÒ ÐÙ ÐÚ Þ Ô Ö Þ ½¾ Ñ ÝÓ ½ µ ØÖ Ó Ñ ¼µµ

34 Capítulo 3. Estructuras Solución del apartado 8: ¹ Ô Ö ÓÒ Æ ØÖ Ó µµµº Æ Ò Æ ÐÙ Solución del apartado 9: Ó µ ¹ Ñ Ð Äµ Ñ Ñ Ö Äµº Solución del apartado 10: ¹ Ó µº Ô Ö ÓÒ Ù Ò Ö ÐÓÔ Þ Ò ÖÓ ½ ¼µ ØÙ ÒØ µ Ô Ö ÓÒ Ñ Ö Ö ÐÓÔ Þ ½¾ Ö Ð ½ ¾µ ØÙ ÒØ µ Ô Ö ÓÒ Ù Ò ÐÙ Ô Ö Þ Ô Ö Þ Ö ÖÓ ½ ¼µ ØÙ ÒØ µ Ô Ö ÓÒ Ñ Ö Ó Ô Ö Þ Ô Ö Þ ½¾ ÙÒ Ó ½ ¾µ ØÙ ÒØ µ Ô Ö ÓÒ Ó Ñ Ö Ô Ö Þ Ô Ö Þ ½¾ ÙÐ Ó ½ µ ØÙ ÒØ µ Solución del apartado 11: Ô Ö ÓÒ µ ¹ Ó µ µ Ó µº Solución del apartado 12: ¹ Ô Ö ÓÒ Ô Ö ÓÒ µµº ØÓÑ Ö Ô Ö Þ Ó Ô Ö Þ ÖÙ Þ Ò ÐÓÔ Þ ÖÙ Þ ÐÙ ÐÚ Þ Ô Ö Þ Ù Ò Ö ÐÓÔ Þ Ñ Ö Ö ÐÓÔ Þ Ù Ò ÐÙ Ô Ö Þ Ô Ö Þ Ñ Ö Ó Ô Ö Þ Ô Ö Þ Ó Ñ Ö Ô Ö Þ Ô Ö Þ Solución del apartado 13:

3.2. Base de datos familiar 35 ¹ Ô Ö ÓÒ Ô Ö ÓÒ Óµ ØÙ ÒØ µµ Ó ½ º Ù Ò Ö ÐÓÔ Þ Ó ½ ¼ Ñ Ö Ö ÐÓÔ Þ Ó ½ ¾ Ù Ò ÐÙ Ô Ö Þ Ô Ö Þ Ó ½ ¼ Ñ Ö Ó Ô Ö Þ Ô Ö Þ Ó ½ ¾ Solución del apartado 14: Ò Ñ ÒØÓ Ô Ö ÓÒ µ µº Solución del apartado 15: ¹ Ó µ Ò Ñ ÒØÓ ½ ¾µµº Ô Ö ÓÒ Ñ Ö Ó Ô Ö Þ Ô Ö Þ ½¾ ÙÒ Ó ½ ¾µ ØÙ ÒØ µ Solución del apartado 16: Ù Ð Ó Ô Ö ÓÒ ØÖ Ó µµ µº Ù Ð Ó Ô Ö ÓÒ ØÙ ÒØ µ ¼µº Solución del apartado 17: ¹ Ô Ö ÓÒ µ Ò Ñ ÒØÓ Óµµ Ó ½ Ù Ð Ó µ ¾º Ô Ö ÓÒ Ó Ô Ö Þ ÖÙ Þ Ñ ÖÞÓ ½ µ ØÖ Ó Ô ÒØÓÖ ½¾¼µµ Ó ½ ½¾¼ Ô Ö ÓÒ Ò ÐÓÔ Þ ÖÙ Þ ½¼ Ñ ÖÞÓ ½ ¾µ ØÖ Ó Ñ ¼µµ Ó ½ ¾ ¼ Solución del apartado 18:

36 Capítulo 3. Estructuras ØÓØ Ð ¼µº ØÓØ Ð Ä µ ¹ Ù Ð Ó ½µ ØÓØ Ð Ä ¾µ ½ ¾º Solución del apartado 19: ¹ Ñ Ð µ ØÓØ Ð ÌÓØ Ðµº Ô Ö ÓÒ ØÓÑ Ö Ô Ö Þ Ñ ÝÓ ½ ¼µ ØÖ Ó ÔÖÓ ÓÖ ¼µµ Ô Ö ÓÒ Ò ÐÓÔ Þ ÖÙ Þ ½¼ Ñ ÖÞÓ ½ ¾µ ØÖ Ó Ñ ¼µµ Ô Ö ÓÒ Ù Ò Ö ÐÓÔ Þ Ò ÖÓ ½ ¼µ ØÙ ÒØ µ Ô Ö ÓÒ Ñ Ö Ö ÐÓÔ Þ ½¾ Ö Ð ½ ¾µ ØÙ ÒØ µ ÌÓØ Ð ½ ¼ Ô Ö ÓÒ Ó Ô Ö Þ ÖÙ Þ Ñ ÖÞÓ ½ µ ØÖ Ó Ô ÒØÓÖ ½¾¼µµ Ô Ö ÓÒ ÐÙ ÐÚ Þ Ô Ö Þ ½¾ Ñ ÝÓ ½ µ ØÖ Ó Ñ ¼µµ Ô Ö ÓÒ Ù Ò ÐÙ Ô Ö Þ Ô Ö Þ Ö ÖÓ ½ ¼µ ØÙ ÒØ µ Ô Ö ÓÒ Ñ Ö Ó Ô Ö Þ Ô Ö Þ ½¾ ÙÒ Ó ½ ¾µ ØÙ ÒØ µ Ô Ö ÓÒ Ó Ñ Ö Ô Ö Þ Ô Ö Þ ½¾ ÙÐ Ó ½ µ ØÙ ÒØ µ ÌÓØ Ð ¾½¼ 3.3. Autómata no determinista Ejercicio 3.3 Consideremos el autómata representado por

3.3. Autómata no determinista 37 a a e1 e2 b b e4 b e3 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 Æ. 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.

38 Capítulo 3. Estructuras 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: ¹ ÔØ ½ µº Solución del apartado 6: Presentamos dos definiciones. La primera usando ÔØ

3.3. Autómata no determinista 39 ÔØ ÓØ ½ Ä Æµ ¹ Ð Ò Ø Ä Æµ ÔØ Äµº 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 observa en el siguiente ejemplo ¹ Ø Ñ ÔØ ÓØ ½ ¾ Ä ¼¼¼µµº ± ½¼ ¼¾ Ò Ö Ò ¼º¼½ ÈÍ Ò ¼º¼½ ÓÒ ½¾ ± ÈÍ ½¼¼¾ ¼¼ Ä Ô µ ¹ Ø Ñ ÔØ ÓØ ½ ¾ Ä ¼¼¼µµº ± ¾¼ ¼ Ò Ö Ò ¼º¼¾ ÈÍ Ò ¼º¼¾ ÓÒ ½¾ ± ÈÍ ½¼¼½ ¼ Ä Ô µ A partir de ahora, adoptaremos la definición ÔØ ÓØ ½ ÔØ ÓØ ½ Ä Åµ ¹ ÔØ ÓØ ½ Ä Åµº Solución del apartado 7: ¹ ÔØ ÓØ ½ ½ Ä µº Ä Ä Solución del apartado 8: Presentamos dos definiciones. La primera usando ÔØ ÔØ ÓØ ¾ Ä Æµ ¹ ØÛ Ò ¼ Æ Åµ Ð Ò Ø Ä Åµ ÔØ Äµº y la segunda modificando ÔØ

40 Capítulo 3. Estructuras ÔØ ÓØ ¾ Ƶ ¹ Ò Ð µº ÔØ ÓØ ¾ Ä Æµ ¹ Æ ¼ ØÖ Ò ½µ Šƹ½ ÔØ ÓØ ¾ ½ Ä Åµº ÔØ ÓØ ¾ Ä Æµ ¹ Æ ¼ ÒÙÐÓ ½µ ÔØ ÓØ ¾ ½ Ä Æµº Nota: La primera definición es más simple y eficiente que la segunda como se observa en el siguiente ejemplo ¹ Ø Ñ ÔØ ÓØ ¾ ½ Ä ½¼¼¼¼µµº ± Ò Ö Ò ¼º¼¼ ÈÍ Ò ¼º¼¼ ÓÒ ¼± ÈÍ ÁÒ Ò Ø Ä Ô µ ¹ Ø Ñ ÔØ ÓØ ¾ ½ Ä ½¼¼¼¼µµº ± ¼ ¼¾ Ò Ö Ò ¼º¼ ÈÍ Ò ¼º¼ ÓÒ ½½ ± ÈÍ ½ ½ Ä Ô µ A partir de ahora, adoptaremos la definición ÔØ ÓØ ¾ ÔØ ÓØ ¾ Ä Åµ ¹ ÔØ ÓØ ¾ Ä Åµº Solución del apartado 9: ¹ ÔØ ÓØ ¾ ½ Ä µº Ä Ä Ä 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, ¹ ÓÐÙ Ò Ø Ó ÔÙ ÖØ Ù ÐÓ Ú ÒØ Ò Òµ ĵº Ä Ô Ö ÔÙ ÖØ Ú ÒØ Ò µ ÑÔÙ Ö Ú ÒØ Ò ÒØÖÓµ Ù Ö Ó Ö

3.5. Movimientos del caballo del ajedrez 41 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 verifica 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 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 movimiento 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, ¹ Ñ ÒÓ ½ ½ µº ¾ ¾

42 Capítulo 3. Estructuras 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 horizontales e verticales. ÜÝ ¾ ½µº ÜÝ ¾ ¹½µº ÜÝ ¹¾ ½µº ÜÝ ¹¾ ¹½µº ÜÝ ½ ¾µº ÜÝ ½ ¹¾µº ÜÝ ¹½ ¾µº ÜÝ ¹½ ¹¾µº La relación ÓÖÖ ØÓ µ se verifica si está entre 1 y 8. ÓÖÖ ØÓ µ ¹ ½ º Solución del apartado 2: Ñ ÒÓ µº Ñ ÒÓ ½ ¾ Ä µ ¹ ÐØ ½ ¾µ Ñ ÒÓ ¾ Ä µº Solución del apartado 3: ¹ Ñ ÒÓ ¾ ½ ½ ¾ µº ½ ¾ ¾ ½ ¾ ¾ ½ ¾ ¾

3.6. Máximo elemento de un árbol binario 43 ½ ¾ ¾ ½ ¾ ½ ¾ ½ ¾ ½ ¾ Solución del apartado 4: ¹ Ñ ÒÓ ½ ½ ¾ ¾ µº ¹ Ñ ÒÓ ½ ½ ¾ ¾ µº ¹ Ñ ÒÓ ½ ½ ¾ ¾ µº ¹ Ñ ÒÓ ½ ½ ¾ ¾ ¾ µº ¾ ¾ ¾ ¾ ½ ¾ ¾ ½ ¾ ¾ ½ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ¾ ½ ¾ ¾ ¾ ¾ ½ ¾ ¾ ½ 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,

44 Capítulo 3. Estructuras ¹ Ñ Ü ÑÓ Ò Ð Æµº Æ ¼ ¹ Ñ Ü ÑÓ Ø Ò Ð ¾ Ò Ðµ Ƶº Æ ¾ ¹ Ñ Ü ÑÓ Ø Ø Ò Ð ¾ Ò Ðµ Ò Ðµ Ƶº Æ Solución: La definición de Ñ Ü ÑÓ es Ñ Ü ÑÓ Ò Ð ¼µº Ñ Ü ÑÓ Ø Á Ê µ ŵ ¹ Ñ Ü ÑÓ Á ÅÁµ Ñ Ü ÑÓ Å µ Ž Ñ Ü ÅÁ Å µ Å Ñ Ü Ê Å½µº

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 ¹ ¾ µº 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. 45

46 Capítulo 4. Retroceso, corte y negación 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 46). f(1,y), 2<Y {X/1, Y/0} {X/1, Y/4} {X/1, Y/2} 1<3, 2<0 3 =< 1, 1<6, 2<2 6 =< 1, 2<4 Fallo Fallo 2<0 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 47). Solución del apartado 5: El árbol de deducción se muestra en la figura 4.3 (página 47). Solución del apartado 6: La definición de ¾ es ¾ ¼µ ¹ º ¾ ¾µ ¹ º ¾ µº Solución del apartado 7: El árbol de deducción se muestra en la figura 4.4 (página 47). Solución del apartado 8: El árbol de deducción se muestra en la figura 4.5 (página 48). Solución del apartado 9: La definición de es ¼µ ¹ º ¾µ ¹ º µº

4.1. Ejemplos de uso del corte 47 f_1(1,y), 2<Y {X/1, Y/0} 1<3,!, 2<0!, 2<0 2<0 Fallo Figura 4.2: Árbol de resolución del apartado 4 f_1(7,y) {X/7, Y/0} {X/7, Y/4} {X/7, Y/2} 7<3,! 3 =< 7, 7<6,! 6 =< 7 Fallo 7<6,! Fallo Exito {Y/4} Figura 4.3: Árbol de resolución del apartado 5 f_1(7,y) {X/7, Y/0} {X/7, Y/4} 7<3,! Fallo {X/7, Y/2} 7<6,! Fallo Exito {Y/4} Figura 4.4: Árbol de resolución del apartado 7

48 Capítulo 4. Retroceso, corte y negación f_2(1,y), 2<Y {X/1, Y/0} 1<3,!, 2<0!, 2<0 2<0 Fallo Figura 4.5: Árbol de resolución del apartado 8 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 diferencia de los conjuntos ½ y ¾. Por ejemplo,

4.3. Diferencia de conjuntos 49 memberchk(x,[a,b,c]), X=a. {X/a} memberchk(x,[a,b,c]), X=b. {X/a} X=b, memberchk(x,[a,b,c]). {X/b}!, a=a.!, a=b. memberchk(b,[a,b,c]). a=a Resp.: X=a a=b Fallo memberchk(b,[b,c]).! Resp.: X=b Figura 4.6: Árbol de resolución Ñ Ñ Ö ¹ Ö Ò µº Definir una versión con negación ( Ö Ò ½) y otra con corte ( Ö Ò ¾) y comparar la eficiencia de las distintas definiciones con el ejemplo ¹ ÒÙÑÐ Ø ½ ½¼¼¼ Ľµ Ø Ñ Ö Ò ½ Ľ Ľµµº ¹ ÒÙÑÐ Ø ½ ½¼¼¼ Ľµ Ø Ñ Ö Ò ¾ Ľ Ľµµº Nota: La relación Ö Ò se corresponde con la relación definida Ù ØÖ Ø. Solución: 1 a definición (con negación): Ö Ò ½ µº Ö Ò ½ Ä Ä¾ Ä µ ¹ Ñ Ñ Ö Ä¾µ Ö Ò ½ Ä Ä¾ Ä µº Ö Ò ½ Ä Ä¾ Ä µ ¹ ÒÓØ Ñ Ñ Ö Ä¾µµ Ö Ò ½ Ä Ä¾ Ä µº 2 a definición (con corte): Ö Ò ¾ µº Ö Ò ¾ Ä Ä¾ Ä µ ¹ Ñ Ñ Ö Ä¾µ Ö Ò ¾ Ä Ä¾ Ä µº Ö Ò ¾ Ä Ä¾ Ä µ ¹ ± ÒÓØ Ñ Ñ Ö Ä¾µµ Ö Ò ¾ Ä Ä¾ Ä µº

50 Capítulo 4. Retroceso, corte y negación 3 a definición (con corte y memberchk): Ö Ò µº Ö Ò Ä Ä¾ Ä µ ¹ Ñ Ñ Ö Ä¾µ Ö Ò Ä Ä¾ Ä µº Ö Ò Ä Ä¾ Ä µ ¹ ± ÒÓØ Ñ Ñ Ö Ä¾µµ Ö Ò Ä Ä¾ Ä µº 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: 1 a definición (con negación): Ö Ö ½ Ä Äµ ¹ Ñ Ñ Ö Äµº Ö Ö ½ Ä Ä µ ¹ ÒÓØ Ñ Ñ Ö Äµµº 2 a definición (con corte): Ö Ö ¾ Ä Äµ ¹ Ñ Ñ Ö Äµ º Ö Ö ¾ Ä Ä µº

4.5. Separación de una lista de números en positivos y negativos 51 4.5. Separación de una lista de números en positivos y negativos 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, ¹ ÙÑ Ô Ö ¾ Ƶº Æ ¹ ÙÑ Ô Ö ½ ½½ ¾ Ƶº Æ ¼ Hacer una versión con negación y otra con corte. Solución: Versión 1 (con negación):

52 Capítulo 4. Retroceso, corte y negación ÙÑ Ô Ö ½ ¼µº ÙÑ Ô Ö ½ Æ Ä µ ¹ Ô Ö Æµ ÙÑ Ô Ö ½ Ä ½µ ½ ƺ ÙÑ Ô Ö ½ Æ Ä µ ¹ ÒÓØ Ô Ö Æµµ ÙÑ Ô Ö ½ Ä µº Ô Ö Æµ ¹ Æ ÑÓ ¾ ¼º Versión 2 (con corte): ÙÑ Ô Ö ¾ ¼µº ÙÑ Ô Ö ¾ Æ Ä µ ¹ Ô Ö Æµ ÙÑ Ô Ö ¾ Ä ½µ ½ ƺ ÙÑ Ô Ö ¾ Æ Ä µ ¹ ± ÒÓØ Ô Ö Æµµ ÙÑ Ô Ö ¾ Ä µº Versión 3 (con corte y acumulador): ÙÑ Ô Ö Ä µ ¹ ÙÑ Ô Ö ÙÜ Ä ¼ µº ÙÑ Ô Ö ÙÜ µº ÙÑ Ô Ö ÙÜ Æ Ä µ ¹ Ô Ö Æµ ½ Æ ÙÑ Ô Ö ÙÜ Ä ½ µº ÙÑ Ô Ö ÙÜ Æ Ä µ ¹ ± ÒÓØ Ô Ö Æµµ ÙÑ Ô Ö ÙÜ Ä µº 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 exponente de 2 en la descomposición de Æ como producto de factores primos. Por ejemplo, ¹ ÜÔÓÒ ÒØ Ó ¼ µº ¹ ÜÔÓÒ ÒØ Ó µº ¼

4.8. Transformación de lista a conjunto 53 Hacer una versión con negación y otra con corte. Solución: 1 a Versión (con negación): ÜÔÓÒ ÒØ Ó ½ Æ µ ¹ Æ ÑÓ ¾ ¼ ƽ Æ» ¾ ÜÔÓÒ ÒØ Ó ½ ƽ ½µ ½ ½º ÜÔÓÒ ÒØ Ó ½ Æ ¼µ ¹ Æ ÑÓ ¾ ¼º 2 a 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 conjunto 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 Ð Ø ØÓ Ø. Solución: La definición de Ð Ø ÓÒ ÙÒØÓ es Ð Ø ÓÒ ÙÒØÓ µº Ð Ø ÓÒ ÙÒØÓ Ä µ ¹ Ñ Ñ Ö Äµ Ð Ø ÓÒ ÙÒØÓ Ä µº Ð Ø ÓÒ ÙÒØÓ Ä µ ¹ Ñ Ñ Ö Äµ Ð Ø ÓÒ ÙÒØÓ Ä µº La definición anterior puede simplificarse con cortes Ð Ø ÓÒ ÙÒØÓ ½ µº Ð Ø ÓÒ ÙÒØÓ ½ Ä µ ¹ Ñ Ñ Ö Äµ

54 Capítulo 4. Retroceso, corte y negación Ð Ø ÓÒ ÙÒØÓ ½ Ä µº Ð Ø ÓÒ ÙÒØÓ ½ Ä µ ¹ ± Ñ Ñ Ö Äµ Ð Ø ÓÒ ÙÒØÓ ½ Ä µº 3 a definición (con corte y memberchk): Ð Ø ÓÒ ÙÒØÓ µº Ð Ø ÓÒ ÙÒØÓ Ä Ä¾µ ¹ Ñ Ñ Ö Äµ Ð Ø ÓÒ ÙÒØÓ Ä Ä¾µº Ð Ø ÓÒ ÙÒØÓ Ä Ä¾ µ ¹ ± ÒÓØ Ñ Ñ Ö Äµµ Ð Ø ÓÒ ÙÒØÓ Ä Ä¾µº Comparaciones: ¹ ÒÙÑÐ Ø ½ ½¼¼¼ Ľµ Ø Ñ Ð Ø ÓÒ ÙÒØÓ ½ Ľ оµµº ± ½ ¼¼ ¼¼½ Ò Ö Ò ¼ ¼ ÈÍ Ò ¼ ½ ÓÒ ± ÈÍ ¾ ¼ ¼ Ä Ô µ ¹ ÒÙÑÐ Ø ½ ½¼¼¼ Ľµ Ø Ñ Ð Ø ÓÒ ÙÒØÓ ¾ Ľ оµµº ± ¼½ ¼½ Ò Ö Ò ¼ ¾ ÈÍ Ò ¼ ¾ ÓÒ ± ÈÍ ½ ¾ ¼ Ä Ô µ ¹ ÒÙÑÐ Ø ½ ½¼¼¼ Ľµ Ø Ñ Ð Ø ÓÒ ÙÒØÓ Ä½ оµµº ± ¼¼½ Ò Ö Ò ¼ ¼ ÈÍ Ò ¼ ¼ ÓÒ ¼± ÈÍ ¾ ½ Ä Ô µ ¹ ÒÙÑÐ Ø ½ ½¼¼¼ Ľµ Ø Ñ Ð Ø ØÓ Ø Ä½ оµµº ± ¼¼ Ò Ö Ò ¼ ¼ ÈÍ Ò ¼ ¼ ÓÒ ± ÈÍ ¾ ½ Ä Ô µ 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 Ö Ñ ÒØÓ ½ µº Ö Ñ ÒØÓ ½ Ľ ľ µ ¹ Ö Ñ ÒØÓ ½ Ľ ľµº Ö Ñ ÒØÓ ½ Ľ ¹ ľ µ ¹ Ö Ñ ÒØÓ ½ Ľ ľµº

4.10. Descomposición en factores primos 55 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, ¹ Ñ ÒÓÖ Ú ÓÖ ÔÖÓÔ Ó ¼ µº ¾ ¹ Ñ ÒÓÖ Ú ÓÖ ÔÖÓÔ Ó µº ØÓÖ Þ Ò Æ ¹Äµ que se verifique si Ä es la lista correspondiente a la descomposició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 ØÓÖ Þ Ò ½ µº ØÓÖ Þ Ò Æ Ä µ ¹ Æ ½ Ñ ÒÓÖ Ú ÓÖ ÔÖÓÔ Ó Æ µ ƽ Æ» ØÓÖ Þ Ò Æ½ ĵº

56 Capítulo 4. Retroceso, corte y negación 4.11. Menor elemento que cumple una propiedad Ejercicio 4.11 Definir la relación ÐÙÐ Æ Å µ que se verifique si es el menor múltiplo de Æ tal que la suma de sus dígitos es mayor que Å. Por ejemplo, ¹ ÐÙÐ ½¼ µº ¹ ÐÙÐ ¾¼ µº Solución: La definición de ÐÙÐ es ÐÙÐ Æ Å µ ¹ Ñ ÐØ ÔÐÓ Æ µ ÙÑ ØÓ Æ½µ ƽ Å º 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 57 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, ¹ Ð Ö Ù Ö Ó ¼µº ¹ Ð Ö Ù Ö Ó ½¾µº 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 ÙÑ Ð Ö Ù Ö Ó ¾ ¼µº ÙÑ Ð Ö Ù Ö Ó ¾ Ä Ëµ ¹ Ð Ö Ù Ö Ó µ ÙÑ Ð Ö Ù Ö Ó ¾ Ä Ë½µ Ë Ë½º ÙÑ Ð Ö Ù Ö Ó ¾ Ä Ëµ ¹ ± ÒÓØ Ð Ö Ù Ö Ó µµ ÙÑ Ð Ö Ù Ö Ó ¾ Ä Ëµº

58 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 longitud 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 59 4.16. Elementos repetidos en una lista Ejercicio 4.16 Definir la relación Ö Ô Ø Ó ¹ ĵ que se verifique si el elemento está repetido (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 obtenida 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, ¹ Ö Ô Ø Ó ½ ½ ¾ ½ ĵº Ä ½ Solución: La primera definición de Ö Ô Ø Ó es Ö Ô Ø Ó ½ µº Ö Ô Ø Ó ½ Ľ ľ µ ¹ Ñ Ñ Ö Ä½µ Ð Ñ Ò Ä½ Ä µ Ö Ô Ø Ó ½ Ä Ä¾µº Ö Ô Ø Ó ½ Ľ ľµ ¹ ÒÓØ Ñ Ñ Ö Ä½µµ Ö Ô Ø Ó ½ Ľ ľµº

60 Capítulo 4. Retroceso, corte y negación 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 Ù ÓÒ ÙÒØÓ Ñ Ü Ñ Ð Ä½ ľµ ¹ Ð Ø ØÓ Ø Ä½ Ä µ Ð Ø Ä Ä¾µº Nota: La relación Ð Ø ØÓ Ø se corresponde con la relación Ð Ø ÓÒ ÙÒØÓ definida en la página 53. 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