Download Ejercicios - Universidad de Málaga

Document related concepts

Cuadrado mágico wikipedia , lookup

Algoritmo de multiplicación wikipedia , lookup

Capicúa wikipedia , lookup

Triángulo de Pascal wikipedia , lookup

Cifra VIC wikipedia , lookup

Transcript
Programación Declarativa
3.o de Ingeniería en Informática
Universidad de Málaga
E.T.S.I. Informática
Noviembre de 2007
Ejercicios
Ejercicio 1. Define los siguientes predicados Prolog:
es_natural(X)
X es un natural (0,1,2,...)
es_entero(X)
X es un entero (0,-1,1,-2,2,...)
num_digitos(X,N)
el entero X tiene N dígitos
dig_iesimo(X,I,D) D es el I-ésimo dígito de X
mcd(X,Y,M)
M es el máximo común divisor de X e Y
fibonacci(I,F)
F es el I-ésimo Fibonacci
pascal(I,J,P)
P es el elemento (I,J) del triángulo de Pascal
capicua(X)
el entero X es capicúa
primo(X)
el natural X es primo
Ejercicio 2. Define el predicado entre_paso(+I,+J,+P,?K) que se satisface si I ≤ K ≤
J y K = I + iP, donde i ∈ N. Por ejemplo:
?- entre_paso(1,8,3,K).
K = 1 ;
K = 4 ;
K = 7 ;
No
Es decir, se trata de un bucle «para» desde I hasta J con paso P.
Ejercicio 3. Resuelve los siguientes rompecabezas aritméticos:
ANA + USA = ESO
LOBO + FEROZ = MIEDO
SEND + MORE = MONEY
CAMA + VINO = VICIO
CAMA + CASA + MESA = VICIO
Ejercicio 4. Un cuadrado mágico es una matriz cuadrada de orden n con los enteros
positivos 1, 2, ..., n2 dispuestos de tal manera que todas las filas, columnas y las diagonales principales suman la misma cantidad M (n), conocida como número mágico, y
que viene dada por la expresión:
2
1
1 n
M ( n ) = ∑ k = n ( n2 + 1)
n k =1
2
1
Escribe programas Prolog para resolver cuadrados mágicos de orden 3 y 4.
Ejercicio 5. Un número está formado por 8 cifras decimales desconocidas de la A a la
H
ABCDEFGH.
Se considera que A es la primera cifra. Para averiguar el número contamos con las
siguientes pistas:
Las cifras se pueden repetir.
la 3.a y 5.a cifras son iguales.
La suma de la 2.a y 4.a cifras es igual al doble de la 1.a .
La última cifra es el doble de la anterior.
La última cifra es igual a la suma de la 1.a y la 6.a.
La suma de todas las cifras es 39.
Escribe un programa Prolog que empleando la técnica generar/comprobar asigne dígitos a las cifras del número.
Ejercicio 6. Completa la matriz de la figura inferior con números del 4 al 39, de
manera que las filas, columnas y diagonales principales sumen 85.
25
23
22
24
23
17
11
10
12
11
9
Ejercicio 7. Rellena la matriz binaria de 4 × 4 de la figura de manera que los números que orlan la matriz correspondan a la suma de sus filas, columnas y diagonales
principales.
2
2
2
1
1
1
2
2
2
1
Ejercicio 8. Asigna dígitos del 1 al 9 sin repetir a los nodos del grafo de la figura, de
manera que la suma de los nodos coincida con el número que encierran sus arcos.
2
15
13
17
17
21
21
Ejercicio 9. ¿Dónde deben impactar 7 dardos en la diana de abajo para que sumen un
total de 100 puntos?
19
1
17
3
18
Ejercicio 10. Entre un preso y un carcelero se produce el siguiente diálogo:
— ¿Cuándo saldré de aquí?
— ¿Qué edad tienes?
— Veinticinco.
— Yo tengo cincuenta y cuatro. Saldrás cuando te duplique la edad.
Escribe un programa Prolog que empleando la técnica generar/comprobar te ayude a encontrar cuántos años de condena le quedan por cumplir al preso.
3