APUNTES
ESCET
2003
2
Introducción
1 2 3 4 ...
• • • • ...
Una vez que tenemos los números naturales, recurramos a un objeto ma-
temático un poco más complejo, los números reales positivos R+ . De nuevo
éste es un conjunto conocido que contiene al conjunto de los números na-
turales, N ⊂ R+ , y es estrictamente más grande. Ahora contiene al cero, a
las fracciónes y también a esos números especiales que no son fracciones (es
decir que no se pueden escribir mediante un número decimal con una√canti-
dad nita de cifras o con un período) como por ejemplo el número 2 o el
número e.
3
4
0 1 2 3 4 ...
• Lógica
• Algoritmos
• Combinatoria
• Grafos
• Relaciones
Esto es, formalizar, diseñar procesos nitos para resolver problemas, anali-
zar las propiedades fundamentales de los números enteros, contar, enumerar,
relacionar conjuntos nitos, representar estas relaciones,...
Una vez que hemos respondido (de forma intuitiva) a la pregunta sobre
el concepto de matemática discreta se trata de responder ahora a la cuestión
de por qué estudiar matemática discreta.
En primer lugar la matemática en general y la matemática discreta en
particular tiene un carácter instrumental. Todas las ciencias usan la mate-
mática como instrumento (para medir, calcular, estimar, denir...) e incluso
como lenguaje de expresión (por ejemplo las ecuaciones diferenciales para la
física). En concreto, la matemática discreta está ligada profundamente a las
Ciencias de la Computación pues los objetos con los que trata un ordenador
son objetos nitos (aunque pueden ser muy grandes) y por el triunfo de la
tecnología digital, que en muchos aspectos es una representación discreta de
la realidad. A los verbos anteriores objeto de la matemática discreta pode-
mos asociar algún concepto relacionado con la informática: formalizar con
lenguajes de programación, procesos nitos con algoritmos, números enteros
con criptografía, contar con estudiar la capacidad de un ordenador, enumerar
con bases de datos, relacionar con redes, representar las relaciones con planos
de redes,...
Por otro lado la matemática tiene un carácter formativo para un cientíco
cualquiera y también para un ingeniero. Escribir con claridad, formalizar,
adquirir destrezas para enfrentar situaciones nuevas, precisión, constancia...
son habilidades fundamentales para el cientíco o el ingeniero y para las que
las matemáticas son un instrumento adecuado de desarrollo (evidentemente
no el único).
Finalmente señalar que el curso está estructurado en 6 temas, cada tema
tiene una pequeña introducción donde se explican los objetivos que pretende-
mos alcanzar, una relación autocontenida de los conceptos y resultados que
hemos seleccionado, ejemplos ilustradores y ejercicios propuestos y resueltos.
El capítulo 7 es una colección de exámenes propuestos y resueltos, material
de apoyo para la preparación del curso.
6
Índice General
1 Lógica 11
1.1 Lógica e informática . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 Lógica y modelos matemáticos . . . . . . . . . . . . . . . . . . 13
1.3 Lógica proposicional . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.1 Los conectivos lógicos . . . . . . . . . . . . . . . . . . . 15
1.3.2 Forma de una proposición . . . . . . . . . . . . . . . . 18
1.3.3 Tautologías y razonamientos válidos . . . . . . . . . . . 22
1.3.4 El método de refutación . . . . . . . . . . . . . . . . . 30
1.3.5 Conjuntos adecuados de conectivos en lógica de propo-
siciones . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.4 Lógica de predicados . . . . . . . . . . . . . . . . . . . . . . . 32
1.4.1 Introducción: predicados y objetos . . . . . . . . . . . 32
1.4.2 Los cuanticadores universal y existencial . . . . . . . 35
1.4.3 Forma de predicados . . . . . . . . . . . . . . . . . . . 36
1.4.4 Ejemplos de sentencias verdaderas. Contraejemplos . . 43
1.4.5 Modelización de expresiones en forma simbólica . . . . 46
1.5 El razonamiento por inducción . . . . . . . . . . . . . . . . . . 48
1.5.1 Razonamiento por inducción completa . . . . . . . . . 50
1.5.2 Inducción estructural . . . . . . . . . . . . . . . . . . . 51
1.6 Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
1.6.1 Corrección de algoritmos y vericación de programas . 54
1.6.2 Ingeniería del conocimiento: sistemas expertos . . . . . 57
1.7 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
1.8 Ejercicios resueltos . . . . . . . . . . . . . . . . . . . . . . . . 62
1.8.1 Lógica con Maple . . . . . . . . . . . . . . . . . . . . . 62
7
8 ÍNDICE GENERAL
2 Algoritmos 83
2.1 Deniciones y ejemplos . . . . . . . . . . . . . . . . . . . . . . 83
2.2 Algoritmos de búsqueda y de ordenación . . . . . . . . . . . . 92
2.2.1 Algoritmos de búsqueda . . . . . . . . . . . . . . . . . 92
2.2.2 Algoritmos de ordenación . . . . . . . . . . . . . . . . 93
2.3 Complejidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
2.4 Algoritmos de búsqueda con Maple . . . . . . . . . . . . . . . 102
2.4.1 Búsqueda secuencial . . . . . . . . . . . . . . . . . . . 102
2.4.2 Búsqueda binaria . . . . . . . . . . . . . . . . . . . . . 104
2.5 Algoritmos de ordenación con Maple . . . . . . . . . . . . . . 106
2.5.1 Ordenación Burbuja . . . . . . . . . . . . . . . . . . . 106
2.5.2 Ordenación selección . . . . . . . . . . . . . . . . . . . 108
2.6 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
2.7 Ejercicios resueltos . . . . . . . . . . . . . . . . . . . . . . . . 110
4 Combinatoria 167
4.1 Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
4.2 Técnicas de conteo . . . . . . . . . . . . . . . . . . . . . . . . 170
4.3 Variaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
4.4 Permutaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
4.5 Combinaciones . . . . . . . . . . . . . . . . . . . . . . . . . . 181
4.6 Probabilidad . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
4.6.1 Nociones básicas . . . . . . . . . . . . . . . . . . . . . 188
4.6.2 Asignación de probabilidades . . . . . . . . . . . . . . 192
ÍNDICE GENERAL 9
5 Grafos 207
5.1 Grafos, digrafos y multigrafos . . . . . . . . . . . . . . . . . . 208
5.2 Grafos simples especiales. . . . . . . . . . . . . . . . . . . . . 212
5.3 Construcción de grafos a partir de grafos . . . . . . . . . . . . 217
5.4 Isomorsmo de grafos . . . . . . . . . . . . . . . . . . . . . . . 219
5.5 Representación de grafos . . . . . . . . . . . . . . . . . . . . . 222
5.5.1 Mediante una matriz de adyacencias . . . . . . . . . . 222
5.5.2 Mediante una matriz de incidencias . . . . . . . . . . . 225
5.6 Caminos, ciclos y grafos conexos . . . . . . . . . . . . . . . . . 226
5.7 Grafos eulerianos y hamiltonianos. . . . . . . . . . . . . . . . 232
5.8 Grafos etiquetados y algoritmo de Dijkstra . . . . . . . . . . . 240
5.9 Árboles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
5.9.1 Árboles de búsqueda binarios . . . . . . . . . . . . . . 249
5.9.2 Árboles de decisión . . . . . . . . . . . . . . . . . . . . 250
5.9.3 Códigos prejos . . . . . . . . . . . . . . . . . . . . . . 252
5.9.4 Árboles generadores . . . . . . . . . . . . . . . . . . . 254
5.10 Otros aspectos de la teoría de grafos . . . . . . . . . . . . . . 258
5.11 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
5.12 Ejercicios resueltos . . . . . . . . . . . . . . . . . . . . . . . . 261
6 Relaciones 281
6.1 Compendio de deniciones . . . . . . . . . . . . . . . . . . . . 282
6.2 Representación de relaciones . . . . . . . . . . . . . . . . . . . 285
6.2.1 Mediante tablas . . . . . . . . . . . . . . . . . . . . . . 285
6.2.2 Mediante grafos dirigidos . . . . . . . . . . . . . . . . . 285
6.2.3 Mediante matrices . . . . . . . . . . . . . . . . . . . . 289
6.3 Clausuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
6.4 Conjuntos parcialmente ordenados . . . . . . . . . . . . . . . . 296
6.4.1 Diagramas de Hasse . . . . . . . . . . . . . . . . . . . 296
6.4.2 Elementos característicos de un conjunto parcialmente
ordenado . . . . . . . . . . . . . . . . . . . . . . . . . . 298
6.4.3 Inmersión de un orden parcial en un orden total . . . . 300
10 ÍNDICE GENERAL
Como objetivos se espera que los alumnos sean capaces de realizar con
soltura las siguientes actividades:
11
12 CAPÍTULO 1. LÓGICA
iii) sucientes: todas las propiedades que entendemos que deben satis-
facer los objetos que estamos representando deben poderse deducir a partir
de los axiomas.
Una vez establecidos los axiomas, el resto de propiedades verdaderas o
teoremas se obtienen mediante deducciones lógicas o demostraciones a partir
de los axiomas o de otros teoremas previamente demostrados. Los términos
lema, corolario y proposición se emplean para cierto tipo de teoremas. Un
lema es un teorema más simple que se emplea para demostrar otro más
complejo. Un corolario es un teorema que es consecuencia directa de otro
teorema previo. El término proposición es sinónimo del término teorema. Se
suele preferir la palabra teorema para hechos más relevantes y la palabra
proposición para hechos más secundarios.
p ¬p
V F
F V
Del mismo modo podemos recoger el signicado del resto de los conecti-
vos:
p q p∧q
V V V
V F F
F V F
F F F
p q p∨q
V V V
V F V
F V V
F F F
1.3. LÓGICA PROPOSICIONAL 17
p q p⇒q
V V V
V F F
F V V
F F V
p q p⇔q
V V V
V F F
F V F
F F V
p∨q
¬p
q
p ¬p p ∨ ¬p
V F V
F V V
c) los paréntesis (, )
20 CAPÍTULO 1. LÓGICA
∨p¬ ∨ ¬q
((p ∧ (¬q)) ⇒ r)
(p ∧ ¬q) ⇒ r.
Cada forma proposicional tiene asociada una tabla de verdad, que recoge
los distintos valores de verdad de la forma al asignar valores V y F a las
distintas variables involucradas. La tabla de verdad asociada a una forma
proposicional se puede construir sistemáticamente a partir del procedimiento
empleado para construir dicha forma proposicional:
(p∧¬q) ⇒ r
1.3. LÓGICA PROPOSICIONAL 21
p q ¬q (p∧¬q) r (p∧¬q) ⇒ r
(Paso intermedio)
p q ¬q (p∧¬q) r (p∧¬q) ⇒ r
V V F F V
V F V V V
F V F F V
F F V F V
F
F
F
F
(Tabla nal)
p q ¬q (p∧¬q) r (p∧¬q) ⇒ r
V V F F V V
V F V V V V
F V F F V V
F F V F V V
V V F F F V
V F V V F F
F V F F F V
F F V F F V
1. ¬ (p ∧ q)
2. (p ∧ ¬p)
3. ¬ (p ∧ ¬p)
4. p ⇒ (q ∧ ¬r)
5. ¬ (p ∧ q) ⇔ ((¬p) ∨ (¬q))
1. (p ∧ (p ⇒ q)) ⇒ q
2. ((p ⇒ q) ∧ (q ⇒ r)) ⇒ (p ⇒ r)
4. ((p ∨ q) ∧ ¬p) ⇒ q
5. (p ∧ ¬p) ⇒ q
1. ((p ⇒ q) ∧ (q ⇒ p)) ⇔ (p ⇔ q)
2. (p ⇒ q) ⇔ ((¬q) ⇒ (¬p))
4. p ⇔ (¬p ⇒ p)
5. p ⇔ ((¬p) ⇒ (q ∧ ¬q))
24 CAPÍTULO 1. LÓGICA
• B es consecuencia lógica de A
• A es condición suciente de B
• B es condición necesaria de A.
p ∧ (p ⇒ q) implica lógicamente a q
(p ⇒ q) ∧ (q ⇒ r) implica lógicamente a (p ⇒ r)
(p ⇒ q) ∧ (¬p ⇒ q) implica lógicamente a q
(p ∨ q) ∧ ¬p implica lógicamente a q
(p ∧ ¬p) implica lógicamente a q
(p ⇒ q) ∧ (q ⇒ p) equivale lógicamente a (p ⇔ q)
(p ⇒ q) equivale lógicamente a (¬q) ⇒ (¬p)
(p ⇒ q) equivale lógicamente a ((p ∧ ¬q) ⇒ (¬p))
p equivale lógicamente a (¬p ⇒ p)
p equivale lógicamente a ((¬p) ⇒ (q ∧ ¬q))
Por otro lado el ejemplo 1.3.5 indica que p ⇒ q es equivalente lógicamente
a ¬p ∨ q .
Esta tabla de equivalencias lógicas pone de maniesto los siguientes re-
sultados:
1. La equivalencia (p ⇔ q) es V si y solo si las implicaciones (p ⇒ q) y
(q ⇒ p) son V .
2. La implicación (p ⇒ q) es lógicamente equivalente a su contrarrecíproca
(¬q) ⇒ (¬p).
3. El principio de reducción al absurdo: la verdad de p es equivalente al
hecho de que su negación ¬p implique una contradicción. Este hecho se
sustenta en la siguiente equivalencia lógica, presentada anteriormente:
p equivale lógicamente a ((¬p) ⇒ (q ∧ ¬q))
26 CAPÍTULO 1. LÓGICA
de A1 , ..., An se deduce B
A1
..
.
An
B
x = 2p + 1
28 CAPÍTULO 1. LÓGICA
q ⇒ q1 .
x2 = 2(2p2 + 2p) + 1.
O equivalentemente:
x par implica x2 par.
Lo que se hace mediante una demostración directa idéntica a la del ejemplo
anterior, cambiando la denición de impar por la de par.
1.3. LÓGICA PROPOSICIONAL 29
o bien o bien
(p ⇒ q) ∨ (r ⇒ q) : V (p ⇒ q) ∨ (r ⇒ q) : F
y ((p ∧ r) ⇒ q) : F y (p ∧ r) ⇒ q : V
de donde de donde
(p ⇒ q) ∨ (r ⇒ q) : V (p ⇒ q) : F,(r ⇒ q) : F
(p ∧ r) :V , q : F (p ∧ r) ⇒ q : V
luego luego
(p ⇒ F) ∨ (r ⇒ F) : V p : V, r : V, q : F
p :V, r :V (p ∧ r) ⇒ q : V
por lo que por lo que
(V ⇒ F) ∨ (V ⇒ F) : V (V ∧ V) ⇒F : V
es decir es decir
F: V (contradicción) F : V (contradicción)
Luego f alla el intento de probar que no es una tautología, o lo que es lo
mismo, no es posible asignar valores de verdad a las variables proposicionales
que intervienen de manera que la forma proposicional ((p ⇒ q) ∨ (r ⇒ q)) ⇔
((p ∧ r) ⇒ q) sea falsa, por lo que concluimos que dicha forma proposicional
es, efectivamente, una tautología.
Ejercicio 10 Comprobar que tanto {↓} como {|} son conjuntos adecuados
de conectivos. Para verlo expresar las formas proposicionales p ∨ q, p ∧ q y
¬p en función, en primer lugar, del conectivo {↓} y, en segundo lugar, en
función del conectivo {|}.
3 es primo
5 es primo
5 es impar
x es primo P(x)
x es impar I(x)
3 es primo P(3)
5 es impar I(5)
5 es primo P(5)
x es mortal M(x)
x es hombre H(x)
x es el padre de y P(x,y)
x estudia la carrera y E(x,y)
x,y,z están alineados L(x,y,z)
x es igual a y x=y
x es mayor que y x>y
2) Por otra parte, el hecho de que para al menos un elemento a del universo
de discurso U la sentencia P (a) sea una proposición verdadera, nos permite
armar que la proposición existe un elemento x de U tal que la proposición
P (x) es verdadera, que expresamos de forma más breve por
∃x ∈ U P (x)
es verdadera.
La frase existe un objeto x del conjunto U se denomina cuanticador
existencial y se representa por ∃x ∈ U .
Así pues, para poder asociar un valor de verdad (o, lo que es lo mismo,
interpretar) a una sentencia abierta, es necesario cerrarla previamente (se
dice que una sentencia es cerrada si no tiene variables sin cuanticar). Como
hemos visto una sentencia se puede cerrar asignando constantes a las variables
que en ella intervienen o cuanticando dichas variables. Si las variables están
cuanticadas, el valor de verdad depende del universo de discurso que se
considere. Así por ejemplo, la sentencia
∃x ∈ U (x2 = 2)
36 CAPÍTULO 1. LÓGICA
es verdadera
√ en el universo de discurso de los números reales (U = R, siendo
x = 2), pero√es falsa en el universo de discurso de los números enteros
(U = Z ya que 2 ∈ / Z).
Si el universo de discurso es nito, el cuanticador universal puede susti-
tuirse por un número nito de conjunciones y el cuanticador existencial por
un número nito de disyunciones.
Por ejemplo, si los valores posibles de la variable x son a, b, c, (U =
{a, b, c}) la sentencia cerrada
∀x ∈ U P (x)
∀x ∈ U P (x)
a∈U
P (a)
P (x) ∧ Q(x)
P (x) ∧ Q(y)
¬P (x)
P (x) ∨ Q(x)
P (x) ⇒ Q(x)
P (x) ⇔ Q(x)
Paso 3. Dada una forma de predicados de las construidas hasta ahora, donde
aparece la variable x, digamos por simplicidad P (x), se pueden construir las
expresiones:
∀x P (x)
∃x P (x).
Por ejemplo se construyen las formas:
∀x (P (x) ∧ Q(x))
∃x (P (x, y) ⇔ Q(x)).
38 CAPÍTULO 1. LÓGICA
Paso 5. Dada una forma de predicados P(x) donde aparece una variable
libre x, se pueden construir expresiones del tipo:
∀x P(x)
∃x P(x).
Por ejemplo expresiones del tipo:
Denición 1.4.3 Diremos que una variable x aparece ligada en una forma
de predicado P si está afectada por algún cuanticador. En caso de que una
variable no aparezca ligada diremos que aparece libre.
Por ejemplo
Para poder asignar valores de verdad a las formas de predicado hay que,
como se decía anteriormente, cerrar las formas, esto es, sustituir las variables
libres por constantes y entender cómo se asignan valores de verdad a las
variables cuanticadas.
que es una expresión de lógica proposicional, donde P (a), Q(a) y R(b) son
variables proposicionales, y como tal se trata, pudiéndose construir su tabla
de verdad.
40 CAPÍTULO 1. LÓGICA
• Dada una forma de predicado del tipo ∀x P (x), donde P (x) es una
forma de predicado sin cuanticadores y con una sola variable x, se
dice que la expresión ∀x P (x) es verdadera si al sustituir x por una
constante a cualquiera en cualquier universo de discurso, se tiene que
P (a) es verdadero.
• Dada una forma de predicado del tipo ∃x P (x), donde P (x) es una for-
ma de predicado sin cuanticadores y con una sola variable x, se dice
que la expresión ∃x P (x) es verdadera si al sustituir x por una cons-
tante a en algún universo de discurso, se tiene que P (a) es verdadero.
Es decir, el valor de verdad de ∃x P (x) es el mismo de ¬(∀x ¬P (x)).
Denición 1.4.8 Diremos que una forma de predicado que contenga va-
riables libres es una tautología si toma únicamente el valor V independien-
temente del universo de discurso y los objetos concretos de dicho universo
que asignemos a las variables que aparecen libres.
1.4. LÓGICA DE PREDICADOS 41
∃x P (x)
∀x ∈ U ∃y ∈ U P (x, y) : V
ya que para cada número natural x siempre existe un número natural y (por
ejemplo y = x + 1) estrictamente mayor. Pero:
∃y ∈ U ∀x ∈ U P (x, y) : F
ya que no existe un número natural mayor que el resto de los números natu-
rales. Por tanto:
(P (a) ∨ Q(a))
Demostración.
Demostramos primero la implicación de izquierda a derecha.
Razonamos por reducción al absurdo: supongamos que ∀x∀yP (x, y) es V
y que ∀y∀xP (x, y) es F . De la segunda condición se sigue que existe b tal
46 CAPÍTULO 1. LÓGICA
que ∀xP (x, b) es F . Por ello existe a tal que P (a, b) es F . Luego ∀yP (a, y)
es F y en consecuencia ∀x∀yP (x, y) es F .
Para la otra implicación, o bien se razona análogamente a la implicación
que acabamos de probar, o bien se aplica el resultado anterior a la sentencia
∀y∀x P (x, y).
Observación 1.4.17 Hay que tener cuidado con la negación de una senten-
cia cuando viene afectada por un cuanticador. Supongamos que queremos
negar la sentencia
Todos los alumnos de esta clase han aprobado algún examen en febrero.
Su negación sería
1. P (1) es verdadera
∀n ∈ N, 2n ≤ (n + 1)!.
(∀n ∈ N P (n)) .
Ejemplo 1.5.5 Los números enteros vienen determinados por las siguientes
reglas:
0 ∈ Z.
Si n ∈ Z, entonces (n + 1) ∈ Z ∧ (n − 1) ∈ Z.
En este caso el paso de inducción tiene dos direcciones, es decir, para probar
el paso de inducción habría que comprobar que si n satisface la propiedad
objeto de estudio, entonces también la satisfacen (n + 1) y (n − 1).
Veamos un ejemplo de una demostración por inducción estructural en este
contexto.
Dado a ∈ R, denimos an para n ∈ Z del siguiente modo:
a0 = 1
an
an+1 = an · a, an−1 = .
a
52 CAPÍTULO 1. LÓGICA
am+n = am · an
am+n
am+(n−1) = a(m+n)−1 = =
a
am · an an
=( ) = am · ( ) = am · an−1 ,
a a
donde de nuevo la igualdad tercera es la hipótesis de inducción. Con esto
concluimos, como consecuencia del razonamiento por inducción estructural
efectuado, que la ley es válida ∀n ∈ Z.
Base de inducción: Los únicos casos (casos básicos) para los que se pue-
de aplicar directamente la denición de forma proposicional complementaria
son: si C = p,
comp(C) = comp(p) = ¬p = ¬C
y si C = ¬p
comp(C) = comp(¬p) = p = ¬¬p = ¬C.
Antes de hacer el paso de inducción recordar que {∧, ∨, ¬} es un conjunto
adecuado de conectivos por lo que toda forma proposicional se puede construir
mediante las reglas de construcción de formas proposicionales y sólo usando
estos conectivos.
Paso de inducción. Hipótesis de inducción: Supongamos que cualquie
forma proposicional con n conectivos lógicos del tipo ∧ o ∨ satisface el teo-
rema. Sea C una forma proposicional con n+1conectivos del tipo ∧ o ∨ .
Si C = A ∨ B, tendremos que
comp(A ∨ B) = comp(A) ∧ comp(B) =
= ¬A ∧ ¬B = (De M organ) =
= ¬ (A ∨ B) = ¬C.
Donde la segunda igualdad es verdadera por hipótesis de inducción.
Si C = A ∧ B, tendremos que
comp(A ∧ B) = comp(A) ∨ comp(B) =
= ¬A ∨ ¬B = (De M organ) =
= ¬ (A ∧ B) = ¬C.
Donde la segunda igualdad es verdadera por hipótesis de inducción.
Si C = ¬A entonces por las leyes de De Morgan ¬A admite una forma
equivalente, que denotamos igual, con el mismo número de conectivos del tipo
∧ o ∨. De este modo, por hipótesis de inducción:
comp(C) = comp(¬A) = ¬(¬A) = A = ¬C.
Por consiguiente, concluimos, como queríamos demostrar, que para cual-
quier forma proposicional se tiene:
comp(C) = ¬C.
54 CAPÍTULO 1. LÓGICA
1.6 Aplicaciones
1.6.1 Corrección de algoritmos y vericación de progra-
mas
Como estudiaremos con más detalle en el siguiente capítulo, un algoritmo
es una rutina o procedimiento mecánico que acepta un cierto conjunto de
inputs, para cada uno de los cuales obtiene un output tras un número nito
de pasos. Por un programa entenderemos una expresión o una secuencia
nita de expresiones en algún lenguaje de programación. El concepto de pro-
grama está relacionado con el concepto de algoritmo, pero no es exactamente
igual, pues un programa es la realización concreta de un algoritmo, pero un
algoritmo puede ser programado (o implementado) en diferentes lenguajes
de programación. En el siguiente capítulo estudiaremos el concepto de e-
ciencia relacionado con los algoritmos (tiempo de ejecución y necesidades de
memoria). En esta sección nos ocuparemos de la siguiente pregunta: ¾Cuán-
do podemos asegurar que un algoritmo (o el programa que lo implementa)
es correcto (i.e., que hace aquello para lo que fue diseñado)? Probar que
un algoritmo es correcto requiere métodos de demostración similares a los
estudiados en el desarrollo del capítulo. En cualquier caso, vericar que un
algoritmo es correcto puede ser una tarea muy difícil. Sólo algoritmos rela-
tivamente simples pueden ser vericados utilizando las técnicas que vamos a
describir a continuación. En cualquier caso, la comprensión de estas técnicas
es seguro que servirá de ayuda para diseñar algoritmos de una manera mejor.
Por otra parte es imposible diseñar un método que nos permita vericar
la corrección de cualquier programa. Esto es una consecuencia del teorema
de incompletitud de Gödel sobre los límites del razonamiento formal. No
obstante, este resultado nos permite garantizar que no es posible desarrollar
una maquinaria general de vericación de la corrección de programas, pero
el tipo de programas que aparecen en la práctica no son, en cualquier caso,
totalmente generales, así que podemos desarrollar métodos de vericación en
algunos casos importantes. Más aún, al hacerlo estaremos mejorando nuestra
metodología de programación. El ideal sería diseñar programas junto con las
demostraciones de su corrección.
La vericación de programas está muy relacionada con lo que se deno-
mina Demostración automática de teoremas. De hecho, para ser riguroso
con el concepto de vericación, necesitaríamos una descripción precisa de
aquello que se pretende que el programa haga, y esto debe expresarse en
1.6. APLICACIONES 55
r := 0 m := a n := b
while m > 0
if m es impar then r := r + n
m := m/2
n := 2n
m n r
11 26 0
5 52 26
2 104 78
1 208 78
0 416 286
a1 · b1 + c1 = ab
a2 · b2 + c2 = ab.
a1
a2 · b2 + c2 = · 2b1 + c1 = ab.
2
(a1 −1)
b) si a1 es impar, entonces a2 = 2
, b2 = 2b1 y c2 = c1 + b1 , por lo que
(a1 − 1)
a2 · b2 + c2 = · 2b1 + c1 + b1 = a1 b1 − b1 + c1 + b1 = ab
2
con lo que la demostración por inducción está completa.
(p1 ∧ p2 ∧ p3 ∧ p4 ) ⇒ q.
R1 : [f ∧ t ∧ m] ⇒ g
R2 : [(g ∨ r) ∧ (¬u)] ⇒ (a ∧ c)
R2a : (g ∧ (¬u)) ⇒ a
R2b : (g ∧ (¬u)) ⇒ c
R2c : (r ∧ (¬u)) ⇒ a
R2d : (r ∧ (¬u)) ⇒ c.
f ∧t∧m
R1 : [f ∧ t ∧ m] ⇒ g
g
(en este momento hemos ampliado la base de hechos con el nuevo hecho g)
g ∧ (¬u)
R2a : (g ∧ (¬u)) ⇒ a
a
(en este momento hemos ampliado la base de hechos con el nuevo hecho a)
g ∧ (¬u)
R2b : (g ∧ (¬u)) ⇒ c ,
c
1.7 Ejercicios
Ejercicio 18. Escribe la tabla de verdad de las siguientes proposiciones:
1) ((p ∨ ¬q) ∧ m) ⇒ m
2) (¬q ∨ (p ⇒ q)) ⇒ ¬p
3) (p ⇒ (m ∨ n)) ⇒ m
4) (p ⇒ (m ∧ n)) ⇒ m
Ejercicio 25. Demuestra por casos la propiedad del valor absoluto por la
cual:
62 CAPÍTULO 1. LÓGICA
|xy| = |x||y|
Conectivos lógicos
Maple sólo tiene los conectivos lógicos and, or, not. Son sucientes
por las equivalencias lógicas de la implicación y la doble implicación con
sentencias lógicas sólo hechas con and, or y not. Para evaluar las funciones
hay que poner delante el símbolo & con que se representa la conjunción y.
> p and q;
p and q
> p or q;
p or q
> not p;
not p
Usemos la función bequal para comprobar que la negación de (p or
q) es equivalente a (not p and not q).
> bequal(¬(p &or q), (¬ p) &and (¬
> q));
true
Aunque el conectivo implies no está, sí hay una función implies. La
implicación p implies q es equivalente a not p or q.
> bequal(p &implies q, ¬ p &or q);
true
Podemos hacer un procedimiento para tener el conectivo implicación
(impl) y la doble implicación (la vamos a llamar dimpl). Recordemos que
p dimpl q es equivalente a (p impl q) and (q impl p).
64 CAPÍTULO 1. LÓGICA
> impl:=proc(a,b)
> local c:
> c:=(not a or b):
> c; end:
> dimpl:=proc(a,b) local c:
> c:=(not a or b)
> and (not b or a):
> c; end:
> impl(p,q); dimpl(p,q);
not p or q
Ejemplos de uso
Veamos algunos ejemplos donde se comprueba que ciertas expresiones son
tautologías. La función convert/toinert pone los símbolos & para que se
pueda evaluar:
Ejercicio 2.
Escribimos las formas proposicionales:
> ej2_1:=impl(p and impl(p,q),q):
> ej2_2:=impl(impl(p,q) and
> impl(q,r),impl(p,r)):
> ej2_3:=impl(impl(p,q) and impl(not
> p,q),q):
> ej2_4:=impl((p or q) and (not p),q):
> ej2_5:=impl(p and not p, q):
Comprobamos que son tautologías:
> tautology(convert(ej2_1,toinert));
true
> tautology(convert(ej2_2,toinert));
true
> tautology(convert(ej2_3,toinert));
true
> tautology(convert(ej2_4,toinert));
1.8. EJERCICIOS RESUELTOS 65
true
> tautology(convert(ej2_5,toinert));
true
Ejercicio 3.
1. La equivalencia entre la doble implicación y la conjunción de las dos
implicaciones (en realidad esto sólo comprueba que hemos hecho las cosas
bien pues así hemos denido la doble implicación al construir dimpl):
> A:=impl(p,q) and impl(q,p);
A := ( not p or q) and ( not q or p)
> A1:=dimpl(p,q);
A1 := ( not p or q) and ( not q or p)
> bequal(convert(A,toinert),convert(A1,toinert));
true
> bequal(convert(A,toinert),convert(B,toinert));
true
3. Otra forma de ver la implicación: p implica q es equivalente a que p
and not q implica not p:
> B:=dimpl(impl(p,q),impl(p and not q,not
> p));
66 CAPÍTULO 1. LÓGICA
B := not (( not p or q) and p and not q and p) and (p and not q and p or not p or q)
> B1:=convert(B,toinert):
> tautology(B1); bequal(B1,true);
true
true
4. Reducción al absurdo:
> C:=dimpl(p,impl(not p,p));
C := true
> tautology(convert(C,toinert));
true
5. Reducción al absurdo:
> E:=dimpl(p,impl(not p,q and not q));
E := true
Ejercicio 4.
Doble negación:
> dimpl(not(not q),q);
true
And es asociativo:
> Andasociativo:=dimpl((p and q) and r,p
> and (q
> and r)):
> tautology(convert(Andasociativo,toinert));
true
Or es asociativo:
> Orasociativo:=dimpl((p or q) or r,p or (q
> or
> r)):
1.8. EJERCICIOS RESUELTOS 67
> tautology(convert(Orasociativo,toinert));
true
And es conmutativo:
> Andconmuta:=dimpl((p and q),(q and p)):
> tautology(convert(Andconmuta,toinert));
true
Distributivas:
> dist1:=dimpl(p and (q or r),(p and q) or
> (p
> and r)):
> dist2:=dimpl(p or (q and r),(p or q) and
> (p
> or r)):
> tautology(convert(dist1,toinert));
true
> tautology(convert(dist2,toinert));
true
Leyes de de Morgan:
> dimpl(not(r and q),not r or not q);
true
> tablap:=proc(B)
> local A, L, c, i, j:
> L:=[true,false]:
> for i from 1 to 2 do
> c:=bsimp(subs(p=L[i],q=L[i],B));
> print(p=L[i],q=L[i],A=c);
> od:
> end:
> tablapq:=proc(B)
> local A, L, c, i, j:
> L:=[true,false]:
> for i from 1 to 2 do
> for j from 1 to 2 do
> c:=bsimp(subs(p=L[i],q=L[j],B));
> print(p=L[i],q=L[j],A=c);
> od:
> od: end:
> tablapqr:=proc(B)
> local A, L, c, i, j, k:
> L:=[true,false]:
> for i from 1 to 2 do
> for j from 1 to 2 do
> for k from 1 to 2 do
> c:=bsimp(subs(p=L[i],q=L[j],r=L[k],B));
> print(p=L[i],q=L[j],r=L[k],A=c);
> od:
> od:
> od: end:
Estos procedimientos se pueden usar siempre que haya una, dos o tres
variables y éstas se llamen p, q y r. Si no se llaman así las cambiamos el
nombre. Si queremos añadir más variables no hay más que introducir otro
bucle.
Las cinco proposiciones que se presentan son:
> ej1:=not(p or q):
> ej2:=p and (not p):
> ej3:=not(p and (not p)):
> ej4:=impl(p,q and not r):
> ej5:=dimpl(not(p and q),(not p) or (not
> q)):
Sus tablas de verdad son:
> tablapq(ej1);
1.8. EJERCICIOS RESUELTOS 69
> tablapq(ej2);
p = true, q = true, A = false
> tablap(ej3);
p = true, q = true, A = true
> tablapqr(ej4);
p = true, q = true, r = true, A = false
> tablapq(ej5);
p = true, q = true, A = true
Ejercicio 18.
En el apartado 1 las variables proposicionales se llaman p, q y m. Como
en nuestro procedimiento se llaman p,q y r, cambiamos el nombre de m por
r.
> ej18_1:=impl((p or not q) and m,m);
ej18 _1 := not ((p or not q) and m) or m
> ej18_1:=subs(m=r,ej18_1);
ej18 _1 := not ((p or not q) and r) or r
> tablapqr(ej18_1);
p = true, q = true, r = true, A = true
> tablapq(ej18_2);
p = true, q = true, A = true
> tablapqr(ej18_4);
p = true, q = true, r = true, A = true
Ejercicio 5. Sean
A1 := p ⇒ (q ∨ r) A2 := q ⇒ ¬r
A3 := p A4 := q ∧ ¬r.
Se trata de demostrar que la proposición siguiente P es una tautología:
A1 ∧ A2 ∧ A3 ⇒ A4 .
Ejercicio 6.
1) Sea p := H es un subgrupo, q := (H 6= ∅), r :=el elemento neutro
pertenenece a H, s := H es cerrado. La primera hipótesis es:
A1 := (q ∧ r ∧ s) ⇒ p.
La segunda hipótesis es:
A2 := (q ∧ s) ⇒ r.
La conclusión es:
B := s ⇒ p
Se trata de demostrar si la siguiente proposición es una tautología:
(A1 ∧ A2 ) ⇒ B.
a = b + d = (c + d0 ) + d = c + (d + d0 )
p ↓ q ⇔ ¬(p ∨ q)
p ↓ p ⇔ ¬(p ∨ p) ⇔ ¬p
¬p ↓ ¬q ⇔ ¬(¬p ∨ ¬q) ⇔ p ∧ q
p|q ⇔ ¬(p ∧ q)
p|p ⇔ ¬(p ∧ p) ⇔ ¬p
¬p|¬q ⇔ ¬(¬p ∧ ¬q) ⇔ p ∨ q
(p|q)|(p|q) ⇔ ¬(p|q) ⇔ p ∧ q
Ejercicio 14.
1) Sea el universo U de las personas y los predicados E(x) = ser español
y P (x) = ser periodista:
o equivalentemente
∃x ∈ U (E(x) ∧ ¬P (x)).
Su negación es:
∀x ∈ U (E(x) ⇒ P (x))
esto es, todos los españoles son periodistas.
2) Sea U el conjunto de los caminantes y el predicado B(x) x bosteza.
Entonces:
(∃x ∈ U B(x)) ⇒ (∀x ∈ U B(x)).
Su negación es:
(∃x ∈ U B(x)) ∧ (∃x ∈ U ¬B(x)).
Esto es, existen personas que bostezan y personas que no bostezan.
3) En el universo U de las personas se toman los predicados M (x) x es
modisto y P (x, y) x conoce a y:
∀x ∈ U ∃y ∈ U (P (x, y) ∧ M (y)).
Su negación es:
4)
∀p, q ∈ R p < q ∃s ∈ Q p < s < q
Su negación es:
Esto es, existen dos números reales p, q sin números racionales entre ellos.
5) Sea P el conjunto de los números primos:
∀p ∈ P ∃q ∈ P p < q.
Su negación es:
∃p ∈ P ∀q ∈ P p ≥ q.
Esto es, existe un número primo mayor que el resto de los números primos.
ii)
Σnk=1 (2k − 1) = n2 .
1.8. EJERCICIOS RESUELTOS 77
Σn+1 n 2
k=1 (2k − 1) = Σk=1 (2k − 1) + (2n + 1) = n + 2n + 1.
Y en efecto se tiene:
n2 + 2n + 1 = (n + 1)2 .
iii) 2n ≤ (n + 1)!.
Base de inducción: en efecto se cumple que 2 ≤ 2! = 2.
Paso de inducción: usando la hipótesis de inducción se tiene:
2n+1 = 2n · 2 ≤ (n + 1)!2.
2n+1 ≤ (n + 2)!
(H1 ∧ H2 ) ⇒ T
donde
H1 := ∀x ∈ U R(x) ⇒)P (x) ∨ ¬P (x)).
H2 := ¬P (a)
T := R(a)
78 CAPÍTULO 1. LÓGICA
Ejercicio 20.
Ningún país ha ganado todas las medalla:
O equivalentemente
∀x∃y¬M (x, y).
Todos los países han ganado alguna medalla: ∀x∃y M (x, y).
Algún país ha ganado alguna medalla: ∃x∃y M (x, y).
Algún país no ha ganado ninguna medalla ∃x∀y ¬M (x, y).
Ejercicio 22.
Si vale menos de 1000 ptas, comeré en la cafetería.
Sea U el conjunto de posibles precios de la comida. Sea P (x) : x < 1000.
Sea q : comeré en la cafetería. Nuestra frase es, en lenguaje formal, P (x) ⇒ q .
Su negación es ¬ (P (x) ⇒ q), que es lógicamente equivalente a ¬ (¬P (x) ∨ q).
Por la ley de de Morgan, esto es equivalente a P (x)∧¬q. En lenguaje natural:
vale menos de 1000 ptas y no como en la cafetería.
Todos los habitantes de Madrid viajan en metro.
Sea U el conjunto de habitantes de Madrid. Sea P (x) : x viaja en metro.
La frase es en lenguaje formal ∀x ∈ U ; P (x). Su negación es ¬∀x ∈ U P (x)
que es lógicamente equivalente a ∃x ∈ U ¬P (x). En lenguaje natural:
existe algún habitante de Madrid que no viaja en metro.
Ningún habitante de Móstoles coge el autobús.
Sea U el conjunto de habitantes de Móstoles. Sea P (x) : x coge el autobús.
La frase es en lenguaje formal ¬(∃x ∈ U P (x)). Su negación es ∃x ∈ U P (x).
En lenguaje natural:
existe algún habitante de Móstoles que coge el autobús.
Hay personas en todas las ciudades que usan el transporte público.
1.8. EJERCICIOS RESUELTOS 79
Ejercicio 23. a)
n
X n(n + 1)(2n + 1)
P (n) : k2 =
k=1
6
y por otra
1(1 + 1)(2 · 1 + 1)
=1
6
En consecuencia, P (1) es V .
Veriquemos que bajo la hipótesis de inducción (P (n) es V ) es P (n) ⇒
P (n + 1) también V ; es decir, que P (n + 1) es V. Para ello calculamos
n+1
X n
X
k2 = k 2 + (n + 1)2 = (por hipótesis de inducción)
k=1 k=1
=
· ¸
n(n + 1)(2n + 1) 2 n(2n + 1)
+ (n + 1) = (n + 1) + (n + 1) =
6 6
· 2 ¸
2n + 7n + 6 ((n + 1) + 2)(2(n + 1) + 1)
= (n + 1) == (n + 1)
6 6
lo que implica que, en efecto, es P (n + 1) verdadero. Por inducción, ∀n ∈ N,
P (n) es V .
b)
80 CAPÍTULO 1. LÓGICA
Ejercicio 24. Sea P (x, y): y es el padre de x. Es claro que todo x tiene un
padre, pero no es cierto que exista al menos un x que es hijo de y (que puede
no tener hijos en absoluto).
((v ⇒ s) ∧ (s ⇒ c) ∧ v) ⇒ c.
82 CAPÍTULO 1. LÓGICA
Capítulo 2
Algoritmos
83
84 CAPÍTULO 2. ALGORITMOS
Problema real
Planteamiento formal
Presenta solución
Algoritmo que da la solución
Demostración
Estudio de la eciencia
Resaltamos que:
i) la naturaleza de los datos de entrada debe ser exactamente descrita
(una lista de números enteros, un numero racional...);
ii) las operaciones que el algoritmo realiza son siempre una cantidad
nita, para unos datos de entrada de los que admite el algoritmo, esto es, el
algoritmo siempre termina, aportando un valor de salida;
iii) se describe una demostración o al menos una evidencia de que el
algoritmo resuelve el problema;
iv) se estudia en profundidad y en términos precisos la complejidad
del algoritmo, es decir, de alguna manera (que precisaremos), el tiempo (o el
espacio) que va a necesitar para obtener la solución de este problema.
v) la respuesta es precisa, lo que signica que se obtiene el resultado
esperado. Esto no quiere decir que la respuesta sea necesariamente exacta,
sino que cumple las condiciones que se la exigen. A saber, se puede por
ejemplo diseñar un algoritmo para obtener el valor numérico aproximado de
una cierta integral (o un límite, o una operación...) con un error del orden
de las milésimas. Si el algoritmo está bien construido, el resultado no es
necesariamente el valor exacto de dicha integral (o límite, u operación...),
pero verica las condiciones pedidas, esto es, aproxima la solución exacta
con un error menor que 1 milésima.
Ejemplos 2.1.2 i) La Geometría con regla y compás. Donde los datos son
puntos, rectas y circunferencias y las operaciones básicas son:
a) apoyar la regla en un punto,
b) apoyar una pata del compás en un punto,
c) apoyar una pata del compás en una recta,
d) producir una recta con la regla,
e) producir una circunferencia con el compás,
f ) intersecar rectas, circunferencias y rectas con circunferencias.
ii) El modelo conocido como Real RAM donde los datos de entrada son
números reales en lugar de enteros y las operaciones básicas son las mismas
que en el RAM.
x := a.
a/b, a mod b.
88 CAPÍTULO 2. ALGORITMOS
Entrada: a, b
If a > b then c := a else c := b.
Salida: c (el más grande entre los dos números).
1. For i = a to b operación.
Donde la operación se repite desde el valor a del contador i hasta que éste
toma el valor b, increméntandose el valor del contador en una unidad cada
vez que se realiza la operación.
Observar que las operaciones que se realizan dentro del bucle se escriben
un poco más en el interior del párrafo para distinguirlas.
2. While condición, operación.
Mientras la condición se cumple se repite la operación.
i := 1
While i ≤ b
c := c + a
i := i + 1
Y de nuevo señalar la posibilidad de que se tengan varias condiciones sepa-
radas por comas.
for i = 1 to n
If a < ai then a := ai
Salida: a
k := 0
for a = 1 to 10
b := a
while b ≤ 10
k := k + 1
Salida:= k
Entrada: a1 , ..., an ; a
i := 1
while i ≤ n, a 6= ai
i := i + 1
if i ≤ n then r :=Sí else r :=No
Salida: r
necesario, luego el segundo con el tercero y así hasta acabar la lista. Cuando
acabamos la lista, el valor más grande se ha colocado en el último lugar (que
es el que debe ocupar en la salida) por lo que debemos repetir el proceso con
la nueva lista resultado de los intercambios prescindiendo del último valor.
Veamos un ejemplo:
Tomamos la lista a1 = 2, a2 = 1, a3 = 6, a4 = 4.
Como el primer valor a1 = 2 es mayor que el segundo a2 = 1 entonces se
intercambian los valores:
a1 = 1 a2 = 2
Como el segundo valor es ahora a2 = 2 menor que el tercero, el algoritmo
no hace nada:
a2 = 2 a3 = 6
Como el tercer valor a3 = 6 es mayor que el cuarto entonces se produce
un intercambio de valores:
a3 = 4 a4 = 6
a1 = 1, a2 = 2, a3 = 4, a4 = 6.
En este caso la lista ya está ordenada, pero podría no ser así con lo que
habría que repetir el proceso con la lista a1 , a2 , a3 .
Visto el ejemplo escribamos el algoritmo:
Entrada: a1 , ..., an .
For j = 1 to n − 1
For i = 1 to n − j
if ai > ai+1 then intercambiar sus valores (ver observación
siguiente)
Salida: a1 , ..., an .
c := ai
ai := ai+1
ai+1 := c
ai := ai+1
ai+1 := ai
Entrada: a1 , ..., an .
For j = 1 to n − 1
if min(aj , aj+1 , ..., an ) 6= aj then intercambiar sus valores
Salida: a1 , ..., an .
Veamos un ejemplo:
Tomamos la lista a1 = 2, a2 = 1, a3 = 6, a4 = 4.
Como el mínimo de la lista es a2 y a2 6= a1 entonces intercambian sus
valores, obteniéndose por tanto:
a1 = 1 a2 = 2.
96 CAPÍTULO 2. ALGORITMOS
2.3 Complejidad
S(n) ≤ kT (n).
Sea O(T (n)) el conjunto de las sucesiones dominadas por T (n), entonces si
T (n) domina a S(n) escribiremos S(n) ∈ O(T (n)).
Si S(n) ∈ O(T (n)) y T (n) ∈ O(S(n)) diremos que S(n) y T (n) son del
mismo orden.
Ejemplo 2.3.5 Sean T (n) = n2 y S(n) = 2n2 se verica que T (n) y S(n)
son del mismo orden ya que para cada n natural se tiene que T (n) ≤ S(n) y
que S(n) ≤ (1/2)T (n).
a0 + a1 x + ... + as xs as 6= 0
> Binaria:=proc(a::list,b)
> local c,i,j,k,s:
> i:=1: j:=nops(a): c:=0;
> for s from 1 to nops(a) while j-i>-1 do
> k:=floor((i+j)/2):
> if b=a[k] then c:=1: s:=nops(a)+1: fi:
> if
> b>a[k] then i:=k+1: fi:
> if b<a[k] then j:=k-1: fi: od:
> if c=1 then
> RETURN(si) else RETURN(no) fi:
> end:
Comprobemos el algoritmo en algunos ejemplos:
> Binaria([3,4,5,6,7,7.5,8,9],7.25);
no
> Binaria([3,4,5,6,7,7.5,8,9],9);
si
> Binaria([3,4,5,6,7,7.5,8,9],4);
si
> Binaria([seq(x^2,x=10..20)],169);
si
> cambiar:=proc(a,i,j)
> local t: t:=a[i]:
> a[i]:=a[j]: a[j]:=t: a; end:
> cambiar([1,2,3,4,5,6],1,6);
Error, (in cambiar) illegal use of a formal parameter
> Intercambiar([3,2,3,4,5,10],1,6);
[10, 2, 3, 4, 5, 3]
> Intercambiar([1,6,3,4,7,6],2,5);
[1, 7, 3, 4, 6, 6]
Ordenación burbuja
Ahora ya podemos escribir el algoritmo de ordenación burbuja:
> Burbuja:=proc(a)
> local i,j,n,aloc;
> n:=nops(a);
> aloc:=a;
> for i from 1 to n-1 do
> for j from 1 to n-i do
> if (aloc[j]>aloc[j+1]) then aloc:=Intercambiar(aloc,j,j+1)
fi;
> od:
> od: RETURN(aloc);
> end:
108 CAPÍTULO 2. ALGORITMOS
> minimo([1,4,0.8,67,50]);
3
> seleccion:=proc(a)
> local b,c,i,m:
> b:=a:
> c:=a:
> for i from 1 to nops(a) do
> m:=minimo(b):
> if b[i]<>b[m] then
> b:=Intercambiar(b,i,m):
> c:=Intercambiar(c,i,m):
> fi:
> b[i]:=infinity:
> od: c;
> end:
> seleccion([2,1,3,6,5]);
[1, 2, 3, 5, 6]
> seleccion([2,5,4,3,1,0]);
[0, 1, 2, 3, 4, 5]
2.6 Ejercicios
En todos los ejercicios escribir el algoritmo que se pide, aplicarlo a dos ejem-
plos y estudiar su complejidad.
a := 1, i := 1
como 1 ≤ 2 entonces i := 2 y al ser 1 < 2 entonces a := 2
como 2 ≤ 2 entonces i := 3 y al ser 2 < 0 entonces a := 2
como 3 > 2 sale del bucle.
Salida: a = 2.
a1 ≤ a2 ≤ ... ≤ an .
S(n) ≤ kT (n).
114 CAPÍTULO 2. ALGORITMOS
32 2^x
30
28
26
x^2
24
22
20
18
16
14
12
10
xlog(x)
8
6
4 x
2 ln(x)
0 2 3 4 5
x
1 + 2 + 3 + .. + n = n(n + 1)/2,
se tiene el resultado.
De igual manera el algoritmo de selección es cuadrático pues el bucle j
se repite n − 1 veces y cada una de ellas llama a un algoritmo llamado min
que es lineal.
Entrada: a1 , ..., an .
For i = 1 to n
ai := |ai |
Salida: M (a1 , ..., an )
El algoritmo del máximo es de complejidad lineal, el cálculo del valor
absoluto es de complejidad constante (T (n) = 3). La reasignación de la
lista tiene complejidad lineal (T (n) = 5n + 3). Por tanto el algoritmo es de
complejidad lineal.
Ejercicio 44. El producto de dos enteros positivos no es más que sumar uno
de ellos tantas veces como indica el otro. Como el producto es conmutativo
y la suma una operación básica, elegimos el mínimo de los dos para decir
cuántas veces hay que sumar. Multiplicamos entonces los valores absolutos
y después atendemos al signo:
Entrada: a, b.
a1 =mínimo{|a|, |b|}, a2 :=máximo{|a|, |b|}.
p := 0, i := 1
while i ≤ a1
p := p + a2
i := i + 1
If a > 0, b < 0 then p := −p else if a < 0, b > 0 then p := −p
Salida: p
El tamaño de la entrada es aquí el valor absoluto del mínimo de ambos
números (esto es n = a1 ). El cálculo del mínimo y el máximo son algoritmos
de complejidad lineal, en este caso se aplican a listas de longitud 2, luego
realizan una cantidad constante de operaciones. En el algoritmo que estamos
estudiando hay primero dos algoritmos constantes, después un bucle que se
repite n = a1 veces y que realiza cada vez que se ejecuta una cantidad
constante de operaciones. Finalmente una asignación de signo, que se hace
mediante una cantidad constante de operaciones. Así el algoritmo es de
complejidad lineal.
Ejercicio 45.
Entrada a, n.
If a = n = 0 then p :=indeterminación
else
if n ≥ 0 then
2.7. EJERCICIOS RESUELTOS 117
p := 1, i := 1
while i ≤ n
p := p ∗ a
i := i + 1
else
p := 1, i := 1
while i ≤ |n|
p := p ∗ (1/a)
i := i + 1
Salida:=p
El tamaño de la entrada es |n| y la complejidad del algoritmo es lineal ya
que el bucle se repite exactamente tantas veces como el tamaño de la entrada.
Ejercicio 47.
Datos de entrada: a1 , a2 , ..., an , a
i := 0 , j := 0
While i ≤ n − 1
i := i + 1
b := ai mod a
If b := 0 then j := j + 1, dj := ai y ej = i
Salida: Hay j múltiplos de a. Están en las posiciones e1 , ..., ej y sus
valores son d1 , ..., dj .
Calculemos la complejidad. Hay:
1) dos asignaciones y el cálculo de n − 1. Total: 3 operaciones.
2) un bucle que se repite n veces. Dentro del bucle hay: dos asignaciones,
el cálculo de un resto y una suma, una condicional con una condición y, en
el peor de los casos, tres asignaciones y una suma. Total: 9n.
3) Del bucle se sale cuando la comparación es falsa. Total: Una operación.
T (n) = 3 + 9n + 1 = 9n + 4.
La complejidad es lineal.
Ejercicio 48. Sean a1 , a2 , ..., an las cifras en bits de uno de los números y
b1 , b2 , ..., bn las del otro.
Datos de entrada: a1 , a2 , a3 , ..., an ; b1 , b2 , ..., bn
c := 0
For i = 1 to n
2.7. EJERCICIOS RESUELTOS 119
If ai 6= bi then c := c + 1
Salida: c
Calculamos la complejidad. Hay:
1) Una asignación.
2) Un bucle que se repite n veces. Dentro de él, y en el peor de los casos,
hay una comparación, una suma y una asignación. Total: 3n operaciones.
Entonces T (2n) = 3n + 1 operaciones (notemos que hay 2n datos de
entrada). Por tanto, T (n) = 23 n + 1.
La complejidad es lineal.
Ejercicio 49. La idea de este algoritmo es leer la lista hasta que lleguemos
al punto en el que debemos insertar el número dado a. Almacenar en valor
de la lista en ese punto en una variable auxiliar (para no perderlo), introducir
el valor a, y a partir de allí colocar los demás elementos de la lista. Estos
últimos elementos se pueden rellenar desde el nal de la lista hasta el punto
en el que está a (probar otras alternativas para comprobar que es esta la que
mejor funciona).
Datos de entrada: a1 , a2 , a3 , ..., an ; a
i := 0 , p := 0
While i ≤ n − 1 and p ≥ 0
i := i + 1
p := a − ai
c := ai , ai := a
For j = 0 to n − i − 1
an+1−j := an−j
ai+1 := c
Salida: a1 , a2,....., an+1
Complejidad. Hay:
1) Dos asignaciones y el cálculo de n − 1. Total: 3 operaciones.
2) Un bucle que se repite, en el peor de los casos, n veces. En cada
pasada del bucle tendremos dos comparaciones, una asignación y una suma,
otra asignación y una diferencia. Total: 6n.
3) Del bucle se sale cuando una de las comparaciones sea falsa, lo que da
lugar a otra operación.
4) Dos asignaciones. Total: 2 operaciones.
5) El cálculo de n − i − 1. 2 operaciones
120 CAPÍTULO 2. ALGORITMOS
Notemos que es imposible que se ejecuten todas las operaciones del bucle
de 2) y del bucle de 6) ya que, en el valor del índice en el que termina uno
termina el otro. En el peor de los casos, es el bucle 2) el que se ejecuta
completamente.
En consecuencia la complejidad es lineal.
Ejercicio 50.
Datos de entrada: a1 , a2 , ..., an ; b1 , b2 , ..., bn
For i := 1 to n
For j := 1 to n
cij := (ai , bj )
Salida: c11 , c12 , ..., c21 , c22 , ...., cn1 , ..., cnn
Complejidad. Hay dos bucles anidados. El primero se repite n veces y
el segundo otras n. En este segundo bucle hay una asignación. Por tanto,
T (2n) = n2 . Por tanto, T (n) = 14 n2 . Complejidad cuadrática.
Capítulo 3
Aritmética modular
N = {1, 2, 3, 4....}
Z = {0, 1, −1, 2, −2, ...}.
Son, como decimos, objetos con los que estamos habituados a trabajar y
de hecho en el capítulo 1 hemos usado una de sus propiedades fundamentales
121
122 CAPÍTULO 3. ARITMÉTICA MODULAR
Vamos a demostrar por inducción que A = N con lo que las reglas anteriores
permiten denir a + b para cada par de números naturales a, b ∈ N.
Base de inducción. Se tiene que 1 ∈ A ya que la primera regla indica
que a + 1 = s(a).
Paso de inducción. Debemos demostrar que si b ∈ A entonces s(b) ∈ A.
Como por hipótesis de inducción b ∈ A entonces a + b está denido. Usando
la regla segunda sabemos que a + s(b) = s(a + b) con lo que a + s(b) está
denido y por tanto s(b) ∈ A como queríamos demostrar.
Estudiemos la estructura algebraica del par (N, +), es decir las propie-
dades que verican los números naturales con esta operación de suma. Se
tienen las siguientes:
i) propiedad asociativa: (a + b) + c = a + (b + c) para cualesquiera
a, b, c ∈ N,
ii) propiedad conmutativa: para cualquier pareja a, b ∈ N se tiene que
a + b = b + a.
Los números naturales con esta operación de producto, (N, ×), tienen
las siguientes propiedades, que se pueden demostrar usando el principio de
inducción y las reglas de denición del producto:
1) propiedad asociativa: (a × b) × c = a × (b × c) para cualesquiera
a, b, c ∈ N,
124 CAPÍTULO 3. ARITMÉTICA MODULAR
Una vez denidos los números naturales, los números enteros se pueden
construir a partir de los naturales de la siguiente manera. Tomamos dos
copias del conjunto de los números naturales, marcando los elementos de
una de ellas con un signo menos. Llamamos N+ = {1, 2, 3, 4, ...} a la primera
copia y N− = {−1, −2, −3, −4, ...} a la segunda. Los números enteros son la
unión de N+ , N− y un conjunto formado por un elemento distinguido, que
escribimos como {0}:
• s(0) = 1,
• s(−1) = 0,
• a(0) = −1,
• a(1) = 0,
3.1. LOS NÚMEROS NATURALES Y LOS NÚMEROS ENTEROS 125
Ejercicio 53 Demostrar por inducción estructural que con las reglas ante-
riores se dene n + m para cada n, m ∈ Z.
Y los números enteros con la operación de suma así construida, (Z, +), ve-
rican las siguientes propiedades, que se pueden demostrar usando las reglas
de denición de la suma y el principio de inducción estructural:
i) propiedad asociativa: (a + b) + c = a + (b + c) para cualesquiera
a, b, c ∈ Z,
ii) propiedad conmutativa: para cualquier pareja a, b ∈ Z se tiene que
a + b = b + a.
iii) existencia de elemento neutro: existe un entero 0 ∈ Z tal que para
cualquier número entero a ∈ Z se tiene que a + 0 = 0 + a = a,
iv) existencia de elemento inverso: para cualquier entero a ∈ Z existe
otro entero denominado −a ∈ Z tal que a + (−a) = (−a) + a = 0.
Notación. En la propiedad iv) para cada a ∈ Z denotamos con −a el inverso
de a. Se puede demostrar que: si a = 0 entonces −a = 0; que si a ∈ N+
entonces −a es su correspondiente pareja marcada en N− y que si a ∈ N−
entonces −a es su correspondiente pareja en N+ quitándole la marca. Por
126 CAPÍTULO 3. ARITMÉTICA MODULAR
1 2 3 4 ...
• • • • ...
Consideremos N+ ⊂ Z (a veces diremos sencillamente N ⊂ Z) así orde-
nado según el orden anteriormente descrito. Vamos a extender dicho orden
a los números enteros, de manera que se respete el orden que tenemos en
N+ . La relación de orden se denirá de la siguiente manera: sean a, b ∈ Z
entonces a ≥ b si y solamente si a − b ∈ N+ ∪ {0}.
Este orden sobre el conjunto de los números enteros se suele representar
en una recta (hacia la derecha los valores mayores):
... −2 −1 0 1 2 ...
... • • • • • ...
o lo que es lo mismo
a = qb + r.
Para demostrar que r < b se razona por reducción al absurdo. Si r ≥ b
entonces r = b + l con l ∈ N+ ∪ {0}, de modo que
a = (q + 1)b + l
a≤b
Ejemplo 3.3.6 Los enteros 5, 13 y 19 son números primos, 125 y 258 son
compuestos.
b = pt r = pu,
con lo cual
125 = 122 × 1 + 3.
Por tanto:
De nuevo:
122 = 3 × 40 + 2,
y por tanto:
3 = 2 × 1 + 1,
lo que signica:
mcd(a, b) = sa + tb.
r0 = a − q0 b.
r1 = b − q1 (a − q0 b) = (1 + q1 q0 )b − q1 a.
Por tanto
ai = si−2 − qi si−1
3.3. DIVISIBILIDAD, MCD Y FACTORIZACIÓN 135
y
bi = ti−2 − qi ti−1
hacen que se verique el lema.
5 = 2 × 20 + (−1) × 35.
1 = sa + tp.
b = sab + tpb.
Como p divide a ab se tiene que existe c ∈ Z tal que ab = pc, de este modo:
3.3.3 Factorización
Finalizamos esta sección con una propiedad fundamental de los números
enteros, la de la factorización única como producto de números primos. Esto
es, cada número entero se puede escribir de forma única como producto de
números primos.
Entrada: a (a > 2)
i := 2
while a mod i 6= 0
i := i + 1
If i < a then r :=i es factor de a else r :=a es primo
3.3. DIVISIBILIDAD, MCD Y FACTORIZACIÓN 137
Salida: r
Por tanto:
o bien existe qi distinto a cualquiera de los pj , lo que es una contradicción
porque entonces por un lado qi divide a a y por el otro qi no divide a a (aquí
se está usando el corolario 3.3.14);
o bien n = m y, reordenando si es necesario, p1 = q1 , ..., pn = qn y existe
ai 6= bi . Supongamos que ai > bi (si no fuera así el razonamiento se haría
cambiando los papeles de la a y la b) entonces tomando el cociente c := a/pbi i
se tiene que por un lado pi divide a c y por el otro pi no divide a c, ya que c es
producto de primos distintos de pi (aquí de nuevo se está usando el corolario
3.3.14) lo que es una contradicción.
Por tanto concluimos la demostración del teorema, al haber demostrado
tanto la existencia como la unicidad de la factorización de a.
138 CAPÍTULO 3. ARITMÉTICA MODULAR
8872 = 23 × 1109.
Observar la mejora que ha introducido el hecho de sólo tener que probar
con los primos hasta la raíz de 1109.
a − c = (a − b) + (b − c) = pq + pr = p(q + r).
números que dan resto 0 al dividir por 5 (es decir los múltiplos de 5), los que
dan resto 1, los que dan resto 2, 3 ó 4.
En este sentido, al tomar relación módulo 5, se tienen 5 elementos, los
que se relacionan con el 0, con el 1, ..., con el 4:
• 0 ≡ 5 ≡ 10 ≡ 15 ≡ 20... mod 5
• 1 ≡ 6 ≡ 11 ≡ 16 ≡ 21... mod 5
• 2 ≡ 7 ≡ 12 ≡ 17 ≡ 22... mod 5
• 3 ≡ 8 ≡ 13 ≡ 18 ≡ 23... mod 5
• 4 ≡ 9 ≡ 14 ≡ 19 ≡ 24... mod 5
Los números negativos también son de alguno de esos tipos:
• 4 ≡ −1 ≡ −6 ≡ −11 ≡ −16... mod 5
• 3 ≡ −2 ≡ −7 ≡ −12 ≡ −17... mod 5
• 2 ≡ −3 ≡ −8 ≡ −13 ≡ −18... mod 5
• 1 ≡ −4 ≡ −9 ≡ −14 ≡ −19... mod 5
• 0 ≡ −5 ≡ −10 ≡ −15 ≡ −20... mod 5
Esto indica que para hacer operaciones con un entero a módulo un cierto
número p podemos utilizar el resto de dividir a por p. Esta elección simplica
las operaciones.
Por ejemplo, si queremos multiplicar módulo 5 los números 7421 y 124590,
en lugar de hacer la multiplicación directamente, tomamos los restos módulo
5 y así
7421 × 124592 ≡ 1 × 2 ≡ 2 mod 5.
a = {b ∈ A : b ∼ a}.
142 CAPÍTULO 3. ARITMÉTICA MODULAR
A/∼ = {a : a ∈ A}.
Para sumar basta saber lo que ocurre al hacer las sumas módulo 7 de los
números del 0 al 6 y lo mismo para el producto. Lo representamos en dos
tablas:
+ 0 1 2 3 4 5 6
0 0 1 2 3 4 5 6
1 1 2 3 4 5 6 0
2 2 3 4 5 6 0 1
3 3 4 5 6 0 1 2
4 4 5 6 0 1 2 3
5 5 6 0 1 2 3 4
6 6 0 1 2 3 4 5
3.5. SISTEMAS DE ECUACIONES MÓDULO ENTEROS 143
× 0 1 2 3 4 5 6
0 0 0 0 0 0 0 0
1 0 1 2 3 4 5 6
2 0 2 4 6 1 3 5
3 0 3 6 2 5 1 4
4 0 4 1 5 2 6 3
5 0 5 3 1 6 4 2
6 0 6 5 4 3 2 1
0, 1, ..., p − 1
anillo de los números enteros podemos restar (existe el inverso para la suma)
y se respetan las relaciones de congruencia.
Ahora lo que querríamos es pasar el 3 dividiendo, lo que en los números
enteros no podemos hacer porque el inverso de 3 es la fracción 1/3 que no
es un número entero. La cuestión natural es saber si al trabajar módulo 5
(o módulo otros números enteros) el 3 tiene o no inverso para el producto
módulo p. Para saber cuándo ocurre esto necesitamos el lema de Bezout,
demostrado anteriormente.
1 ≡ sa mod p,
Por tanto s es el inverso de a para el producto módulo p.
y de este modo
t ≡ 0 mod p
lo que es una contradicción pues 1 < t < p.
3x + 3 ≡ 4 mod 5.
3x ≡ 1 mod 5.
3 × 0 ≡ 0 mod 5
3 × 1 ≡ 3 mod 5
3 × 2 ≡ 1 mod 5
3 × 3 ≡ 4 mod 5
3 × 4 ≡ 2 mod 5
3x × 2 ≡ 1 × 2 mod 5,
es decir,
x ≡ 2 mod 5.
Por tanto todos los números enteros x que son solución de la congruencia son
de la forma
x = 5K + 2 K ∈ Z.
no tiene solución.
x ≡ a1 mod p1
3.5. SISTEMAS DE ECUACIONES MÓDULO ENTEROS 147
x ≡ a2 mod p2
...
x ≡ an mod pn
x ≡ a1 mod p1
x ≡ a2 mod p2
...
x ≡ an mod pn
tiene solución única módulo el producto P = p1 p2 ...pn .
qi Pi ≡ 1 mod pi .
Sea entonces
x0 = a1 P1 q1 + a2 P2 q2 + ... + an Pn qn
de modo que al tomar congruencia módulo pi se obtiene:
si j 6= i entonces Pj es divisible por pi , por tanto Pj ≡ 0 mod pi
si j = i entonces Pi qi ≡ 1 mod pi ,
por tanto x0 ≡ ai mod pi (i = 1, ..., n) como queríamos demostrar. Así todos
los números de la forma
x = x0 + KP
148 CAPÍTULO 3. ARITMÉTICA MODULAR
x ≡ 0 mod p1
x ≡ 0 mod p2
...
x ≡ 0 mod pn
es decir, α ≡ β mod P , (ya que α − β es múltiplo de pi para cada i) lo que
demuestra la unicidad de la solución módulo P .
Como 3, 5 y 7 son primos entre sí, el teorema chino de los restos permite
calcular la única solución módulo 3 × 5 × 7 = 105.
Siguiendo la notación del teorema
P1 = 105/3 = 35
P2 = 105/5 = 21
P3 = 105/7 = 15
x = 2 × 35 × 2 + 3 × 21 × 1 + 2 × 15 × 1 = 233
3.5. SISTEMAS DE ECUACIONES MÓDULO ENTEROS 149
es la única solución módulo 105, de modo que todas las soluciones del sistema
son:
x = 23 + 105K K ∈ Z.
Una aplicación que podríamos presentar del teorema chino de los restos es
la observación de que los restos módulo un conjunto de números primos entre
sí permiten determinar unívocamente un número. De esta manera números
de gran tamaño se podrían representar por sus restos módulo unos ciertos
primos y así reducir sustancialmente su tamaño. Con estos restos se pueden
hacer operaciones y la recuperación del número en cuestión pasa por la re-
solución de un sistema de congruencias. Esto resolvería parcialmente, como
veremos en el ejemplo siguiente, la limitación de dígitos de una máquina.
El segundo verica:
Y para hacer la suma basta hacer la suma de los restos, y después resolver
el sistema
x ≡ 47 + 58 mod 100
x ≡ 72 + 93 mod 99
x ≡ 78 + 7 mod 97
En este último paso, para recuperar el número, hay que hacer operaciones
con enteros de más de 8 dígitos, por lo que, propiamente, con 8 dígitos sólo
podemos hacer aritmética con las representaciones por sus restos módulo 100,
99 y 97.
150 CAPÍTULO 3. ARITMÉTICA MODULAR
También puede usarse este teorema para hacer recuentos con números
grandes.
Ejemplo 3.5.10 Supongamos que tenemos una manifestación que sabemos
que ha congregado a menos de un millón de personas y queremos, desde la
organización, saber el número exacto de congregados. Les pedimos que se
agrupen de 100 en 100 y apuntamos el resto. Pongamos que son 30. Esto
indica que el número x de participantes verica
x ≡ 30 mod 100.
Después les pedimos que se agrupen en grupos de 99, y sobran 25 y en grupos
de 97 y sobran 13. Es decir, se tiene el siguiente sistema de congruencias:
x ≡ 30 mod 100
x ≡ 25 mod 99
x ≡ 13 mod 97
Como 100, 99 y 97 son primos entre sí, el sistema tiene solución. Como
100 · 99 · 97 = 960.300 entonces la única solución positiva y menor que ese
número es el número de participantes en la manifestación.
Ejercicio 66 Determinar el número de participantes en la anterior mani-
festación.
a = a0 × b0 + a1 × b1 + a2 × b2 + ... + an × bn .
a = q0 b + r0 .
Esto muestra que a0 = r0 porque 0 ≤ r0 < b. Además muestra la unicidad
de a0 ya que el teorema del resto garantiza que el resto es único.
Si dividimos ahora q0 entre b se obtiene
q0 = bq1 + r1
y entonces
a = b2 q1 + br1 + a0 ,
con lo cual a1 = r1 (de nuevo único porque es un resto), y así sucesivamente
hasta que el cociente qn sean menor que b.
1101
1001
−−−−
10110
En la primera cifra hemos sumado 1+1 que da 2 que alcanza a la base, por
tanto da 0 y me llevo 1.
1101
11
−−−−−
1101
1101
−−−−−
100111
3.7 Ejercicios
Ejercicio 71. Poner dos ejemplos de:
i) números congruentes con 2 módulo 3,
ii) números congruentes con 5 módulo 7,
iii) números congruentes con 11 módulo 5,
iv) números no nulos módulo 12 tal que su producto módulo 12 sea nulo,
v) números distintos de 1 módulo 15 tal que su producto sea 1.
x ≡ 2 mod 6
x ≡ 3 mod 9
Ejercicio 76. Demostrar que los siguientes sistemas tienen solución y resol-
verlos:
i)
x ≡ 3 mod 5
x ≡ 5 mod 7
ii)
y ≡ 5 mod 11
y ≡ 7 mod 13
154 CAPÍTULO 3. ARITMÉTICA MODULAR
Ejercicio 54. Basta tener en cuenta el signo y usar el producto que tenemos
en los números enteros no negativos, N+ .
Denimos como es habitual el valor absoluto de n ∈ Z como |n| = n si
n ∈ N+ , |0| = 0 y |n| = −n si n ∈ N− :
• a×0=0×a=0
Ejercicio 55. Dadas dos matrices, se dene la suma como la suma de cada
una de sus entradas. Como cada entrada está formada por un número entero,
la asociatividad de la suma de matrices es consecuencia de la asociatividad
de la suma de los números enteros. Idem la conmutatividad.
El elemento neutro es la matriz nula, cuyas entradas son nulas.
3.8. EJERCICIOS RESUELTOS 155
µ ¶
0 0
0 0
El elemento inverso para la suma de una matriz A es la matriz −A resul-
tado de cambiar de signo cada entrada de A, denominada con la letra a y su
correspondiente subíndice.
µ ¶
−a11 −a12
−A =
−a21 −a22
Sean dos matrices A y B cuyas entradas son denominadas respectivamente
con las letras a y b (y sus correspondientes subíndices). El producto de
matrices se dene:
µ ¶
a11 b11 + a12 b21 a11 b12 + a12 b22
AB =
a21 b11 + a22 b21 a21 b11 + a22 b21
Comprobamos que es asociativo, esto es, (AB)C = A(BC), donde las
entradas de C están denominadas con la letra c. Lo hacemos para la entrada
de subíndice 11 del producto, de igual manera se haría para las otras tres
entradas.
En el producto (AB)C se tiene que dicha entrada es:
(a11 b11 + a12 b21 )c11 + (a11 b12 + a12 b22 )c21 .
a11 (b11 c11 + b12 c21 ) + a12 (b21 c11 + b22 c21 ).
µ ¶
1 0
N=
1 0
se puede comprobar que M N 6= N M con lo que el producto de matrices
no es conmutativo.
Ejercicio 56. El resto de dividir 9981 entre 247 es 101. El resto de dividir
247 entre 101 es 45. El resto de dividir 101 entre 45 es 11. El resto de dividir
45 entre 11 es 1. Por tanto:
Ejercicio 57.
Entrada: a, b ∈ N, a ≥ b
i := a, j := b
while j 6= 0
r := i mod j
i := j
j := r
Salida: i
1653 = 3 × 19 × 29.
b − d = tp.
(a + b) − (c + d) = p(t + s).
ab − bc = spb.
bc − dc = tpc.
3x = 6k + 1
158 CAPÍTULO 3. ARITMÉTICA MODULAR
x = 7k + 2.
Los ejercicios 67), 68), 69) y 70) Se presentan hechos con Maple.
> cambio10a(8,2);
0, 0, 0, 1
> cambio10a(724,6);
4, 0, 2, 3
> 2*(8^0)+2*(8^1)+3*(8^2)+2*(8^3);
1234
Ejercicio 69.
> cambio10a(1465,2);
1, 0, 0, 1, 1, 1, 0, 1, 1, 0, 1
> cambio10a(1465,5);
0, 3, 3, 1, 2
> cambio10a(1465,7);
2, 6, 1, 4
De base a a base 10
160 CAPÍTULO 3. ARITMÉTICA MODULAR
El procedimiento es el siguiente:
> cambioa10:=proc(l,a)
> local s,i:
> s:=l[1]:
> for i from 2 to nops(l)
> do
> s:=s+l[i]*a^(i-1):
> od:
> s;
> end:
Veamos ejemplos:
> cambio10a(567,3);
0, 0, 0, 0, 1, 2
> cambioa10([cambio10a(567,3)],3);
567
> cambioa10([1,1,1,0,1],2);
23
Ejercicio 68.
> cambioa10([1,0,0,1,0,0,1,0,1],2);
329
> cambioa10([1,0,1,2,1],3);
145
> cambioa10([4,0,1,2,4,3],7);
60764
De base a a base b
Lo hacemos usando los procedimientos antes denidos, pasando por la
base 10:
3.8. EJERCICIOS RESUELTOS 161
> cambioab:=proc(l,a,b)
> local temp:
> temp:=cambioa10(l,a):
> cambio10a(temp,b);
> end:
Ejemplos:
> cambioab([1,1,0,1],2,3);
2, 0, 1
> cambioa10([1,1,0,1],2);
> cambioa10([2,0,1],3);
11
11
> suma2([0,1],[1]);
[1, 1, 0]
lista m con nops(m) elementos. Hay que construir un bucle que recorre la
lista m. Si la entrada primera es un 0 no hace nada, si no toma la lista l. Si
la entrada segunda es 0 no hace nada, si no toma la lista l y le añade un 0 al
nal. Suma la primera y la segunda lista y así procede sucesivamente.
Ejercicio 71.
i) el 2+3=5 y 2+2×3=8.
ii) el 5+7=12 y el 5+7×2=19.
iii) el 11+5=16 y el 11+2×5=21
iv) 3 y 4 (3 × 4 = 12 ≡ 0 mod 12), 2 y 6 (2 × 6 = 12 ≡ 0 mod 12).
v) 2 y 8 (2 × 8 = 16 ≡ 1 mod 15), 4 y 4 (4 × 4 = 16 ≡ 1 mod 15).
Ejercicio 72.
i)
mcd(10223, 33341) = mcd(33341, 10223)
Como 33341 mod 10223 = 2672,
mcd(111, 7) = mcd(7, 6)
mcd(7, 6) = mcd(6, 1) = 1
mcd(189, 7) = mcd(7, 0)
n ≡ a0 + a1 + ... + an mod 9.
Lo que signica que n es múltiplo de 9 si y solamente si lo es a0 + a1 +
... + an .
Ejercicio 74.
i) 3 + 5 = 8. 8 mod 5 = 3 mod 5
4 + 8 = 12 = 2 mod 5
164 CAPÍTULO 3. ARITMÉTICA MODULAR
x = 3 + 9K2
Tenemos pues
2 + 6K1 = 3 + 9K2
que implica
6K1 − 9K2 = 1
Pero 6K1 − 9K2 = 3(2K1 − 3K2 ) lo que implica
3(2K1 − 3K2 ) = 1
q1 7 ≡ 1 mod 5
q2 5 ≡ 1 mod 7
x = 33 + 35k
q1 13 ≡ 1 mod 11
q2 11 ≡ 1 mod 13
x = 137 + 143k.
166 CAPÍTULO 3. ARITMÉTICA MODULAR
Capítulo 4
Combinatoria
4.1 Introducción
Como hemos señalado en el párrafo introductorio, el primer problema que
tratamos de abordar es el de contar, es decir, computar el número de elemen-
tos de un conjunto. Y además hacerlo de manera inteligente. Comencemos
con un ejemplo.
167
168 CAPÍTULO 4. COMBINATORIA
T otal : 32 + 16 + 8 + 4 + 2 + 1 = 63.
T otal : 64 − 1 = 63.
512 − 1 = 511.
Con este ejemplo hemos querido mostrar lo que se pretende al desarro-
llar la combinatoria, no sólo contar todos los elementos que conforman un
conjunto nito, sino hacerlo de forma inteligente para que se puedan obtener
fórmulas generalizables a situaciones anes.
Por otro lado también la combinatoria presenta una faceta distinta, la de
enumerar los elementos de un conjunto nito. Es decir, dado un conjunto
denido por una cierta propiedad, diseñar algoritmos que presenten todos los
elementos del conjunto.
4.1. INTRODUCCIÓN 169
13 + 12 + 11 + 10 + 9 + ... + 1.
(14 × 13)/2.
Por tanto principalmente contar pero también enumerar son los obje-
tivos del capítulo.
170 CAPÍTULO 4. COMBINATORIA
|A| = n.
4.2. TÉCNICAS DE CONTEO 171
4.3 Variaciones
Partimos del siguiente problema:
Problema. Dada una carrera con 154 participantes, determinar cuántos
posibles resultados pueden producirse para el podium (oro, plata y bronce).
Observamos que para el ganador del oro hay 154 posibilidades (cualquier
corredor); una vez que se ha establecido quién ha ganado el oro, para el
ganador de la medalla de plata hay 153 posibilidades; y sabiendo el ganador
del oro y la plata tenemos 152 resultados posibles para el bronce. De este
modo hay 154×153×152 posibles resultados de la carrera o equivalentemente
hay 154 × 153 × 152 funciones inyectivas de N3 en N154 .
V10,4 = 10 × 9 × 8 × 7
3. Si el corredor más rápido del ejemplo anterior tiene que correr nece-
sariamente en primer lugar, entonces el problema es calcular los equipos de
tres relevistas entre los 9 seleccionados que quedan.
V9,3 = 9 × 8 × 7
Resumiendo, es lo mismo:
• El número de aplicaciones inyectivas de Nn en Nm .
4.3. VARIACIONES 175
Vm,n = 0 si m < n
B×B×B×B
f (0) = 2
f (1) = 2
f (2) = 1
f (3) = 1
Corresponde a la palabra 1100. Como en este caso se permiten palabras
con letras repetidas, las funciones que estamos contando no tienen por qué
ser inyectivas. Por ejemplo la palabra 0000 responde a la función constante
g : N4 → N2 denida como g(a) = 1 para cada a ∈ N4 .
Resumiendo, es lo mismo:
• El número de aplicaciones de Nn en Nm .
4.4. PERMUTACIONES 177
4.4 Permutaciones
Un caso particular de las variaciones resulta cuando m = n, es decir, cuan-
do tratamos de contar el número de funciones inyectivas de Nn en Nn . La
observación siguiente muestra que entonces debemos contar las funciones bi-
yectivas (o biyecciones) de Nn en Nn .
V5,5 = 5 × 4 × 3 × 2 × 1.
{p, s, v}
{p, v, s}
{s, p, v}
{s, v, p}
{v, s, p}
{v, p, s}.
Resumiendo, es lo mismo:
• El número de aplicaciones biyectivas de Nn en Nn .
• El número de ordenaciones distintas de un conjunto de n elementos.
• El número de permutaciones de un conjunto de n elementos
Pn = n!.
T otal := P3 /2 = 3.
BBC 1122.
Resumiendo, es lo mismo:
n!
Pnn1 ,...,ns = .
n1 !...ns !
4.5 Combinaciones
El último concepto de combinatoria que vamos a denir es el de combinacio-
nes que hace referencia al siguiente problema:
V85,3
T otal : .
P3
Para, efectivamente, sólo contar cada subconjunto una vez.
Vm,n m!
Cm,n = = .
Pn n!(m − n)!
¡m¢
Notación. Escribiremos Cm,n como n
.
¡m¢
Observación 4.5.2 Por denición 0! = 1 y 0
= 1.
4.5. COMBINACIONES 183
¡m¢
Denición 4.5.3 Al número n
se le denomina número combinatorio
m sobre n.
V10,5 10 × 9 × 8 × 7 × 6
C10,5 = = .
P5 5×4×3×2
Resumiendo, es lo mismo:
µ ¶ µ ¶
m m
1) = .
n m−n
µ ¶ µ ¶ µ ¶
m m−1 m−1
2) = + .
n n−1 n
µ ¶ µ ¶ µ ¶
n n n
3) + + ... + = 2n .
0 1 n
La propiedad 1) viene
¡m¢ de observar el siguiente hecho: interpretemos el
número combinatorio n como el número de subconjuntos de n elementos
de un conjunto A de m elementos. Elegir uno de estos subconjuntos B ⊂ A
consiste en determinar los n elementos que conforman B o equivalentemente
señalar los m − n elementos que conforman A − B . Por tanto en A hay
exactamente tantos subconjuntos de n elementos como de m − n elementos.
¡ ¢
La propiedad 2) se deduce de lo siguiente. Interpretemos de nuevo mn
como el número de subconjuntos de n elementos en A (|A| = m). Fijamos un
elemento a ∈ A. Los subconjuntos de n elementos de A se dividen entonces
en los que contienen a a y los que no lo contienen.
El número de subconjuntos de n elementos de A que contienen a a es
exactamente: µ ¶
m−1
n−1
ya que puede interpretarse como el número de subconjuntos de n−1 elementos
de A − {a}.
El número de subconjuntos de n elementos de A que no contienen a a es
exactamente: µ ¶
m−1
n
ya que puede interpretarse como el número de subconjuntos de n elementos
de A − {a}.
Por tanto la cantidad total de subconjuntos de n elementos es:
µ ¶ µ ¶ µ ¶
m m−1 m−1
= + .
n n−1 n
4.5. COMBINACIONES 185
es decir:
n µ ¶
X
n n
(a + b) = an−k bk .
k=0
k
Esta fórmula se puede demostrar por inducción sobre n usando las propieda-
des de los números combinatorios.
Si aplicamos esta fórmula a a = 1 y b = 1 tenemos:
µ ¶ µ ¶ µ ¶ µ ¶
n n n n n n
(1 + 1) = 2 = + + ... + + .
0 1 n−1 n
x5 , x4 y, x3 y 2 , x2 y 3 , xy 4 ,
y 5 , y 4 z, y 3 z 2 , y 2 z 3 , yz 4 ,
z 5 , x4 z, x3 z 2 , x2 z 3 , xz 4 ,
x3 yz, xy 3 z, xyz 3 ,
x2 y 2 z, xy 2 z 2 , x2 yz 2 .
Este mismo razonamiento permite calcular la fórmula general.
Denición 4.5.5 Sea un conjunto de m elementos, denimos el número de
combinaciones con repetición de m elementos tomados de n en n al
número de selecciones no ordenadas de n elementos (con posibles repeticio-
nes) en un conjunto de m elementos. Se denota CRm,n y se calcula mediante
la fórmula:
µ ¶
m+n−1
CRm,n =
n
4.5. COMBINACIONES 187
Ejercicio 84 1) Dada una nube de 312 puntos diferentes, donde nunca tres
de ellos están alineados, determinar el número de triángulos distintos que se
pueden formar con dichos puntos.
2) Si entre los puntos de 1) existen 5 puntos que están alineados, computar
cuántos triángulos se pueden formar.
Resumiendo, es lo mismo:
4.6 Probabilidad
Una de las aplicaciónes fundamentales de la combinatoria es el cálculo de
probabilidades, es decir, estimar con qué seguridad va a ocurrir un suceso.
La regla básica por la que se rigen los experimentos que tienen una cantidad
nita y equiprobable de resultados es que la probabilidad de que ocurra un
suceso determinado es el cociente del número de casos en los que ocurre
este suceso entre la cantidad total de casos posibles. Así al tirar un dado,
la probabilidad de que salga un 6 es 1/6 porque los posibles resultados son
el conjunto {1, 2, 3, 4, 5, 6} y el caso que nos interesa (el 6) es uno de estos
6 posibles resultados. La idea de fondo es que si uno tirara un dado una
cantidad muy alta de veces, le saldrían (más o menos) la misma cantidad
de resultados 1, que 2, ..., que 6. Esta ley se suele conocer como Ley de los
grandes números.
Pero volviendo al hecho de que la probabilidad es un campo de aplicación
de la combinatoria, podemos complicar el problema y pedir la probabilidad de
que al tirar dos dados consecutivamente se obtenga una pareja de seises. Por
ejemplo, este tipo de estudio es fundamental para asignar premios en juegos
de azar, para establecer el precio de una poliza de seguros... La cantidad
total de resultados es V R6,2 = 36, el resultado (6, 6) es uno de ellos por tanto
su probabilidad es 1/36. Observemos sin embargo que la probabilidad de
que salga un 3 y un 2 es justamente el doble ya que son dos los resultados
posibles: (2, 3) y (3, 2).
p(S) = |S|/|Ω|.
S = Ω − S = {x ∈ Ω : x ∈
/ S}
y su probabilidad es:
P (S) = 1 − P (S).
Esta propiedad 4 es consecuencia de las anteriores ya que
S∪S =Ω S ∩ S = ∅.
Observamos que µ ¶ µ ¶
9 10
: = 1/10
5 5
lo que se puede interpretar como que, al haber 10 jugadores, la probabilidad
de que uno de ellos no esté en el equipo es el cociente de 1/10, el jugador que
no está entre los jugadores que hay.
Observación 4.6.11 En los casos donde todos los elementos de Ω son equi-
probables, para cada ai ∈ Ω se tiene
p(ai ) = 1/|Ω|.
p(5) = a
p(6) = a
p(2) = 2a
p(1) = 4a
Como 1 ≥ a ≥ 0 y 4a + 2a + a + a + a + a = 10a = 1 entonces a = 1/10.
De este modo:
p(1) = 4/10
p(2) = 2/10
p(i) = 1/10 i = 3, 4, 5, 6.
Y para calcular la probabilidad de cualquier suceso S bastará escribirlo
como unión disjunta de sus subconjuntos unitarios. Por ejemplo sea S el
suceso, el resultado sea par, entonces S = {2, 4, 6}, por lo que
Ejemplo 4.6.17 Extraemos una carta al azar en una baraja española, los
sucesos S : sea gura y S 0 : sea de oros son independientes porque p(S) =
12/40, p(S 0 ) = 10/40 y p(S ∩ S 0 ) = 3/40. Y efectivamente
3 12 10
= .
40 40 40
Ejercicio 88 Comprobar si los sucesos S : una familia con tres hijos tenga
hijos de los dos sexos y S 0 : una familia con tres hijos tenga al menos un chico
son independientes.
4.6. PROBABILIDAD 195
Ejemplos 4.6.19 1) Lanzar una moneda trucada que saca cara con proba-
bilidad 1/3 y cruz con probabilidad 2/3.
2) Lanzar un dado que tiene las caras coloreadas de dos colores, 5 de
ellas en rojo, una de ellas en negro, el rojo tiene probabilidad 5/6 y el negro
probabilidad 1/6.
Denición 4.6.20 Una variable aleatoria es una función del espacio mues-
tral de un experimento aleatorio en los números reales.
4.7 Ejercicios
Ejercicio 92. Determinar de cuántas maneras se puede elegir un cuadrado
blanco y otro negro en un tablero de ajedrez de modo que los dos cuadrados
no estén en la misma la ni en la misma columna.
Ejercicio 98. Tenemos 10 naipes de los cuáles son 3 ases de oros, 4 caballos
de bastos y otras 3 cartas diferentes entre sí y a las anteriores. Si ponemos
las 10 cartas en la, determinar el número de distintas las que se pueden
formar.
Ejercicio 106. Si S y S 0 son dos sucesos con p(S) = 0.8 y p(S 0 ) = 0.6,
demuestra que p(S ∩ S 0 ) ≥ 0.4. En general para cada par de sucesos se
verica p(S ∩ S 0 ) ≥ p(S) + p(S 0 ) − 1.
Ejercicio 78.
i) Como no se indica nada, las letras se pueden repetir: V R29,5 = 295 .
ii) V29,5 = 29 × 28 × 27 × 26 × 25.
iii) Las palabras que no contienen a la letra b son 285 por lo que la
contienen 295 − 285 .
iv) Razonando como en iii) son V29,5 − V28,5 .
v) Si empiezan por vocal y se pueden repetir son 5 × 294 . Si no se pueden
repetir son 5 × V28,4 .
vi) Si se pueden repetir son 5 × 293 . Si no se pueden repetir son 5 × V27,3 .
vii) Si se pueden repetir son 53 × 292 . Si no se pueden repetir son 5 × 4 ×
3 × 26 × 25.
Ejercicio 79.
202 CAPÍTULO 4. COMBINATORIA
Ejercicio 81.
i) 243 × 104 .
ii) P R32 × P R42 = 3 × 4!/2.
iii) 242 × 103 .
iv) Si son capicúas la primera cifra es igual que la cuarta y la segunda es
igual que la tercera. Por tanto hay 102 dígitos. En total: 243 × 102 .
v) 24 × 104 .
vi) P R32 × P R42,2 = 3 × 3!.
Ejercicio 82.
i) 5!.
ii) 5!/4.
iii) 5!/12.
iv) Los boletos con todas sus cifras iguales son los menos probables de ser
premiados y los que tienen todas sus cifras distintas los que más.
Ejercicio 84.
4.8. EJERCICIOS RESUELTOS 203
¡ ¢
1) Un triángulo es una terna no ordenada de puntos: 3123
.
2) Las ternas de puntos que no dan un triángulo se forman eligiendo 3 de
los 5 puntos alineados, por tanto:
µ ¶ µ ¶
312 5
− .
3 3
Ejercicio 85. ¡ ¢
10
1) CR5,6 = 6 .
2) Si quitamos el 5 de cada bombo tenemos CR4,6 posibles resultados que
no contienen al 5. Los que llo contienen son por tanto:
CR5,6 − CR4,6 .
Ejercicio ¡89.
¢
1) Σki=0 ni (1 − p)i pn−i .
2) (1
¡n¢− p) . k n−k
n
3) k (1 − p) p .
204 CAPÍTULO 4. COMBINATORIA
4) pn .
Ejercicio 90.
1) (0.6)100 .¢
¡100
2) Σ100 i
i=50¡ i ¢ (0.4) (0.6)
100−i
.
30 100 i
3) Σi=0 i (0.4) (0.6) 100−i
.
Ejercicio 91.
i) Al tirar dos dados consecutivamente Ω = N6 × N6 .
ii) X : Ω → R asigna a + b a la tirada (a, b).
iii) Escribiendo las fórmulas y √
haciendo las respectivas cuentas se obtiene:
E(X) = 7, V (X) = 6.16, σ(x) = 6.16 = 2.48.
107 − V10,7 .
Ejercicio 95.
i) Es el¡ número
¢ de subconjuntos de 4 elementos en un conjunto de 54
alumnos: 54 4
.
ii) Será el número total de equipos de 4 alumnos menos el número de
equipos constituidos sólo por chicos:
µ ¶ µ ¶
54 30
− .
4 4
Ejercicio 96. ¡ ¢
3,7 10
i) P R10 = 3 .
ii) Todos menos 10
¡10¢ el formado por todos unos: 2 − 1.
5,5
iii) P R10 = 5 .
Ejercicio 98. Los ases se repiten 3 veces y los caballos 4. Total: P R10
3,4
.
(2, 6), (6, 2), (3, 5), (5, 3), (4, 4).
Ejercicio 102.
i) La probabilidad será 1 menos la probabilidad de que no contenga ningún
as:
µ ¶ µ ¶
48 52
1− / .
5 5
ii) Hay 13 posibles pókeres (de ases, de doses,...) y por cada uno puede
haber una quinta carta que es arbitraria, de entre las 48 cartas restantes (47
206 CAPÍTULO 4. COMBINATORIA
52
48 × 13/ .
5
Ejercicio 103. El suceso obtener al menos un éxito es complementario al
suceso no tener ningún éxito: 1 − 0.6n . Buscamos n tal que 1 − 0.6n ≥ 0.8 o
equivalentemente 0.6n ≤ 0.2. Como la sucesión {0.6n : n ∈ N} es decreciente,
evaluando, se tiene que el primero que verica la desigualdad es n = 4.
Ejercicio 105. Hay 26 primos menores que 100, por tanto 26/100.
Ejercicio 106. Como p(S ∪ S 0 ) = p(S) + p(S 0 ) − p(S ∩ S 0 ) entonces:
p(S ∩ S 0 ) = p(S) + P (S 0 ) − p(S ∪ S 0 ).
207
208 CAPÍTULO 5. GRAFOS
ramas de la ciencia muy diferentes. Por ejemplo, los grafos se utilizan para
construir modelos de redes de ordenadores y determinar si dos ordenadores
están conectados en una red, para determinar si un circuito puede ser im-
plementado sobre un tablero plano, para distinguir compuestos químicos con
la misma fórmula molecular, para encontrar el camino más corto entre dos
ciudades en una red de transporte...
Se pretende que el alumno al nalizar el capítulo:
Observación 5.1.2 Podemos representar los vértices como puntos del plano
y las aristas {u, v} como el segmento uv dando una representación gráca
del grafo.
E = {ei }i∈I
E = {ei }i∈I
Figura 5.2:
Figura 5.3:
Puesto que para cada v ∈ V1 se tiene que gr(v) es un número par, el pri-
mer sumatorio de los dos que aparecen a la derecha de la igualdad es un
212 CAPÍTULO 5. GRAFOS
número par. Y, µpuesto que¶el resultado de la suma es eln número par 2|E|,
P
necesariamente gr(v) es un número par.
v∈V2
Figura 5.4:
Figura 5.5:
214 CAPÍTULO 5. GRAFOS
Figura 5.6:
Figura 5.7:
Figura 5.8:
Figura 5.9:
5.3. CONSTRUCCIÓN DE GRAFOS A PARTIR DE GRAFOS 217
Ejercicio 111 Dibujar los grafos bipartidos completos K2,5 y K3,4 . Determi-
nar el número de aristas del grafo Km,n .
Ejemplo 5.2.7 Una red de área local permite conectar ordenadores entre sí
y con diferentes periféricos, como impresoras, scanners, etc. Algunas de estas
redes están diseñadas considerando una topología tipo estrella, caracterizada
por el hecho de que todos los dispositivos están conectados a un dispositivo
de control central. En una red de este tipo, los mensajes que se envían de un
dispositivo a otro pasan siempre por el dispositivo de control central. Una red
de área local de este tipo se puede representar utilizando un grafo completo
K1,n . Otras redes de área local están basadas en una topología tipo anillo,
en la que cada dispositivo está conectado únicamente con otros dos y los
mensajes se envían de un dispositivo a otro alrededor del ciclo, hasta que el
mensaje en cuestión llega a su receptor. Las redes de área local de este tipo
se modelizan utilizando los n-ciclos Cn . Otras redes de área local son de un
tipo híbrido de las dos topologías anteriores. Tal sería el caso de las redes
que modelizaríamos utilizando el grafo Wn .
Figura 5.10:
donde E” es el conjunto formado por todas las aristas de la forma {(a, b),
(a0 , b0 )} tales que
o bien a = a0 y {b, b0 } es una arista de G0 ,
o bien b = b0 y {a, a0 } es una arista de G.
Figura 5.11:
Ejemplo 5.3.8 Sea G = ({1, 2, 3}, {{1, 2}, {2, 3}}) entonces
G0 = ({1, 2, 3, 4}, {{2, 3}, {1, 4}, {4, 2}})
es una partición de G.
Figura 5.12:
∀u, v ∈ V1
{u, v} ∈ E1 ⇔ {f (u), f (v)} ∈ E2 .
De la función f que satisface dicha condición se dice que es un isomorsmo
de grafos entre los grafos G1 y G2 .
Ejemplo 5.4.2 Los dos grafos de la gura 5.12 son isomorfos. Para verlo
basta comprobar que la función f : {a, b, c, d} → {u, v, w, p}, tal que f (a) = u,
f (b) = v, f (c) = w, f (d) = p es un isomorsmo de grafos.
Figura 5.13:
Ejemplo 5.4.4 Los dos grafos de la gura 5.13 no son isomorfos pues, aun-
que ambos tienen el mismo número de vértices y de aristas, en el primero
gr(a) = 4, mientras que en el segundo no hay ningún vértice cuyo grado sea
4.
222 CAPÍTULO 5. GRAFOS
Figura 5.14:
Figura 5.15:
Dado un grafo G = (V, E), para construir una de sus matrices de ad-
yacencias, necesitamos considerar sus vértices en una lista ordenada. Si el
grafo tiene n vértices, |V | = n, y los ordenamos como V = {v1 , v2 , ..., vn },
la matriz de adyacencia de G con respecto a esa ordenación de los vértices
es la matriz A = (aij ) de n las y n columnas determinada por la siguiente
condición:
½
1 si {vi , vj } ∈ E
aij =
0 si {vi , vj } ∈
/ E.
Ejemplo 5.5.2 Sea por ejemplo el grafo K3 . Como tiene 3 vértices, cual-
quier matriz de adyacencias de K3 debe ser de tamaño 3 × 3. Siendo el
grafo completo, toda matriz de adyacencias está formada por unos salvo en
la diagonal, donde hay ceros (obsérvese que en este ejemplo la matriz de
adyacencias es independiente de la ordenación del los vértices):
224 CAPÍTULO 5. GRAFOS
Figura 5.16:
0 1 1
1 0 1
1 1 0
Ejercicio 117 Construir una matriz de adyacencias para cada uno de los
siguientes grafos: K4 , C4 , W3 y K3,2 .
Ejercicio 118 Utilizar una matriz de adyacencias para representar los gra-
fos de la gura 5.16.
Ejemplo 5.5.5 Siendo G = ({a, b, c, d}, {{a, b}, {b, c}, {c, d}, {d, a}, {d, b}}),
la matriz de incidencias de G con respecto a la ordenación a, b, c, d de sus
vértices y {a, b}, {b, c}, {c, d}, {d, a}, {d, b} de sus aristas, es la matriz
1 0 0 1 0
1 1 0 0 1
.
0 1 1 0 0
0 0 1 1 1
Figura 5.17:
Figura 5.18:
Teorema 5.6.7 Existe un camino simple entre cualquier par de vértices dis-
tintos de un grafo conexo no dirigido.
Conexión e isomorsmo
Los conceptos relacionados con la conexión nos proporcionan nuevos in-
variantes para averiguar si dos grafos son o no isomorfos.
Los puntos de corte y las aristas de corte son invariantes que nos pueden
permitir concluir que dos grafos no son isomorfos. Si un grafo presenta un
vértice de corte y otro no, los dos grafos no pueden ser isomorfos.
Conexión y matrices
Figura 5.19:
C = In + A + A2 + .... + An−1 ,
In + A + A2 + .... + An−1
de cada vértice es par. Obsérvese que los vértices aislados tienen grado 0, un
número par.
Para la demostración del recíproco, el siguiente algoritmo muestra un pro-
cedimiento constructivo para generar un circuito euleriano en un multigrafo
conexo en el que todos los vértices tienen grado par.
Por hipótesis, todas las aristas están en la misma componente conexa, por
lo que se puede suponer que el grafo es conexo. Sea entonces G un multigrafo
conexo con todos los vértices de grado par. Además, podemos prescindir
de los posibles lazos: si G multigrafo conexo tiene lazos, es equivalente G
euleriano que G0 euleriano, siendo G0 el grafo resultante de quitar los lazos a
G. Por tanto G es un multigrafo conexo sin lazos.
Ejemplo 5.7.4 Un cartero tiene que repartir sus cartas en la red de calles
representada por el grafo de la gura 5.20. Para realizar el reparto, el carte-
ro debe empezar y terminar en la estafeta de correos que se encuentra en el
vértice i. Teniendo en cuenta que todos los vértices tienen grado par, el car-
tero sabe que puede efectuar el reparto sin recorrer dos veces la misma calle,
234 CAPÍTULO 5. GRAFOS
Figura 5.20:
Figura 5.21:
Figura 5.22:
236 CAPÍTULO 5. GRAFOS
w, a, v1 , v2 , ..., vn−1 , b, w
w, a, v1 , v2 , ..., vn−1 , b, w
un circuito euleriano,
a, v1 , v2 , ..., vn−1 , b
es un camino euleriano no cerrado que conecta a y b.
Figura 5.24:
Figura 5.25:
(0, 0, 0), (1, 0, 0), (1, 1, 0), (1, 1, 1), (1, 0, 1), (0, 0, 1), (0, 1, 1), (0, 1, 0), (0, 0, 0).
los vértices de U y las aristas incidentes con dichos vértices tiene a lo sumo
|U | componentes conexas.
Demostración. Si el grafo G es hamiltoniano, entonces contiene un circuito
hamiltoniano
a, v1 , v2 , ..., vn−1 , a.
Sea H el grafo formado por los vértices y aristas del circuito anterior, y sea
U ⊆ V. (Obsérvese que los vértices de H son los mismos que los del grafo
original G). Sea k el número de componentes conexas del grafo (V − U, E 0 )
donde E 0 es el subconjunto de aristas de G caracterizado por el hecho de que
sus extremos pertenecen a V −U , y sea k 0 el número de componentes conexas
del subgrafo de H obtenido al eliminar de H los vértices pertenecientes a U
junto con las aristas incidentes con ellos. Evidentemente, k ≤ k 0 . Puesto
que el grafo H se puede representar como en la gura 5.26, es obvio que al
eliminar un punto (y las aristas incidentes con él) el nuevo grafo así obtenido
es conexo (es decir, tiene una única componente conexa), al eliminar dos
puntos (y las aristas incidentes con ellos) el nuevo grafo así obtenido tiene
como mucho dos componentes conexas y así sucesivamente. En general si
quitamos p vértices (junto con sus aristas incidentes) obtenemos un grafo
con, a lo sumo, p componentes conexas. Por consiguiente k ≤ k 0 ≤ p = |U |.
El resultado anterior nos aporta una nueva herramienta con la que pode-
mos demostrar que algunos grafos no son hamiltonianos.
Ejemplo 5.7.11 Si al grafo G de la gura 5.27 le quitamos el único vértice
de grado 5 que tiene y sus aristas incidentes, el grafo resultante tiene 3
componentes conexas, por tanto no es hamiltoniano.
Ejercicio 122 Determinar si el grafo H de la gura 5.27 es Hamiltoniano.
Figura 5.26:
Figura 5.27:
242 CAPÍTULO 5. GRAFOS
Figura 5.28:
Algoritmo de Dijkstra.
Con lo que los únicos valores para los que L cambia son:
L(b) = 2 L(h) = 5.
Y además:
f (b) = f (h) = a.
T = {a, b}.
Con lo que los únicos valores para los que L cambia son:
L(c) = 5 L(i) = 3.
Y además:
f (c) = f (i) = b.
Ahora el valor mínimo de L lo tiene el vértice i con lo que
T = {a, b, i}.
Con lo que los únicos valores para los que L cambia son:
L(d) = 6 L(f ) = 5.
Y además:
f (d) = f (f ) = i.
Ahora el valor mínimo de L lo tienen los vértices c, f y h con lo que elijo
uno de ellos, por ejemplo el f , de modo que:
T = {a, b, i, f }.
Con lo que los únicos valores para los que L cambia son:
L(e) = 6 L(g) = 8.
Y además:
f (e) = f (g) = f.
Ahora el valor mínimo de L lo tienen los vértices c, y h con lo que elijo uno
de ellos, por ejemplo el c, de modo que:
T = {a, b, i, f, c}.
5.9. ÁRBOLES 245
T = {a, b, i, f, c, h}.
Tampoco ahora se cumple nunca la condición para que haya cambios. Ahora
el valor mínimo de L lo tienen los vértices d, e con lo que elijo uno de ellos,
por ejemplo el d (así el algoritmo terminará en el paso siguiente), de modo
que:
T = {a, b, i, f, c, h, d}.
Tampoco ahora se cumple nunca la condición para que haya cambios.
De esta manera el camino más corto entre a y d tiene longitud 6 y es:
5.9 Árboles
Especialmente útil en lo que a aplicaciones informáticas se reere es un cierto
tipo de grafo simple, llamado árbol, que se emplea, entre otras cosas, para
construir algoritmos ecientes destinados a localizar items en una lista, para
construir redes de ordenadores con el mínimo coste, para construir códigos
ecientes destinados a almacenar y transmitir datos, para analizar algoritmos
de ordenación...
Figura 5.29:
Figura 5.30:
Si para cada par de vértices u y v hay un camino que los une, entonces G
es conexo por denición de conexión. Si G contuviera un circuito simple C ,
tomando un par de vértices del circuito u y v , existen dos caminos simples
distintos que los unen, en contradicción con la hipótesis. Esto demuestra la
otra implicación.
Los árboles con raíz llevan asociada una terminología de origen botánico
y genealógico: dado un árbol con raíz T, si v es un vértice de T distinto de
la raíz, el padre de v es el único vértice u de T tal que hay una arista de
u a v. Si u es el padre de v, también diremos que v es un hijo de u. Los
antecesores de un vértice son los vértices que nos encontramos en el único
camino que une dicho vértice con la raíz. Los descendientes de un vértice
v son todos aquellos vértices de los que v es antecesor.
Denición 5.9.7 Dado un árbol con raíz (G, r) se denominan hojas a los
vértices de G distintos de r que tienen grado 1.
Es fácil darse cuenta de que las hojas de un árbol dirigido son los vértices
que no tienen descendientes. A los vértices distintos de la raíz que no son
hojas de un árbol con raíz se les denomina vértices internos.
Denición 5.9.10 Se dice que un árbol con raíz es m-ario si todos los vér-
tices tienen a lo sumo m hijos. Si todos los vértices internos (es decir, todos
salvo las hojas) de un árbol m−ario con raíz tienen exactamente m hijos, se
dice que el árbol es un árbol m-ario completo. A los árboles 2-arios se les
denomina árboles binarios.
Demostración. Sea T = (V, E). Elijamos un vértice r como raíz del árbol T .
A continuación consideramos la función que asigna a cada arista su vértice
nal, considerando la dirección determinada por la elección de la raíz. Evi-
dentemente, esta función es una función biyectiva entre E y V − {r}, y en
consecuencia si |V | = n, necesariamente |E| = n − 1.
5.9. ÁRBOLES 249
m(mh−1 ) = mh ,
La etiqueta (el dato) asociado a cada vértice es mayor (en el orden con-
siderado) que las etiquetas de sus descendientes hacia la izquierda, y menor
que las etiquetas de sus descendientes hacia la derecha.
El siguiente procedimiento recursivo se utiliza para formar un árbol de
búsqueda binaria para una lista de datos. Se comienza con un árbol que
contiene un único vértice, la raíz. El primer dato en la lista se asocia a dicho
vértice. Para añadir un nuevo dato, primero comparamos dicho dato con las
etiquetas de los vértices que ya están situados en el árbol, comenzando por la
raíz y moviéndonos para realizar la siguiente comparación hacia la izquierda
si el dato es menor que el dato con el que hemos realizado la comparación,
y hacia la derecha si es mayor. Cuando el dato es menor que el del vértice
con el que acabamos de compararle, y dicho vértice no tiene hijo izquierdo,
entonces añadimos al árbol un nuevo vértice como hijo izquierdo de dicho
dato. Análogamente, cuando el dato es mayor que el del vértice con el que
acabamos de compararle, y dicho vértice no tiene hijo derecho, añadiremos
al árbol un nuevo vértice como hijo derecho de dicho dato.
que cada vértice interno corresponde a una decisión, con un subárbol colgan-
do de él por cada una de las posibles alternativas (o salidas diferentes) se
denomina árbol de decisión. Las posibles maneras de resolver el problema
corresponden a los caminos que van desde las hojas hasta la raíz. Veamos
un ejemplo de aplicación de los árboles de decisión.
Figura 5.31:
5 bits). ¾Hay alguna forma de codicar las letras que nos permita utilizar
menos bits cuando un conjunto de datos es codicado? Si esto fuese posible,
necesitaríamos menos memoria y reduciríamos el tiempo de transmisión.
Para ver cómo es posible lograr el objetivo del párrafo anterior, supon-
gamos ahora que podemos emplear cadenas de diferente longitud para co-
dicar letras. Queremos utilizar cadenas de bits cortas para las letras que
más se repiten en las palabras del castellano y cadenas más largas para las
que menos se repiten. En ese caso tenemos que determinar un método que
nos permita saber en cuál bit empieza y en cuál bit termina un determinado
carácter. Por ejemplo, si codicamos la a con 0, la p con 1, y la n con 10, la
cadena 1010 puede corresponder a las palabras pan o papa.
Para estar seguros de que ninguna cadena de bits corresponde a más de
una secuencia de letras, la cadena de bits de una letra no debe coincidir nunca
con la primera parte de la cadena de bits de otra. Los códigos que tienen esta
propiedad se denominan códigos prejos. Por ejemplo, la codicación de
la a con 0, la p con 10, y la n con 11 satisface esa propiedad. De este modo, al
emplear un código prejo, cualquier palabra puede ser recuperada a partir de
la única cadena de bits que codica las letras que la componen. Por ejemplo,
utilizando la codicación anterior, la cadena 100110 es la correspondiente a
la palabra pana.
Un código prejo puede ser representado utilizando un árbol binario, en
el que los caracteres son las etiquetas de las hojas en el árbol. Las aristas del
árbol son etiquetadas de manera que una arista que lleva al hijo izquierdo se
etiqueta con un 0 y una arista que lleva a un hijo derecho se etiqueta con un
1. La cadena de bits de un carácter situado en una hoja es la secuencia de
las etiquetas de las aristas que van desde la raíz a dicha hoja.
El árbol que representa un código prejo también puede emplearse para
decodicar una cadena de bits. Por ejemplo, considerar la palabra codicada
por la cadena 10011001100 según el código del árbol de la gura 5.32. Para
decodicarla, comenzamos desde la raíz, utilizando la sucesión de bits para
formar un camino que se detiene cuando se alcanza una hoja. En ese caso
se decodica la letra correspondiente y se continúa con la cadena restante.
Según eso, la palabra asociada a la cadena anterior es patata. En efecto,
comenzamos con un 1 y un 0 que conducen a la letra p. El 0 siguiente nos
conduce a la letra a. El 110 nos lleva a la t y así sucesivamente.
Hay algoritmos, tales como los códigos de Human, que pueden utilizar-
se para construir códigos ecientes teniendo en cuenta la frecuencia de las
ocurrencias de las letras en un determinado lenguaje, y que permiten com-
254 CAPÍTULO 5. GRAFOS
Figura 5.32:
Ejercicio 127 Construir el árbol binario que representa el código prejo aso-
ciado al siguiente esquema de código: a : 1010, e : 0, t : 11, s : 1011, n :
1001, i : 100001. Codicar según ése código las palabras seta, nata y sensata.
Figura 5.33:
digamos V , la red debe ser conexa para que cada par de nodos estén conec-
tados. De entre los grafos conexos cuyo conjunto de vértices es V , los que
tienen el mínimo número de aristas son los árboles y son por esta propiedad,
minimales. Sin embargo, los árboles son muy poco resistentes a fallos porque,
en un árbol, el camino que une dos vértices es único. Así el deterioro de una
comunicación directa entre dos nodos desconecta seguro nodos entre sí.
La siguiente proposición caracteriza los grafos simples que tienen un árbol
generador.
Algoritmo de Prim.
Algoritmo de Kruskal
5.11 Ejercicios
Ejercicio 131. Dibujar un grafo que represente las distintas aulas y depen-
dencias (hall, etc...) del edicio en que se imparte clase, poniendo una arista
entre cada par de dependencias que estén comunicadas.
Ejercicio 134. Determinar si existe algún grafo simple con 7 vértices cuyos
grados sean 3, 2, 2, 4, 3, 5, 4. Determinar también si existe algún grafo simple
con 5 vértices cuyos grados sean 3, 2, 2, 4, 3.
Ejercicio 137. Dibujar los digrafos con lazos cuyas matrices de adyacencia
son las siguientes:
0 1 2 2 1
0 2 2 2 1 3 2 0
2 0 0 0 1 1 1
1 1 3 0
, 1 2
,
2 1 3 0 0 1 1
0 1 2 1 0 1
0 0 1 0 1
2 1 1 0 0 2 1 0
0 1 1 1 0
Ejercicio 110. Escribimos K3 = ({1, 2, 3}, {{1, 2}, {2, 3}, {3, 1}}). Si fuera
bipartido su conjunto de vértices V se podría escribir como unión disjunta
de dos conjuntos no vacíos, digamos V1 y V2 . Si fuera bipartido podemos
suponer, sin perdida de generalidad, que 1 ∈ V1 . Necesariamente los vértices
2 y 3, que son adyacentes con 1 deben estar en V2 lo que da una contradicción
ya que son adyacentes.
262 CAPÍTULO 5. GRAFOS
Sea
C6 = ({1, 2, 3, 4, 5, 6}, {{1, 2}, {2, 3}, {3, 4}, {4, 5}, {5, 6}, {6, 1}}).
Ejercicio 111. Basta tomar 2 rectas paralelas, sobre una de ellas marcar 2
puntos y sobre la otra marcar 5 puntos (respectivamente 3 y 4) y representar
todos los segmentos que unen una marca de una de las rectas con una marca
de la otra (ver K4,4 en la gura 5.41).
Como cada vértice de V1 (|V1 | = n) ha de unirse con cada vértice de V2
(|V2 | = m) el total de aristas es mn.
G = ({a, b, c, d, e}, {{a, b}, {c, b}, {c, d}, {d, e}, {a, e}})
G ∪ G0 = ({a, b, c, d, e, f }, {{a, b}, {c, b}, {c, d}, {d, e}, {a, e}, {f, b}, {a, f }})
Ejercicio 116. Los de la gura 5.14 son isomorfos ya que ambos se pueden
ver como la unión de dos ciclos C5 que comparten 4 vértices.
Los de la gura 5.15 no son isomorfos, ya que el grafo G tiene exactamente
dos subgrafos isomorfos a C4 (uno interior y otro exterior) mientras que el
H contiene 3 subgrafos isomorfos a C4 (los dos del grafo G más el rombo a
la izquierda).
Ejercicio 117. K4 :
0 1 1 1
1 0 1 1
A=
1
1 0 1
1 1 1 0
C4 :
0 1 0 1
1 0 1 0
A=
0
1 0 1
1 0 1 0
264 CAPÍTULO 5. GRAFOS
1 1 1 0
- dos asignaciones,
- elevar una matriz a la potencia j , lo que equivale a multiplicarla por
sí misma j veces. Multiplicar dos matrices n × n supone, por cada la y
columna que se multiplican, n productos y n − 1 sumas; es decir, un total
de n2 (2n − 1) operaciones. En conclusión, elevar la matriz a la potencia j
supone jn2 (2n − 1) operaciones.
- una suma de dos matrices n×n, lo que supone n2 sumas (de los elementos
de ambas matrices).
- la suma j + 1. P
En total se realizan 3 + n2 + n−1 j=1 jn (2n − 1) ∈ O(n ).
2 5
Ejercicio 120. Una cha de dominó con dos valores (el 3 y el 5, por ejemplo)
se puede ver como una arista entre dos vértices (v3 y v5 en el ejemplo).
Juntar dicha cha con otra en una jugada de dominó (por ejemplo, con la
que tiene un 5 y un 1) equivale a considerar un camino en el grafo (por
ejemplo v3 , v5 , v1 ). Con este esquema, una serie de jugadas de dominó no es
más que un camino en el grafo completo K7 . Dicho grafo es conexo, tiene
7 vértices y el grado de cada vértice es 6 (excluyendo las chas dobles, que
son lazos y no dan ningún problema), un número par. Podemos garantizar
entonces la existencia de al menos un circuito euleriano. En otras palabras,
tenemos garantizado que es posible encajar todas las piezas de dominó.
Ejercicio 121. De los cuatro vértices del grafo que representaría a los puen-
tes, tres tienen grado tres y el otro tiene grado cinco. Por tanto, no puede
haber ni circuitos ni caminos eulerianos.
Ejercicio 122. Si al grafo H le quito los dos vértices de grado 4 que tiene
y sus aristas incidentes, nos quedan tres componentes conexas. Por tanto, el
grafo no puede ser hamiltoniano.
sensata: 10110100110111010111010
Ejercicio 130. Los tres grafos son planos como se puede ver en la gura
5.37.
{2, 3}, {2, 4}, {2, 5}, {2, 6}, {2, 7},
{3, 4}, {3, 5}, {3, 6}, {3, 7}, {4, 5}, {4, 6}, {4, 7},
{5, 6}, {5, 7}, {6, 7}}
Por tanto una matriz de incidencias que sigue este orden es:
1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0
0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0
0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 1 1 0 0 0
0 0 0 1 0 0 0 0 1 0 1 0 1 0 0 1 0 0 1 1 0
0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 1
0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 1 1
{{1, 2}, {2, 3}, {3, 4}, {4, 5}, {5, 1}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6}}
{{1, 2}, {1, 3}, {1, 4}, {1, 5}, {1, 6}, {1, 7}}
274 CAPÍTULO 5. GRAFOS
0 1 1 1 1 1 1
1 0 0 0 0 0 0
1 0 0 0 0 0 0
1 0 0 0 0 0 0
1 0 0 0 0 0 0
1 0 0 0 0 0 0
1 0 0 0 0 0 0
1 1 1 1 1 1
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
será:
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0
0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0
0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0
0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
El cubo Q4 tiene 16 aristas que corresponden a las palabras de 4 bites:
({a, b, c, d, e}, {{a, b}, {a, c}, {a, d}, {a, e}, {b, c}, {c, e}, {d, e}})
({1, 2, 3, 4}, {{1, 2}, {2, 3}, {3, 1}, {1, 4}, {2, 4}, {3, 4}}).
Ejercicio 137. Basta escribir tantos puntos como las (o columnas) tenga
la matriz numerándolos según el lugar de su respectiva la. Entre cada par
de puntos i y j se representan tantas aristas (segmentos que unen el punto
numerado con la i con el numerado con la j ) como indique la matriz de
adyacencias A en su término Aij .
Ejercicio 138. Se considera la matriz como una lista con dos subíndices.
Se usa el teorema por el que la suma de los grados de los vértices es 2 veces
el número de aristas. Como el grado de un vértice es el número de vértices
adyacentes con él, entonces el grado del vértice i-ésimo es la suma de los
elementos de la la i-ésima de la matriz de adyacencias del grafo.
Entrada: a11 , ..., ann
S := 0
For i = 1 to n
For j = 1 to n
S := S + aij
Salida: S/2.
Si el tamaño de la entrada es n, el número de vértices del grafo, la com-
plejidad es cuadrática pues el bucle interior se repite n veces cada vez que i
278 CAPÍTULO 5. GRAFOS
Ejercicio 139. Primero hay que comprobar que todas las aristas del grafo
están en la misma componente conexa (ver práctica de Maple). Una vez
hecho esto vamos computando los grados de cada vértice y viendo si es par
o no.
Entrada: a11 , ..., ann
S := 2
For i = 1 to n while Smod2 = 0
S := 0
For j = 1 to n
S := S + aij
If Smod2 = 0 then R :=Es euleriano else R :=No es euleriano.
Salida: R.
Considerando n el tamaño de la entrada y sin considerar el problema de
la conexión, el algoritmo es de complejidad cuadrática, pues hay dos bucles
anidados que se realizan n veces cada uno y en cada repetición efectúan una
cantidad constante de operaciones.
Ejercicio 141. El grafo G tiene dos componentes conexas, la que forman los
vértices {1, 2, 3, 4} (y sus correspondientes aristas) y la que forman los vértices
restantes (y sus correspondientes aristas). De este modo no es conexo. No
puede ser un árbol. Si añadimos la arista {1, 5} el nuevo grafo es conexo,
pero contiene un ciclo (formado por los vértices 2, 3 y 4) por lo que sigue
sin ser un árbol. Tomando los vértices en el orden que indica la matriz, la
sucesión de sus grados no es otra cosa que la suma de los términos de cada
la, así: gr(1) = 1, gr(2) = 3, gr(3) = 2, gr(4) = 2, gr(5) = 1, gr(6) = 2,
gr(7) = 2, gr(8) = 1. Al añadir la arista {1, 5} el grado de los vértices 1
y 5 aumenta en una unidad. Pero, por ejemplo, el grado del vértice 8 sigue
siendo impar, por lo que el grafo no puede ser euleriano.
280 CAPÍTULO 5. GRAFOS
Capítulo 6
Relaciones
281
282 CAPÍTULO 6. RELACIONES
a = {b ∈ A : b ∼ a}.
A/∼ = {a : a ∈ A}.
ii) El conjunto cociente del conjunto F del ejemplo iv) del párrafo anterior
por la relación de equivalencia allí denida es el conjunto Q de los números
racionales.
R = {(a, a), (b, b), (c, c), (d, d), (a, b), (a, c), (b, c)}.
∆ = {(a, a) : a ∈ A}
está contenida en la gráca.
La relación es simétrica si la gráca es simétrica con respecto a dicha
diagonal.
La relación es antisimétrica si no existen pares de puntos de la gráca
simétricos con respecto a la diagonal y fuera de ella.
y 2
0 1 2 3 4
x
y 2
0 1 2 3 4
x
1 1 1 1 1
0 1 1 1 1
0 0 1 1 1
0 0 0 1 1
0 0 0 0 1
Ejercicio 145 Computar las matrices de adyacencias de los grafos del ejer-
cicio 144.
Ejercicio 146 Comprobar si las relaciones del ejercicio 144 son transitivas
mediante esta caracterización de la transitividad.
De la teoría de grafos podemos extraer una solución sin más que pregun-
tarnos por las componentes conexas del grafo cuyos vértices son los ordena-
dores y sus aristas las comunicaciones directas.
En el contexto de las relaciones podemos denir una relación en N5 de
modo que (a, b) ∈ R si y solamente si el ordenador con número a está conec-
tado directamente con el que tiene número b (o a = b o hay un cable directo
entre a y b). Esta relación es claramente reexiva y simétrica por denición.
El problema de encontrar todas las parejas de ordenadores conectados (di-
recta o indirectamente), es equivalente al cómputo de la clausura transitiva,
es decir, el mínimo conjunto de parejas C conteniendo a R que hace que C
sea transitiva.
Cr = R ∪ ∆.
Según este lema, la clasusura transitiva debe contener todos los pares
(a, b) de vértices tales que existe un camino uniendo a con b.
6.3. CLAUSURAS 293
Los dos lemas previos muestran que la clausura transitiva de una relación
R en un conjunto A es entonces:
Ct = T,
la por una columna se realizan n productos y n−1 sumas (2n−1 operaciones)
y esto se hace n2 veces. En nuestro algoritmo se efectúan n − 1 potencias
de M . Suponemos que nuestro sistema de cálculo con matrices hace las
potencias como producto de dos matrices (la potencia anterior multiplicada
por M ). Así tenemos 2n3 (n−1) operaciones. La última línea de pseudocódigo
de nuestro algoritmo llama a un algoritmo que recorre n listas de longitud
n, cambiando cada valor por uno si es no nulo y por cero si es nulo. Este
algoritmo tiene complejidad cuadrática. Podemos entonces concluir que el
algoritmo es de orden O(n4 ).
Ejercicio 149 Dadas las relaciones del ejercicio 144 que no son transitivas
computar su clausura transitiva.
Ejercicio 150 Entendiendo una matriz como una lista de números con dos
subíndices (el primero la la y el segundo la columna):
i) escribir un algoritmo que multiplica matrices de tamaño n × n;
ii) escribir un algoritmo que tome una matriz M de tamaño n × n y
construya una matriz N que tenga las entradas vericando nij = 1 si mij 6= 0
y nij = 0 en caso contrario.
(k)
Llamamos wij a las correspondientes entradas de Wk . La denición de
(k)
Wk es como sigue: wij = 1 si existe un camino uniendo vi con vj de modo que
el conjunto de sus vértices interiores esté contenido en el conjunto {v1 , ..., vk }.
(0)
En el caso k = 0 se interpreta como wij = 1 si existe un camino sin
vértices interiores uniendo vi con vj , por tanto W0 = M .
(n)
En el caso k = n tenemos que wij = 1 si existe un camino uniendo vi
con vj (porque el conjunto de posibles vértices interiores es A). Por tanto se
tiene que Wn es la matriz de adyacencias buscada.
A = {a, b, c, d, e, f }
R = {(a, a), (a, b), (c, c), (c, d), (c, f ), (f, f ), (f, e), (f, a)}.
Elegimos el orden para los vértices a, b, c, d, e, f y por tanto la matriz W1
tiene entradas no nulas (que valen 1) si hay un camino uniendo los respectivos
vértices cuyo único posible vértice interior es a. Entonces:
1 1 0 0 0 0
0 0 0 0 0 0
0 0 1 1 0 1
W1 = 0 0 0 0 0 0
0 0 0 0 0 0
1 1 0 0 1 1
Ejercicio 151 Dadas las relaciones del ejercicio 144 que no son transitivas
computar su clausura transitiva mediante el Algoritmo de Warshall.
R = {(a, a), (a, c), (c, e), (c, d), (b, d)}
R = {(f, a), (a, c), (c, e), (c, d), (f, b), (b, d)}.
C = {M I, M II, F }
M I ≤ M I, M I ≤ M II, M II ≤ M II, F ≤ F.
M I ≤ M II ≤ F M I ≤ F ≤ M II F ≤ M I ≤ M II.
Esto es, de las posibles 6 permutaciones del conjunto de las tres asignaturas,
elegimos una de las tres en que M I precede a M II .
a1 ≤ a2 ≤ a3 ≤ ... ≤ an
Ejemplo 6.4.13 Sea el conjunto A = {1, 2, 3, 4, 5} y la relación de orden
parcial en A,
R = {(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (1, 2), (1, 3), (2, 3), (1, 4), (1, 5), (4, 5)}.
Elegimos un elemento minimal, que en el primer caso es necesariamente
x1 = 1. Después en el conjunto A−{1} tenemos la relación de orden inducida
R1 = {(2, 2), (3, 3), (4, 4), (5, 5), (2, 3), (4, 5)}.
Elegimos un elemento minimal entre los dos posibles candidatos que son el
2 ó el 4. Tomemos x2 = 2. En el conjunto A − {1, 2} tenemos un orden
inducido:
R1 = {(3, 3), (4, 4), (5, 5), (4, 5)}.
Tomamos x3 = 3 (también podíamos elegir el 4). Continuando el proceso
x4 = 4 y x5 = 5. Por tanto el orden total es:
1 ≤ 2 ≤ 3 ≤ 4 ≤ 5.
Obsérvese que podríamos haber elegido de otra manera los xi para obtener
un orden total distinto, también compatible con el orden parcial con el que
comenzamos.
6.5. EJERCICIOS 303
Ejercicio 154 Se tiene que montar una cadena de montaje de una pieza
según el siguiente esquema de tareas.
Tareas: Ensamblar, atornillar, pintar, empaquetar, limpiar, registrar.
Prioridades: Ensamblar antes de atornillar, atornillar antes de pintar,
pintar antes de empaquetar, limpiar antes de pintar.
Diseñar un posible planicación de las tareas.
6.5 Ejercicios
Ejercicio 155. Estudiar si las siguientes relaciones son relaciones de orden
o de equivalencia:
i) Sea el conjunto N7 y la relación aRb si a + b < 9.
ii) Sea el conjunto R de las rectas del plano y la relación de paralelismo,
esto es, rRr0 si r y r0 son paralelas.
iii) Sea el conjunto A = {a, b, c, d, 1, 2, 3}. En él denimos una relación
por la cual dados m, n ∈ A mRn si o bien m y n son ambos números o bien
m y n son ambos letras.
iv) Sea el conjunto B = {1, 2, 3, 4, 7, 8, 90}. En él denimos la siguiente
relación S , aSb si 3a > b.
Ejercicio 157. En las relaciones del ejercicio 155 denidas sobre conjuntos
nitos que no sean reexivas (respectivamente simétricas, respectivamente
transitivas) calcular su clausura reexiva (respectivamente simétrica, respec-
tivamente transitiva).
Ejercicio 143.
i) Es una relación de equivalencia. En efecto, es reexiva porque toda
palabra p empieza por la misma letra que la propia palabra p. Es simétrica
porque si pRq entonces la primera letra de la palabra p es igual que la primera
letra de la palabra q , por tanto qRp, pues sus primeras letras son iguales. De
igual modo si la primera letra de la palabra p es igual que la primera letra
de la palabra q y la primera letra de la palabra q es igual que la primera
letra de la palabra r, entonces la primera letra de la palabra p es igual que
la primera letra de la palabra r, por lo que se tiene la propiedad transitiva.
No es una relación de orden porque hay palabras distintas como alto y alba
que verican altoRalba y albaRalto, luego no es antisimétrica.
El conjunto cociente es el conjunto de letras pues se puede identicar
cada clase de equivalencia con la inicial de cualquiera de las palabras que la
forman.
ii) Es reexiva pues {(a, a), (b, b), (c, c), (d, d)} ⊂ R. No es simétrica pues
(a, b) ∈ R pero (b, a) ∈
/ R. Es antisimétrica pues nunca se tienen m 6= l tal
6.6. EJERCICIOS RESUELTOS 305
iii) Como todo número entero no nulo n tiene el mismo signo que n se
tiene la propiedad reexiva. Si a, b enteros no nulos verican que signo(a) =
signo(b) entonces signo(b) = signo(a) con lo que la relación es simétrica.
También es transitiva pues se tiene que si signo(a) = signo(b) y signo(b) =
signo(c) entonces signo(a) = signo(c). Por tanto es una relación de equi/-
valencia y no es de orden porque no es antisimétrica (hay números distintos
con el mismo signo).
El conjunto cociente tiene dos elementos, digamos signo+ y signo−, que
son, respectivamente, la clase de equivalencia de los positivos y la de los
negativos.
iv) Es reexiva pues para cada número real a se tiene que a−a = 0 ∈ Z. Es
simétrica ya que si a−b ∈ Z entonces b−a ∈ Z. Es transitiva pues si a−b ∈ Z
y b − c ∈ Z entonces la suma es un número entero: a − b + b − c = a − c ∈ Z.
Por tanto es una relación de equivalencia que no es de orden.
Se tiene que a = {a + k : k ∈ Z}.
306 CAPÍTULO 6. RELACIONES
Ejercicio 144.
i) N5 = {1, 2, 3, 4, 5}. La relación es el siguiente conjunto:
R = {(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (1, 8), (1, 9), (1, 10),
(2, 2), (2, 4), (2, 6), (2, 8), (2, 10), (3, 3), (3, 6), (3, 9), (4, 4), (4, 8), (5, 5), (5, 10)
(6, 6), (7, 7), (8, 8), (9, 9), (10, 10)}
La tabla asociada consiste en representar los puntos de R en un plano
coordenado.
El digrafo asociado es:
(N10 , R).
iii) La relación es:
(A, R).
6.6. EJERCICIOS RESUELTOS 307
{(2, 1), (3, 1), (4, 1), (5, 1), (6, 1), (7, 1), (8, 1), (9, 1), (10, 1),
(4, 2), (6, 2), (8, 2), (10, 2), (6, 3), (9, 3), (8, 4), (10, 5)}.
La relación iii) no es simétrica, su clausura simétrica es A × A.
La relación iv) no es simétrica, hay que unirle los elementos (c, a), (d, c)
y (a, d).
Ejercicio 150.
i) Consideramos una matriz como una lista con dos subíndices:
6.6. EJERCICIOS RESUELTOS 309
Si la entrada es: a11 , a12 , ..., a1n , ..., bn1 , ..., bnn .
La correspondiente salida se dene como una matriz de entradas cij donde:
2
por tanto se tiene w55 = 1.
0 0 0 0 0
0 0 0 0 1
W2 =
0 0 0 1 0
0 0 1 0 0
0 1 0 1 1
La matriz W3 tiene un uno donde W2 tenga un uno y además se verica que
3
wij = 1 si wi3
2 2
= 1 = w3j . Esta condición se verica sólo en w43
2 2
= 1 = w34 ,
por tanto se tiene w44 = 1.
3
0 0 0 0 0
0 0 0 0 1
W3 = 0 0 0 1 0
0 0 1 1 0
0 1 0 1 1
La matriz W4 tiene un uno donde W3 tenga un uno y además se verica que
4
wij 3
= 1 si wi4 3
= 1 = w4j 3
. Esta condición se verica sólo en w34 3
= 1 = w43 ,
4
por tanto se tiene w33 = 1.
0 0 0 0 0
0 0 0 0 1
W4 = 0 0 1 1 0
0 0 1 1 0
0 1 0 1 1
La matriz W5 tiene un uno donde W4 tenga un uno y además se verica que
5
wij 4
= 1 si wi5 4
= 1 = w5j 4
. Esta condición se verica sólo en w25 4
= 1 = w52 ,
5
por tanto se tiene w22 = 1.
0 0 0 0 0
0 1 0 0 1
W5 = 0 0 1 1 0
0 0 1 1 0
0 1 0 1 1
Se observa como se han introducido 4 unos en la diagonal correspondientes
a los elementos (2, 2), (3, 3), (4, 4), (5, 5) que son los elementos que hay que
unir a R para tener la transitividad.
6.6. EJERCICIOS RESUELTOS 311
Viendo su diagrama de Hasse (ver Figura 6.7) se tiene que hay dos elementos
maximales que son d y e y por tanto no hay máximo. Hay un elemento
minimal f que es además el mínimo. El elemento d es cota superior de B y
es además la única, por tanto es el supremo. La única cota inferior es f que
por tanto es el ínmo de B .
Ejercicio 154. Representamos cada una de las tareas por su inicial (ensam-
blar con la E y empaquetar con la e):
T areas = {E, a, p, e, l, r}
{(E, a), (a, p), (E, p), (p, e), (E, e), (a, e), (l, p), (l, e)
(E, E), (a, a), (p, p), (e, e), (l, l), (r, r)}.
El orden total que completa este orden parcial (ver diagrama de Hasse en la
Figura 6.8) se va construyendo de la siguiente manera. Se elige un elemento
6.6. EJERCICIOS RESUELTOS 313
Ejercicio 155.
i) La relación denida en i) no es reexiva puesto que, por ejemplo, 7+7 =
14 no verica ser menor que 9. Por tanto no puede ser relación de orden ni
de equivalencia. Verica la propiedad simétrica ya que a + b = b + a. No
es transitiva ya que, por ejemplo, 7R1 y 1R7 y sin embargo 7 + 7 > 9. De
hecho la relación es:
R = {(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (2, 1), (2, 2), (2, 3), (2, 4),
(2, 5), (2, 6), (3, 1), (3, 2), (3, 3), (3, 4), (3, 5), (4, 1), (4, 2), (4, 3), (4, 4),
314 CAPÍTULO 6. RELACIONES
(5, 1), (5, 2), (5, 3), (6, 1), (6, 2), (7, 1)}
ii) La relación de paralelismo es reexiva (toda recta es paralela a sí
misma) simétrica (si r es paralela a r0 entonces r0 es paralela a r) y transitiva
(si r es paralela a r0 y r0 lo es a r00 entonces r es paralela a r00 ). De este modo
es una relación de equivalencia.
Podemos tomar como representante en cada clase de equivalencia la recta
que pasa por el origen, y entonces el conjunto cociente se puede identicar
con la semicircunferencia unidad, viendo cada recta como el único punto
de corte con dicha semicircunferencia. Esto es el suconjunto del plano real
denido como {(x, y) : x2 + y 2 = 1, x ≥ 0} − {(−1, 0)}.
iii) La relación es reexiva ya que la cualidad de ser número o letra la
comparte cada elemento de A consigo mismo. Es simétrica porque si m, n ∈
A son ambos números (respectivamente ambos letras) entonces la misma
propiedad la tienen n, m ∈ A. De igual manera es transitiva. Por tanto es
una relación de equivalencia. El conjunto cociente A/R es un conjunto de
dos elementos, la clase de los números y la clase de las letras.
iv) La relación es reexiva porque 3a > a para cada número natural, en
particular para cada elemento de B . No es antisimétrica ya que, por ejemplo,
1S2 ya que 3 > 2 y 2S1 ya que 6 > 1. No es simétrica ya que, por ejemplo,
90S1 pero 3 × 1 < 90. Por tanto no es de equivalencia ni de orden. La
relación es:
S = {(1, 1), (2, 2), (3, 3), (4, 4), (7, 7), (8, 8), (90, 90), (1, 2), (2, 1), (2, 3),
(2, 4), (3, 1), (3, 2), (3, 3), (3, 4), (3, 7), (4, 1), (4, 2), (4, 3), (4, 7), (4, 8), (4, 90),
(7, 1), (7, 2), (7, 3), (7, 4), (7, 8), (7, 90), (8, 1), (8, 2), (8, 3),
(8, 4), (8, 7), (90, 1), (90, 2), (90, 3), (90, 4), (90, 7), (90, 8), (90, 90)}.
Ejercicio 156.
i) El digrafo es (N7 , R) cuya matriz es
1 1 1 1 1 1 1
1 1 1 1 1 1 0
1 1 1 1 1 0 0
1 1 1 1 0 0 0
1 1 1 0 0 0 0
1 1 0 0 0 0 0
1 0 0 0 0 0 0
6.6. EJERCICIOS RESUELTOS 315
(1, 3), (1, 4), (1, 7), (1, 8), (2, 4), (2, 7), (2, 8), (3, 8).
Ejercicio 159. De entre todas las rectas paralelas (en la misma clase de
equivalencia) elegimos la que pasa por el origen. Por tanto podemos identi-
car cada clase de equivalencia con el ángulo que forma dicha recta con el eje
de abscisas, esto es, con el intervalo [0, 180) ⊂ R.
Ejercicio 160. La matrix de R es:
1 1 1 0
0 0 0 0
0 0 0 1
0 0 0 0
La matriz de su clausura reexiva es:
1 1 1 0
0 1 0 0
Cr =
0
0 1 1
0 0 0 1
Como
1 2 2 1
0 1 0 0
Cr2 =
0
0 1 0
0 0 0 1
6.6. EJERCICIOS RESUELTOS 317
α ≤ β ≤ γ ≤ ω.
318 CAPÍTULO 6. RELACIONES
Capítulo 7
Controles y exámenes resueltos
319
320 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
Matemática Discreta
Control 1
1999-2000.
n(n + 1)(2n + 1)
12 + 22 + 32 + ... + (n − 1)2 + n2 =
6
2. Construye un algoritmo que indique si en una lista de números enteros
hay dos repetidos. Estudia su complejidad.
Matemática Discreta
Control 1 resuelto
1999-2000.
n(n + 1)(2n + 1)
12 + 22 + 32 + ... + (n − 1)2 + n2 =
6
Para n = 1 la fórmula es cierta ya que
1·2·3
12 = 1 =
6
Debemos ahora probar que si es cierta para n lo es para n + 1.
La igualdad que queremos probar es:
(n + 1)(n + 2)(2n + 3)
12 + ... + n2 + (n + 1)2 =
6
Por hipótesis de inducción obtenemos que:
n(n + 1)(2n + 1)
12 + ... + n2 + (n + 1)2 = + (n + 1)2 .
6
Y ya no tenemos más que operar el segundo término de la igualdad anterior
y comprobar que es exactamente
(n + 1)(n + 2)(2n + 3)
.
6
2. Construye un algoritmo que indique si en una lista de números enteros
hay dos repetidos. Estudia su complejidad.
Entrada: a1 , ..., an
s := 0
for i = 1 to n while s = 0
for j = i + 1 to n while s = 0
if ai = aj then s := 1
if s = 0 then r :=no else r :=sí
Salida: r
322 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
Matemática Discreta
Control 2 A
1999-2000.
x ≡ 3(mod 5)
x ≡ 5(mod 7) .
x ≡ 9(mod 11)
c) 182
6. En una mesa redonda se reunen 5 comensales de manera que queremos
saber de cuántas maneras se pueden sentar si sólo importa quién está al lado
de quién. El número de formas es:
a) 5!
b) 5!/4
c) 5!/5
7. La probabilidad de que al repartir 4 cartas en una baraja española la juga-
da sea un trío (es decir tres cartas con el mismo número y la otra diferente)
es:
a) (3 · 2 · 36)/(39 · 38 · 37)
b) (4 · 3 · 2 · 36)/(39 · 38 · 37)
c) (3 · 3 · 2 · 36)/(39 · 38 · 37)
8. La probabilidad de que en un suceso de Bernoulli que se repite n veces
con probabilidad¡ p¢ de éxito se obtengan a lo sumo 3 fracasos es:
a) n3 pn−3
¡ ¢(1 − p)3
b) Σ3i=0 ni pn−i (1 − p)i
c) La misma que obtener a lo sumo 3 éxitos.
9. Sea un conjunto A de cuatro personas que miden respectivamente 1.70,
1.75, 1.76, 1.82. Sea la variable aleatoria X que asigna a cada persona de A
su altura. El valor esperado E(X) es:
a) la media aritmética de las 4 alturas
b) 1.77
c) 1.74
10. El conjunto de los números primos es:
a) Un conjunto nito
b) Un conjunto no nito
c) No se sabe si es nito o no nito
11. El número de cifras de 4 dígitos que son múltiplos de 5 es:
a) 2000
b) 1800
c) 2700
12. Sea el suceso E sacar un 8 al tirar dos dados. Sea el suceso F sacar un
8 al tirar tres dados.
a) E es más probable que F
325
Matemática Discreta
Control 2 A resuelto
1999-2000.
x ≡ 3(mod 5)
x ≡ 5(mod 7) .
x ≡ 9(mod 11)
b) 5 · 4 · 28 · 27 · 26
c) 5 · 4 · 283
La respuesta correcta es la a). Los factores 5 corresponden a las vocales
(en el primer y último lugar) y los factores 28 a las letras intermedias. Si no
se indica lo contrario, las palabras pueden presentar letras repetidas.
5. Con las variables x e y se pueden construir monomios homogéneos de grado
n, es decir, expresiones de la forma xa y b con a y b números enteros positivos
(posiblemente 0) tal que a + b = n. El número de monomios distintos de
grado 17 es:
a) 18 · 17
b) 9 · 17
c) 18
La respuesta correcta es la c). Una vez elegido a el número b está unívo-
camente determinado: b = 17 − a. Por tanto se trata de ver cuántos posibles
valores puede tomar a. Como a puede ser cualquier número entre 0 y 17 se
tiene el resultado.
6. En una mesa redonda se reunen 5 comensales de manera que queremos
saber de cuántas maneras se pueden sentar si sólo importa quién está al lado
de quién. El número de formas es:
a) 5!
b) 5!/4
c) 5!/5
La respuesta correcta es la c) pues el número total de maneras en que 5
comensales se sientan en una mesa redonda es 5! y hay que dividir por 5 pues
dada una disposición de comensales hay 5 disposiciones (resultado de girar
un lugar a los comensales) en las que las posiciones relativas on las mismas.
7. La probabilidad de que al repartir 4 cartas en una baraja española la juga-
da sea un trío (es decir tres cartas con el mismo número y la otra diferente)
es:
a) (3 · 2 · 36)/(39 · 38 · 37)
b) (4 · 3 · 2 · 36)/(39 · 38 · 37)
c) (3 · 3 · 2 · 36)/(39 · 38 · 37)
La respuesta correcta es la b). La primera carta puede ser cualquiera. La
segunda carta debe ser igual a la primera, entonces se tiene una probabilidad
de 3/39. La tercera debe ser igual a la primera y a la segunda, por tanto, la
328 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
probabilidad es 2/38. La última carta debe ser distinta de las tres primeras,
por tanto 36/38. Entonces la probabilidad de obtener un trío siendo las
cartas iguales las tres primeras es:
(3 · 2 · 36)/(39 · 38 · 37).
El factor 4 proviene del hecho de que hay cuatro posibles elecciones de tres
cartas en un manojo de 4.
8. La probabilidad de que en un suceso de Bernoulli que se repite n veces
con probabilidad¡ p¢ de éxito se obtengan a lo sumo 3 fracasos es:
a) n3 pn−3
¡ ¢(1 − p)3
b) Σ3i=0 ni pn−i (1 − p)i
c) La misma que obtener a lo sumo 3 éxitos.
La respuesta correcta es la b) entendiendo que a lo sumo tres fracasos es
la unión de los sucesos: 0 fracasos, 1 fracaso, 2 fracasos y 3 fracasos.
9. Sea un conjunto A de cuatro personas que miden respectivamente 1.70,
1.75, 1.76, 1.82. Sea la variable aleatoria X que asigna a cada persona de A
su altura. El valor esperado E(X) es:
a) la media aritmética de las 4 alturas
b) 1.77
c) 1.74
La respuesta correcta es la a): basta usar la fórmula de la esperanza
matemática.
10. El conjunto de los números primos es:
a) Un conjunto nito
b) Un conjunto no nito
c) No se sabe si es nito o no nito
La respuesta correcta es la b). Si fuera nito, digamos p1 , ..., pn , entonces
el número entero p1 × ... × pn + 1 verica ser primo pues al dividir por
cualquier primo da de resto uno y no está en el conjunto de los primos (pues
es estrictamente mayor que cualquier pi ) lo que es una contradicción.
11. El número de cifras de 4 dígitos que son múltiplos de 5 es:
a) 2000
b) 1800
c) 2700
329
a + b = ps
a − b = pt
de modo que se tiene:
2a = p(s + t)
2b = p(s − t).
Esto signica que p divide a 2a y a 2b entonces p divide al mcd(2a, 2b) lo que
quiere decir que o bien p = 2 o bien p divide a a y a b entonces p = 1.
14. El número 173
a) Es un número compuesto por 2 factores primos (distintos de
1)
b) Es un número compuesto por 3 factores primos (distintos de
1)
c) Es un número primo.
La respuesta correcta es la c). Como la raíz de 173 es estrictamente menor
que 14 basta con probar con los números primos: 2, 3, 5, 7, 11 y 13. Ninguno
de ellos lo divide.
330 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
Matemática Discreta
Control 2 B
1999-2000.
x ≡ 2(mod 5)
x ≡ 4(mod 7) .
x ≡ 8(mod 11)
c) 182
6. El número de palabras de 4 letras (en un alfabeto de 28 letras) que
empiezan y terminan por vocal es:
a) 52 · 282
b) 5 · 4 · 28 · 27
c) 5 · 4 · 282
7. En una mesa redonda se reunen 6 comensales de manera que queremos
saber de cuántas maneras se pueden sentar si sólo importa quién está al lado
de quién. El número de formas es:
a) 6!/4
b) 5!
c) 6!/5
8. La probabilidad de que en un suceso de Bernoulli que se repite n veces
con probabilidad¡ p¢ de éxito se obtengan a lo sumo 3 fracasos es:
a) n3 pn−3
¡ ¢(1 − p)3
n
b) Σ3i=0 i pn−i (1 − p)i
c) La misma que obtener a lo sumo 3 éxitos.
9. Sea un conjunto B de cinco personas que miden respectivamente 1.70,
1.75, 1.76, 1.82, 1.94. Sea la variable aleatoria X que asigna a cada persona
de A su altura. El valor esperado E(X) es:
a) 1.80
b) la media aritmética de las 5 alturas
c) 1.74
10. El número de cifras de 5 dígitos que son múltiplos de 5 es:
a) 18000
b) 19000
c) 20000
11. Sean a y b dos números enteros tales que mcd(a, b) = 1 entonces
a) mcd(a + b, a − b) = 1 ó mcd(a + b, a − b) = 3
b) mcd(a + b, a − b) = 1 ó mcd(a + b, a − b) = 2
c) mcd(a + b, a − b) = 21 ó mcd(a + b, a − b) = 3
12. El número 179
a) Es un número compuesto por 2 factores primos (distintos de
1)
333
Matemática Discreta
Control 2 B resuelto
1999-2000.
x ≡ 2(mod 5)
x ≡ 4(mod 7) .
x ≡ 8(mod 11)
a) 6!/4
b) 5!
c) 6!/5
La respuesta correcta es la b) pues el número total de maneras en que 6
comensales se sientan en una mesa redonda es 6! y hay que dividir por 6 pues
dada una disposición de comensales hay 6 disposiciones (resultado de girar
un lugar a los comensales) en las que las posiciones relativas on las mismas.
8. La probabilidad de que en un suceso de Bernoulli que se repite n veces
con probabilidad¡ p¢ de éxito se obtengan a lo sumo 3 fracasos es:
a) n3 pn−3
¡ ¢(1 − p)3
b) Σ3i=0 ni pn−i (1 − p)i
c) La misma que obtener a lo sumo 3 éxitos.
La respuesta correcta es la b) entendiendo que a lo sumo tres fracasos es
la unión de los sucesos: 0 fracasos, 1 fracaso, 2 fracasos y 3 fracasos.
9. Sea un conjunto B de cinco personas que miden respectivamente 1.70,
1.75, 1.76, 1.82, 1.94. Sea la variable aleatoria X que asigna a cada persona
de A su altura. El valor esperado E(X) es:
a) 1.80
b) la media aritmética de las 5 alturas
c) 1.74
La respuesta correcta es la b): basta usar la fórmula de la esperanza
matemática.
10. El número de cifras de 5 dígitos que son múltiplos de 5 es:
a) 18000
b) 19000
c) 20000
La respuesta correcta es la c). Para ser múltiplo de 5 se ha de terminar
en 0 ó en 5. Por tanto las cuatro primeras cifras son libres y la cuarta debe
ser un 0 ó un 5. De este modo 104 × 2.
11. Sean a y b dos números enteros tales que mcd(a, b) = 1 entonces
a) mcd(a + b, a − b) = 1 ó mcd(a + b, a − b) = 3
b) mcd(a + b, a − b) = 1 ó mcd(a + b, a − b) = 2
c) mcd(a + b, a − b) = 21 ó mcd(a + b, a − b) = 3
337
a + b = ps
a − b = pt
de modo que se tiene:
2a = p(s + t)
2b = p(s − t).
Esto signica que p divide a 2a y a 2b entonces p divide al mcd(2a, 2b) lo que
quiere decir que o bien p = 2 o bien p divide a a y a b entonces p = 1.
12. El número 179
a) Es un número compuesto por 2 factores primos (distintos de
1)
b) Es un número compuesto por 3 factores primos (distintos de
1)
c) Es un número primo.
La respuesta correcta es la c). Como la raíz de 179 es estrictamente menor
que 14 basta con probar con los números primos: 2, 3, 5, 7, 11 y 13. Ninguno
de ellos lo divide.
13. El mcd(234, 567) es
a) 3 y hacen falta 3 pasos en el algoritmo de Euclides para
saberlo
b) 9 y hacen falta 5 pasos en el algoritmo de Euclides para
saberlo
c) Son primos relativos y hacen falta 4 pasos en el algoritmo de
Euclides para saberlo.
La respuesta correcta es la b). Basta efectuar el algoritmo de Euclides.
14. Sea un conjunto A de 7 elementos. Construimos el conjunto B de los
subconjuntos de A. El conjunto de los subconjuntos de B tiene:
a) 27 elementos
27
b) 22 elementos
7
c) 22 elementos
La respuesta correcta es la c) ya que un conjunto de n elementos presenta
n
2 subconjuntos.
338 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
15. Sea el suceso E sacar un 8 al tirar dos dados. Sea el suceso F sacar un
8 al tirar tres dados.
a) E es más probable que F
b) F es más probable que E
c) Son igual de probables
La respuesta correcta es la b). Basta hacer un recuento de casos favorables
y posibles
339
Matemática Discreta
Control 1 A
2000-2001.
2) (2 puntos)
a) Determinar si el siguiente razonamiento es correcto:
((p ∨ q) ∧ (q ∨ ¬r)) ↔ (p ∨ ¬r).
b) Escribir en lenguaje formal y en lenguaje natural la negación de la
siguiente sentencia: "Hay alumnos que no han aprobado ninguna asignatura".
x ≡ 3 mod 5
x ≡ 5 mod 7
x ≡ 2 mod 2
Matemática Discreta
Control 1 A resuelto
2000-2001.
1 + a ≥ 1 + a.
1 + a + an + a2 n ≥ 1 + a(n + 1) = 1 + an + a.
O equivalentemente:
a2 n ≥ 0,
lo que es cierto puesto que a > 0.
2) (2 puntos)
a) Determinar si el siguiente razonamiento es correcto:
((p ∨ q) ∧ (q ∨ ¬r)) := V.
341
Por tanto la sentencia: Hay alumnos que no han aprobado ninguna asig-
natura se escribe formalmente:
∀x ∈ U ∃y ∈ A P (x, y).
Es decir, cada alumno ha aprobado alguna asignatura.
f (0) = 1
f (1) = 6
f (2) = 4
f (3) = 2
f (4) = 0
f (5) = 5
f (6) = 3
Por tanto f es biyectiva.
b) Determinar si existe g : Z7 → Z7 tal que la composición g ◦ f denida
como (g ◦ f )(a) = g(f (a)) sea la identidad.
Como f es biyectiva necesariamente debe existir g . De hecho basta tomar
g(b) = 3b + 4 ya que:
342 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
x ≡ 3 mod 5
x ≡ 5 mod 7
x ≡ 2 mod 2
x = 68 + 70k
Matemática Discreta
Control 1 B
2000-2001.
2) (2 puntos)
a) Determinar si el siguiente razonamiento es correcto:
((p ∨ q) ∧ (q ∨ ¬r)) ↔ ¬(p ∨ ¬r).
b) Escribir en lenguaje formal y en lenguaje natural la negación de la
siguiente sentencia: "Hay alumnos que han aprobado todas las asignaturas".
x ≡ 4 mod 5
x ≡ 5 mod 7
x ≡ 2 mod 2
Matemática Discreta
Control 1 B resuelto
2000-2001.
1 + t ≥ 1 + t.
1 + t + tn + t2 n ≥ 1 + t(n + 1) = 1 + tn + t.
O equivalentemente:
t2 n ≥ 0,
lo que es cierto puesto que t > 0.
2) (2 puntos)
a) Determinar si el siguiente razonamiento es correcto:
Por tanto la sentencia: Hay alumnos que no han aprobado ninguna asig-
natura se escribe formalmente:
∀x ∈ U ∃y ∈ A P (x, y).
Es decir, cada alumno ha aprobado alguna asignatura.
f (0) = 1
f (1) = 4
f (2) = 0
f (3) = 3
f (4) = 6
f (5) = 2
f (6) = 5
Por tanto f es biyectiva.
b) Determinar si existe g : Z7 → Z7 tal que la composición g ◦ f denida
como (g ◦ f )(a) = g(f (a)) sea la identidad.
Como f es biyectiva necesariamente debe existir g . De hecho basta tomar
g(b) = 5b + 2 ya que:
x ≡ 4 mod 5
x ≡ 5 mod 7
x ≡ 2 mod 2
Como 5, 7 y 2 son primos, entonces el teorema chino de los restos garantiza
la existencia de solución y su unicidad módulo 5×7×2 = 70. De esta manera,
el conjunto de las soluciones es de la forma:
x = 54 + 70k
Matemática Discreta
Control 2
2000-2001.
0 1 0 0 0 0 0 1 1 1 0 0 1 1 0
1 0 1 1 0 1 1 1 0 1 0 1 0 1 0
0 1 0 1 0 0 0 1 1 1 1 0 1 1 0
0 1 1 0 1 0 1 1 1 1 1 1 1 1 1
0 0 0 1 0 1 0 1 0 1 1 1 0 1 1
0 1 0 0 1 0 0 1 0 0 0 1 1 1 1
0 1 0 1 0 0 0 1 0 0 1 0 0 0 1
A := 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1
1 0 1 1 0 0 0 0 0 0 1 0 1 1 0
1 1 1 1 1 0 0 1 0 0 0 0 0 1 0
0 0 1 1 1 0 1 1 1 0 0 1 0 1 1
0 1 0 1 1 1 0 0 0 0 1 0 0 0 1
1 0 1 1 0 1 0 1 1 0 0 0 0 1 0
1 1 1 1 1 1 0 1 1 1 1 0 1 0 1
0 0 0 1 1 1 1 1 0 0 1 1 0 1 0
y de modo que su potencia cúbica es:
348 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
20 37 29 37 28 21 18 46 29 33 31 21 33 45 28
37 38 49 63 41 42 34 62 31 41 43 36 33 65 38
29 49 40 57 39 33 25 61 36 43 48 28 42 60 40
37 63 57 72 60 44 41 80 46 55 61 45 54 80 59
28 41 39 60 40 40 29 60 29 40 48 35 33 59 43
21 42 33 44 40 26 24 52 27 30 37 30 34 51 59
18 34 25 41 29 24 16 40 20 25 35 19 24 36 32
A3 := 46 62 61 80 60 52 40 74 40 54 65 39 52 78 58
29 31 36 46 29 27 20 40 22 28 35 19 29 45 27
33 41 43 55 40 32 25 54 28 32 38 26 32 55 35
31 43 48 61 48 37 35 65 35 38 44 39 35 65 45
21 36 28 45 35 30 19 39 19 26 39 20 25 37 36
33 33 42 54 33 34 24 52 29 32 35 25 28 53 30
45 65 60 80 59 51 36 78 45 55 65 37 53 76 59
28 38 40 59 43 39 32 58 27 35 45 36 30 59 40
1) Determinar el número de vértices, el número de aristas y el grado de cada
vértice según la ordenación de los vértices que da la matriz A.
2) Demostrar usando la matriz A y las potencias de A que se aportan que el
grafo G es conexo.
3) Vericar si es o no un grafo euleriano.
4) Determinar cuál es la probabilidad de que al elegir un camino de longitud
3 uniendo el primer vértice y el tercero dicho camino sea simple.
5) Sea el experimento de Bernoulli consistente en elegir un vértice de G de
modo que se obtiene un éxito si el grado de dicho vértice es mayor o igual
que 10. Determinar la probabilidad p de éxito y la probabilidad q de fracaso
de dicho experimento de Bernoulli.
6) Determinar la probabilidad de que al repetir el experimento anterior 5
veces se obtenga al menos un éxito.
7) Sea un nuevo experimento aleatorio que consiste en elegir un vértice de
G. Sea la variable aleatoria g consistente en asignar a cada vértice su grado.
Describir el espacio muestral de dicho experimento y la función g . Calcular
la esperanza matemática de dicha variable aleatoria.
8) Determinar el número de aristas que hay que añadir a G para que se
convierta en el grafo completo.
349
Matemática Discreta
Control 2 resuelto
2000-2001.
0 1 0 0 0 0 0 1 1 1 0 0 1 1 0
1 0 1 1 0 1 1 1 0 1 0 1 0 1 0
0 1 0 1 0 0 0 1 1 1 1 0 1 1 0
0 1 1 0 1 0 1 1 1 1 1 1 1 1 1
0 0 0 1 0 1 0 1 0 1 1 1 0 1 1
0 1 0 0 1 0 0 1 0 0 0 1 1 1 1
0 1 0 1 0 0 0 1 0 0 1 0 0 0 1
A := 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1
1 0 1 1 0 0 0 0 0 0 1 0 1 1 0
1 1 1 1 1 0 0 1 0 0 0 0 0 1 0
0 0 1 1 1 0 1 1 1 0 0 1 0 1 1
0 1 0 1 1 1 0 0 0 0 1 0 0 0 1
1 0 1 1 0 1 0 1 1 0 0 0 0 1 0
1 1 1 1 1 1 0 1 1 1 1 0 1 0 1
0 0 0 1 1 1 1 1 0 0 1 1 0 1 0
y de modo que su potencia cúbica es:
350 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
20 37 29 37 28 21 18 46 29 33 31 21 33 45 28
37 38 49 63 41 42 34 62 31 41 43 36 33 65 38
29 49 40 57 39 33 25 61 36 43 48 28 42 60 40
37 63 57 72 60 44 41 80 46 55 61 45 54 80 59
28 41 39 60 40 40 29 60 29 40 48 35 33 59 43
21 42 33 44 40 26 24 52 27 30 37 30 34 51 59
18 34 25 41 29 24 16 40 20 25 35 19 24 36 32
3
A := 46 62 61 80 60 52 40 74 40 54 65 39 52 78 58
29 31 36 46 29 27 20 40 22 28 35 19 29 45 27
33 41 43 55 40 32 25 54 28 32 38 26 32 55 35
31 43 48 61 48 37 35 65 35 38 44 39 35 65 45
21 36 28 45 35 30 19 39 19 26 39 20 25 37 36
33 33 42 54 33 34 24 52 29 32 35 25 28 53 30
45 65 60 80 59 51 36 78 45 55 65 37 53 76 59
28 38 40 59 43 39 32 58 27 35 45 36 30 59 40
1) Determinar el número de vértices, el número de aristas y el grado de cada
vértice según la ordenación de los vértices que da la matriz A.
Como la matriz es de tamaño 15×15 entonces hay 15 vértices. La sucesión
de los grados, usando la ordenación de los vértices que señala la matriz es:
g(1) = 6, g(2) = 9, g(3) = 8, g(4) = 12, g(5) = 8, g(6) = 7, g(7) = 5, g(8) = 12,
g(9) = 6, g(10) = 7, g(11) = 9, g(12) = 6, g(13) = 7, g(14) = 12, g(15) = 8.
Y su esperanza matemática es:
(6 + 9 + 8 + 12 + 8 + 7 + 5 + 12 + 6 + 7 + 9 + 6 + 7 + 12 + 8)/15.
8) Determinar el número de aristas que hay que añadir a G para que se
convierta en el grafo completo.
El grafo completo K15 tiene todos sus vértices de grado 14 con lo que el
número de aristas que tiene es:
(15 × 14)/2.
De este modo la diferencia entre este número y el |V | son las aristas que
hay que añadir a G para obtener el grafo completo, esto es, 105 − 61.
352 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
Matemática Discreta
EXAMEN FINAL
2000-2001. 3-02-2001
Entrada:n
x:=n; y:=0; z:=0
While y<x-1
y:=y+1, z:=z+y
Salida: z
¾Cuál es el valor de z una vez ejecutado el algoritmo? Estudiar
la complejidad del algoritmo en términos de n.
Matemática Discreta
EXAMEN FINAL RESUELTO
2000-2001. 3-02-2001
x ≡ 1 mod 2
x ≡ 1 mod 3
x ≡ 2 mod 7
37 + 42k k ∈ Z.
Entonces tanto 37 como 37+42 = 79 son soluciones al ejercicio (y además
son las únicas).
10 × 2 × 9!/11! = 2/11.
b) De los cinco ordenadores haya al menos uno que presente algún defecto.
R := {(1, 1), (1, 2), (2, 1), (1, 3), (3, 1), (2, 2)}.
No es reexiva pues (7, 7) ∈ / R. Es simétrica puesto que si a + b < 5
entonces b + a < 5. No es antisimétrica puesto que (1, 2), (2, 1) ∈R . No es
transitiva pues (3, 1), (1, 3) ∈ R y (3, 3) ∈
/ R. Se tiene que Ct = R ∪ {(3, 3)}.
360 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
Matemática Discreta
EXAMEN FINAL
2000-2001. Septiembre
x ≡ 2(mod 3)
x ≡ 5(mod 7)
x ≡ 1(mod 5)
For i=1 to n
For j=1 to i
c:=c+j
Salida: c
i) (1 pto.) Explicar qué hace el algoritmo y dar una fórmula para la
salida.
ii) (1 pto) Estudiar el orden de complejidad del algoritmo.
0 1 0 0 1 0
1 0 1 0 0 1
0 1 0 1 0 0
0 0 1 0 1 0
1 0 0 1 0 0
0 1 0 0 0 0
Sea p = 0.1 la probabilidad de que un cable que une dos ordenadores
adyacentes se dañe.
i) (1 pto.) Cuál es la probabilidad de que se estropeen al menos dos
cables.
ii) (1 pto.) Cuál es la probabilidad de que un mensaje que parte del
ordenador numerado con un 1 no llegue al ordenador numerado con un 2,
teniendo en cuenta la información sobre la probabilidad de que se dañe una
conexión.
0 1 0 0 0 0 0 0
1 0 1 1 0 0 0 0
0 1 0 1 0 0 0 0
0 1 1 0 0 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 1 0 1 0
0 0 0 0 0 1 0 1
0 0 0 0 0 0 1 0
i) (0.5 ptos.) Determinar el número de componentes conexas del grafo.
362 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
6. Sea el conjunto
A = {1, 2, 3, 4, 8, 7, 54, 34, 52, 21, 11, 12, 13, 16, 112}.
Matemática Discreta
EXAMEN FINAL RESUELTO
2000-2001. Septiembre
1.2. (0.5 ptos.) Sea P (x) el predicado x sabe hablar ruso y Q(x) el predicado x
sabe programar en C. En el universo de discurso de los alumnos de la escuela,
escribir las siguientes frases en lenguaje formal con cuanticadores:
i) Hay un alumno en la escuela que sabe hablar en ruso y programar en
C.
∃x ∈ U (P (x) ∧ Q(x))
ii) Hay un alumno en la escuela que sabe hablar ruso y no sabe programar
en C.
∃x ∈ U (P (x) ∧ ¬Q(x))
iii) Cada alumno de la escuela o sabe hablar en ruso o programar en C.
∀x ∈ U (P (x) ∨ Q(x))
364 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
x ≡ 2(mod 3)
x ≡ 5(mod 7)
x ≡ 1(mod 5)
c := 1 + (1 + 2) + (1 + 2 + 3) + ... + (1 + 2 + ... + n)
ii) (1 pto) Estudiar el orden de complejidad del algoritmo.
Hay dos bucles, el bucle j se repite n veces y cada vez que este se efectúa
se realizan del orden de i operaciones en el bucle j por tanto la complejidad
es cuadrática.
0 1 0 0 1 0
1 0 1 0 0 1
0 1 0 1 0 0
0 0 1 0 1 0
1 0 0 1 0 0
0 1 0 0 0 0
365
p(1 − (1 − p)4 ).
5. Sea la siguiente matriz la matriz de adyacencias de un grafo simple G =
(V, A):
0 1 0 0 0 0 0 0
1 0 1 1 0 0 0 0
0 1 0 1 0 0 0 0
0 1 1 0 0 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 1 0 1 0
0 0 0 0 0 1 0 1
0 0 0 0 0 0 1 0
i) (0.5 ptos.) Determinar el número de componentes conexas del grafo.
Tiene dos componentes conexas, la que contiene a los vértices 1, 2, 3, 4 y
la que contiene a los vértices 5, 6, 7, 8.
ii) (0.5 ptos.) Determinar si G es un árbol. Determinar si al añadir la
arista (1, 5) el nuevo grafo (V, A ∪ {(1, 5)}) es un árbol.
366 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
(1, 3, 2, 2, 1, 2, 2, 1).
iv) (0.5 ptos.) Determinar si el grafo (V, A ∪ {(1, 5)}) es Euleriano.
No lo es pues contiene vértices de grado impar.
6. Sea el conjunto
A = {1, 2, 3, 4, 8, 7, 54, 34, 52, 21, 11, 12, 13, 16, 112}.
E := A1 × A1 ∪ A2 × A2 ∪ A3 × A3 .
iii) (0.5 ptos.) Describir todas las clases de equivalencia de A módulo la
relación R.
El cociente A/R tiene tres elementos: A1 , A2 y A3 .
367
Matemática Discreta
CONTROL 1
2001-2002
Matemática Discreta
CONTROL 1 resuelto
2001-2002
Entrada: a1 , ..., an
c := 0
For i = 2 to n
For j = 1 to i − 1
If aj = ai then
c := j , j := n + 1, i := n + 1
If c := 0 then c :=No hay elementos repetidos.
Salida: c.
369
T (n) = 3 + 3 × 2 + 2 + 3 × 3 + 2 + 3 × 4 + 2 + .. + 3 × n + 2 + 1
Matemática Discreta
CONTROL 1
2001-2002
1 + 2 + 22 + ... + 2n = 2n+1 − 1
Matemática Discreta
CONTROL 1 resuelto
2001-2002
1 + 2 + 22 + ... + 2n = 2n+1 − 1
Matemática Discreta
CONTROL 2
2001-2002
0 0 1 1 0 0 0 0 0 1 0 0 0 0 1
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
1 0 0 1 0 0 0 0 0 1 0 0 0 0 0
1 0 1 0 0 0 0 0 0 0 0 0 0 0 1
0 1 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 1 1 0 0 0 0 0 0 0
0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 1 0 0 0
1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 1 0 1 0
0 0 0 0 0 0 0 0 1 0 1 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
0 0 0 0 0 0 0 0 0 0 1 0 1 0 0
1 0 0 1 0 0 0 0 0 0 0 0 0 0 0
1. Determinar el número de vértices, el grado de cada vértice y el número
de aristas de G.
2. Determinar las distintas componentes conexas de G, escribiendo sus
vértices y aristas.
3. Determinar cuántas aristas como mínimo se han de añadir a G para
convertirlo en un grafo conexo.
4. Determinar si cada una de las componentes conexas de G es o no
Euleriana.
5. Idem que 4 con Hamiltoniana.
373
Matemática Discreta
CONTROL 2 resuelto
2001-2002
0 0 1 1 0 0 0 0 0 1 0 0 0 0 1
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
1 0 0 1 0 0 0 0 0 1 0 0 0 0 0
1 0 1 0 0 0 0 0 0 0 0 0 0 0 1
0 1 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 1 1 0 0 0 0 0 0 0
0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 1 1 0 0 0
1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 1 0 1 0
0 0 0 0 0 0 0 0 1 0 1 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 1 0
0 0 0 0 0 0 0 0 0 0 1 0 1 0 0
1 0 0 1 0 0 0 0 0 0 0 0 0 0 0
1. Determinar el número de vértices, el grado de cada vértice y el número
de aristas de G.
El número de vértices es 15 pues es el número de las o columnas de
la matriz. Sumando los 1 de cada la tenemos el grado de cada vértice,
ordenados del 1 al 15 los grados son:
4, 1, 3, 3, 2, 3, 2, 2, 2, 2, 3, 3, 2, 2, 2.
V1 = {1, 4, 3, 10, 15}, V2 = {2, 5, 6, 7, 8}, V3 = {9, 11, 12, 13, 14}
E1 = {{1, 3}, {1, 15}, {1, 10}, {10, 3}, {4, 3}, {15, 4}, {1, 4}}
E2 = {{2, 5}, {6, 5}, {6, 7}, {7, 8}, {8, 6}}
E3 = {{11, 9}, {11, 12}, {12, 9}, {11, 14}, {12, 13}, {13, 14}}
Hay que hacer desaparecer los ciclos. Quitando, por ejemplo, las aristas
{6, 8}, {3, 10}, {3, 4}, {15, 4}, {9, 12} y {11, 14}.
8. Explicar si el árbol generador computado en el apartado anterior es el
único árbol generador de H .
No lo es, se podría, por ejemplo, tomar la arista {6, 8} y quitar en su
lugar la arista {6, 7}.
9. Si la probabilidad de que se dañe un cable en una red representada
por el grafo H (los vértices son nodos y las aristas son cables entre nodos)
es 10−2 . Determinar la probabilidad de que falle una comunicación entre los
vértices 10 y 5.
Debe extropearse o el cable {10, 2} o el {2, 5}. Por lo que la probabilidad
es 2 ∗ 10−2 .
10. Idem que 9 entre los vértices 2 y 7.
Se imposibilita la comunicación si o bien se deteriora el cable {2, 5} o bien
el cable {5, 6} o bien el cable {6, 7} y al menos uno de entre los cables {6, 8}
y {7, 8}. Por tanto 2 ∗ 10−2 + 10−2 (2 ∗ 10−2 (1 − 10−2 ) + 10−4 ).
377
Matemática Discreta
EXAMEN FINAL A
2001-2002. Febrero
1. (2 puntos para los alumnos de evaluación continua 1.5 para el resto) Sea
la siguiente matriz una matriz de ayacencias de un grafo simple G = (V, E).
0 1 1 1 0 0 0 0 0 1 0 0 0 1 1
1 0 0 0 1 0 0 0 0 0 0 0 0 0 0
1 0 0 1 0 0 0 0 0 1 0 0 0 0 0
1 0 1 0 0 0 0 0 0 0 0 0 0 0 1
0 1 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 1 1 1 0 0 0 0 0 0
0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 1 1 0 0 0
1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 1 0 1 0
0 0 0 0 0 0 0 0 1 0 1 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
1 0 0 0 0 0 0 0 0 0 1 0 0 0 0
1 0 0 1 0 0 0 0 0 0 0 0 0 0 0
i) Determinar el número de vértices y el número de aristas de G.
ii) Determinar si G es conexo. Determinar si G es Euleriano.
378 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
A := (p ⇒ q) ∧ (r ⇒ s)
B := (p ∧ r) ⇒ (q ∧ s)
Demostrar que A implica lógicamente B .
0 1 0 1
1 0 0 1
M=
0 0 0 1
1 1 1 0
379
Matemática Discreta
EXAMEN FINAL A resuelto
2001-2002. Febrero
0 1 1 1 0 0 0 0 0 1 0 0 0 1 1
1 0 0 0 1 0 0 0 0 0 0 0 0 0 0
1 0 0 1 0 0 0 0 0 1 0 0 0 0 0
1 0 1 0 0 0 0 0 0 0 0 0 0 0 1
0 1 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 1 1 1 0 0 0 0 0 0
0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 1 1 0 0 0
1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 1 0 1 0
0 0 0 0 0 0 0 0 1 0 1 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
1 0 0 0 0 0 0 0 0 0 1 0 0 0 0
1 0 0 1 0 0 0 0 0 0 0 0 0 0 0
i) Determinar el número de vértices y el número de aristas de G.
Como la matriz tiene 15 las y 15 columnas, entonces G tiene 15 vértices.
Podemos calcular el grado de cada vértice viendo el número de unos que hay
en cada la (o en cada columna), de esta manera la sucesión de los grados
de los vértices es: 6, 2, 3, 3, 2, 4, 2, 2, 3, 2, 3, 3, 1, 2, 2. Como la suma de
los grados de los vértices es 40, el grafo tiene 20 aristas.
ii) Determinar si G es conexo. Determinar si G es Euleriano.
Como el vértice 1 es adyacente con los vértices 2, 3, 4, 10 y 14, todos
ellos están en la misma componente. El 2 es adyacente con el 5, el 5 lo es
con el 6 y éste con el 7 con el 8 y con el 9. De este modo ya tenemos que los
siguientes vértices están en la misma componente conexa: 1, 2, 3, 4, 5, 6, 7,
8, 9, 10 y 14. El grafo es entonces conexo porque el 15 es adyacente con el
381
A := (p ⇒ q) ∧ (r ⇒ s)
B := (p ∧ r) ⇒ (q ∧ s)
Demostrar que A implica lógicamente B .
La única posibilidad para que A no implique lógicamente B es que existan
valores de verdad de las variables p, q, r, s que hacen que A sea verdadero y
B falso. Ahora bien, si B es falso es porque p ∧ r es verdadero y q ∧ s es
falso. Es decir p y r verdaderas y alguna entre q y s falsa. Obsérvese que A
es la conjunción de dos implicaciones. En ambas implicaciones la hipótesis
es verdadera (p y r son ambas verdaderas) pero alguna de las tesis es falsa
383
0 1 0 1
1 0 0 1
M=
0 0 0 1
1 1 1 0
2 1 1 1
1 2 1 1
M=
1 1 1 0
1 1 0 3
Entonces la relación que queremos estudiar se puede representar mediante
la siguiente matriz:
1 1 1 1
1 1 1 1
1 1 1 0
1 1 0 1
Es entonces reexiva pues la diagonal no tiene ninguna entrada nula. Es
simétrica pues la matriz es simétrica. No es antisimétrica pues, por ejemplo,
1R2 y 2R1. Tampoco es trasitiva pues, por ejemplo, 3R2 y 2R4 pero 3 no se
relaciona con 4.
384 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
(b) el comité puede estar formado por cualquier número de personas siem-
pre y cuando haya el mismo número de hombres que de mujeres;
De este modo pueden ser desde 1 hombre y una mujer (en total 2) hasta
4 hombres y 4 mujeres (en total 8). Esto es:
µ ¶µ ¶ µ ¶µ ¶ µ ¶µ ¶
7 4 7 4 7 4
7×4+ + +
2 2 3 3 4 4
(c) el comité tiene 4 personas de las cuales al menos dos de las cuales son
mujeres;
Entonces son 2 mujeres y 2 hombres, o tres mujeres y 1 hombre o 4
mujeres: µ ¶µ ¶ µ ¶µ ¶ µ ¶
7 4 7 4 7
+ +
2 2 3 1 4
(d) el comité tiene 4 personas, dos de cada sexo, pero el Sr. Ramírez no
puede estar en el comité con la señora Gómez.
El número total de comités es
µ ¶µ ¶
7 4
2 2
El número de comités en los que están simultáneamente ambos personajes
es simplemente 6 × 3 y el resultado nal es la diferencia.
385
Matemática Discreta
EXAMEN FINAL B
2001-2002. Febrero
0 1 1 1 0 0 0 0 0 1 0 0 0 1 1
1 0 0 0 1 0 0 0 0 0 0 0 0 0 0
1 0 0 1 0 0 0 0 0 1 0 0 0 0 0
1 0 1 0 0 0 0 0 0 0 0 0 0 0 1
0 1 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 1 1 1 0 0 0 0 0 0
0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 1 1 0 0 0
1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 1 0 1 0
0 0 0 0 0 0 0 0 1 0 1 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
1 0 0 0 0 0 0 0 0 0 1 0 0 0 0
1 0 0 1 0 0 0 0 0 0 0 0 0 0 0
i) Determinar el número de vértices y el número de aristas de G.
ii) Determinar si G es conexo. Determinar si G es Euleriano.
iii) Determinar los vértices de grado mayor o igual que 4.
iv) Computar, si es posible, un árbol generador de G. Si G es no conexo,
tomar la componente conexa con mayor número de vértices y computar, si
es posible, un árbol generador de dicha componente.
0 1 0 1
1 0 0 1
M=
0 0 0 1
1 1 1 0
A := (t ⇒ q) ∧ (u ⇒ s)
B := (t ∧ u) ⇒ (q ∧ s)
Demostrar que A implica lógicamente B .
Matemática Discreta
EXAMEN FINAL RESUELTO B
2001-2002. Febrero
21 × 5k + 21 − 1 = 21 × 5k + 20 = 5(21k + 4).
0 1 1 1 0 0 0 0 0 1 0 0 0 1 1
1 0 0 0 1 0 0 0 0 0 0 0 0 0 0
1 0 0 1 0 0 0 0 0 1 0 0 0 0 0
1 0 1 0 0 0 0 0 0 0 0 0 0 0 1
0 1 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 1 1 1 0 0 0 0 0 0
0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 1 1 0 0 0
1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 1 0 1 0
0 0 0 0 0 0 0 0 1 0 1 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
1 0 0 0 0 0 0 0 0 0 1 0 0 0 0
1 0 0 1 0 0 0 0 0 0 0 0 0 0 0
i) Determinar el número de vértices y el número de aristas de G.
Como la matriz tiene 15 las y 15 columnas, entonces G tiene 15 vértices.
Podemos calcular el grado de cada vértice viendo el número de unos que hay
en cada la (o en cada columna), de esta manera la sucesión de los grados
de los vértices es: 6, 2, 3, 3, 2, 4, 2, 2, 3, 2, 3, 3, 1, 2, 2. Como la suma de
los grados de los vértices es 40, el grafo tiene 20 aristas.
ii) Determinar si G es conexo. Determinar si G es Euleriano.
Como el vértice 1 es adyacente con los vértices 2, 3, 4, 10 y 14, todos
ellos están en la misma componente. El 2 es adyacente con el 5, el 5 lo es
con el 6 y éste con el 7 con el 8 y con el 9. De este modo ya tenemos que los
siguientes vértices están en la misma componente conexa: 1, 2, 3, 4, 5, 6, 7,
8, 9, 10 y 14. El grafo es entonces conexo porque el 15 es adyacente con el
14, el 11 con el 9, el 12 con el 11 y el 13 con el 12. De este modo hay una
única componente conexa. El grafo no es euleriano porque hay vértices de
grado impar (por ejemplo el 3 que tiene grado 3).
iii) Determinar los vértices de grado mayor o igual que 4.
El vértice 1 tiene grado 6 y el vértice 6 tiene grado 4, el resto de los
vértices tiene grado menor.
iv) Computar, si es posible, un árbol generador de G. Si G es no conexo,
tomar la componente conexa con mayor número de vértices y computar, si
es posible, un árbol generador de dicha componente.
390 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
2 1 1 1
1 2 1 1
M=
1 1 1 0
1 1 0 3
Entonces la relación que queremos estudiar se puede representar mediante
la siguiente matriz:
1 1 1 1
1 1 1 1
1 1 1 0
1 1 0 1
Es entonces reexiva pues la diagonal no tiene ninguna entrada nula. Es
simétrica pues la matriz es simétrica. No es antisimétrica pues, por ejemplo,
1R2 y 2R1. Tampoco es trasitiva pues, por ejemplo, 3R2 y 2R4 pero 3 no se
relaciona con 4.
A := (t ⇒ q) ∧ (u ⇒ s)
B := (t ∧ u) ⇒ (q ∧ s)
Demostrar que A implica lógicamente B .
La única posibilidad para que A no implique lógicamente B es que existan
valores de verdad de las variables t, q, u, s que hacen que A sea verdadero y
B falso. Ahora bien, si B es falso es porque t ∧ u es verdadero y q ∧ s es
falso. Es decir t y u verdaderas y alguna entre q y s falsa. Obsérvese que A
es la conjunción de dos implicaciones. En ambas implicaciones la hipótesis
392 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
(c) el comité tiene 6 personas de las cuales al menos dos de las cuales son
mujeres;
Entonces son 2 mujeres y 4 hombres, o tres mujeres y 3 hombres o 4
mujeres y 2 hombres o 5 mujeres y 1 hombre o 6 mujeres:
µ ¶µ ¶ µ ¶µ ¶µ ¶µ ¶ µ ¶µ ¶µ ¶
7 4 7 4 7 4 7 4 7
+ +
2 4 3 3 4 2 5 1 6
(d) el comité tiene 4 personas, dos de cada sexo, pero el Sr. Ramírez no
puede estar en el comité con la señora Gómez.
El número total de comités es
µ ¶µ ¶
7 4
2 2
El número de comités en los que están simultáneamente ambos personajes
es simplemente 6 × 3 y el resultado nal es la diferencia.
393
Matemática Discreta
EXAMEN FINAL
2001-2002. Septiembre
1 n
Σni=1 =
i(i + 1) n+1
0 0 1 1 0 0 0 0 0 1 0 0 0 1 1
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
1 0 0 1 0 0 0 0 0 1 0 0 0 0 0
1 0 1 0 0 0 0 0 0 0 0 0 0 0 1
0 1 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 1 1 1 0 0 0 0 0 0
0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 1 1 0 0 0
1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 1 0 1 0
0 0 0 0 0 0 0 0 1 0 1 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
1 0 0 0 0 0 0 0 0 0 1 0 0 0 0
1 0 0 1 0 0 0 0 0 0 0 0 1 0 0
394 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
0 1 0 1 0
1 0 0 1 0
M= 0 0 0 1 0
1 1 1 0 0
0 0 0 0 0
Matemática Discreta
EXAMEN FINAL RESUELTO
2001-2002. Septiembre
1 n
Σni=1 =
i(i + 1) n+1
La fórmula es cierta para n = 1 (base de inducción):
1
Σ1i=1 = 1/2 = 1/(1 + 1).
i(i + 1)
Si la fórmula es cierta para n veamos que también lo es para n + 1 (paso
de inducción). Escribimos la suma como:
1 1 1
Σn+1
i=1 = Σni=1 + .
i(i + 1) i(i + 1) (n + 1)(n + 2)
Usamos la hipótesis de inducción:
1 n 1
Σn+1
i=1 = + .
i(i + 1) n + 1 (n + 1)(n + 2)
Y es una comprobación vericar entonces la fórmula.
0 0 1 1 0 0 0 0 0 1 0 0 0 1 1
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
1 0 0 1 0 0 0 0 0 1 0 0 0 0 0
1 0 1 0 0 0 0 0 0 0 0 0 0 0 1
0 1 0 0 0 1 0 0 0 0 0 0 0 0 0
0 0 0 0 1 0 1 1 1 0 0 0 0 0 0
0 0 0 0 0 1 0 1 0 0 0 0 0 0 0
0 0 0 0 0 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0 1 1 0 0 0
1 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 1 0 0 1 0 1 0
0 0 0 0 0 0 0 0 1 0 1 0 1 0 0
0 0 0 0 0 0 0 0 0 0 0 1 0 0 1
1 0 0 0 0 0 0 0 0 0 1 0 0 0 0
1 0 0 1 0 0 0 0 0 0 0 0 1 0 0
i) Determinar el número de vértices y el número de aristas de G.
La sucesión de los grados es (con lo que respondemos iii)):
(5, 1, 3, 3, 2, 4, 2, 2, 3, 2, 3, 3, 2, 2, 3).
Por tanto hay 15 vértices y 20 aristas.
ii) Determinar si G es conexo. Determinar si G es Euleriano.
Basta una representación del grafo para observar que es conexo. No es
Euleriano pues tiene vértices de grado impar.
iii) Determinar los grados de cada uno de los vértices.
Siguiendo la ordenación de los vértices que marca la matriz, la sucesión
de los grados es:
(5, 1, 3, 3, 2, 4, 2, 2, 3, 2, 3, 3, 2, 2, 3).
V := {1, 2, 3, 4}.
Lo que va a ser distinto en cada grafo es el conjunto de aristas E :
i) E = ∅
ii) E = {(1, 2)}
iii) E = {(1, 2), (1, 3)}
iv) E = {(1, 2), (4, 3)}
v) E = {(1, 2), (1, 3), (2, 4)}
vi) E = {(1, 2), (1, 3), (1, 4)}
vii) E = {(1, 2), (1, 3), (2, 3)}
viii) E = {(1, 2), (1, 3), (2, 4), (3, 4)}
ix) E = {(1, 2), (1, 3), (2, 4), (1, 4)}
x) E = {(1, 2), (1, 3), (2, 4), (1, 4), (3, 4)}
xi) K4
if j = n then v = 1 else i := i + 1
If v = 0 then s :=no else s :=sí
Salida: s.
Ejemplo: Entrada: 9
i = 2 como 9 mod 2 6= 0 entonces
i = 3 como 9 mod 3 = 0 entonces
j=3
como j < 9 entonces j = 3 × 3 = 9
como j = 9 se sale del bucle (j ) y v = 1
como v = 1 entonces se sale del bucle i
como v = 1 entonces la salida es sí.
0 1 0 1 0
1 0 0 1 0
M= 0 0 0 1 0
1 1 1 0 0
0 0 0 0 0
R := {(1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (1, 2), (2, 1), (1, 3),
(3, 1), (1, 4), (4, 1), (2, 3), (3, 2), (2, 4), (4, 2), (3, 4), (4, 3)}
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0
1 1 1 1 0
0 0 0 0 1
Lo que muestra que los cuatro primeros ordenadores están totalmente
conectados entre sí y el quinto ordenador no está conectado con nigún otro.
iii) Determinar si es una relación de equivalencia. En caso de que lo sea
escribir el conjunto cociente V 0 /R.
En efecto es una relación de equivalencia y el conjunto cociente resulta
ser el de las componentes conexas del grafo, que en este caso son dos: la que
contiene a los vértices 1, 2, 3 y 4 por un lado y la que contiene al quinto
vértice por otro, esto es:
V 0 /R = {1, 5}.
Matemática Discreta
Control A
2002-2003.
Ejercicio 2. (6 puntos)
i) (2 punto) Sea a1 , ..., an una lista de tamaño n de números enteros
diferentes. Determinar cuántas ternas ordenadas (permitiendo números re-
petidos) se pueden formar usando los números de la lista.
ii) (4 puntos) Diseñar un algoritmo que tenga como entrada una lista de
números enteros diferentes y como salida todas las posibles ternas ordena-
das de dichos números, permitiendo en dichas ternas que haya repeticiones.
Estudiar su complejidad.
5x + 3 ≡ 7 mod 11.
406 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
Matemática Discreta
Control A resuelto
2002-2003.
Ejercicio 2.
407
5x + 3 ≡ 7 mod 11.
ii)
234 + 2798 ≡ 4 + 3 ≡ 2 mod 5,
34128 ≡ (−1)128 ≡ 1 mod 5,
2765 × 7895943021 ≡ 0 mod 5.
iii) Pasamos el 3 restando y obtenemos:
5x ≡ 4 mod 5.
Como 5 × 9 ≡ 1 mod 11 entonces, mutiplicando la congruencia por 9,
obtenemos:
x ≡ 3 mod 11.
De este modo el conjunto de soluciones es:
{11k + 3 : k ∈ Z}.
409
Matemática Discreta
Control B
2002-2003.
Matemática Discreta
Control B resuelto
2002-2003.
2n
X
Paso de inducción: sea (2k − 1) = 4n2 . Se trata de demostrar que
k=1
2(n+1)
X
(2k − 1) = 4(n + 1)2 .
k=1
Ahora,
2(n+1) 2n+2 2n
X X X
(2k − 1) = (2k − 1) = (2k − 1)+[2(2n+1)−1]+[2(2n+2)−1]
k=1 k=1 k=1
hip.de ind. 2
= 4n + (4n + 1) + (4n + 3) = 4n2 + 8n + 4 = 4(n + 1)2 .
Se sigue que para todo número natural n ∈ N,
2n
X
(2k − 1) = 4n2 .
k=1
411
x0 = 1 × q1 × 33 + 5 × q2 × 15 + 2 × q3 × 55,
donde 33 × q1 ≡ 1 mod 5, 15 × q2 ≡ 1 mod 11, 55 × q3 ≡ 1 mod 3, es
decir,
Entonces, q1 = 2, q2 = 3 y q3 = 1 y
x0 = 1 × 2 × 33 + 5 × 3 × 15 + 2 × 1 × 55 =
412 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
= 66 + 225 + 110 = 66 + 60 + 110 mod 165 = 236 mod 165 = 71 mod 165.
Las soluciones del sistema dado son los números enteros de la forma
x = 71 + 165k, con k ∈ Z.
p(S ∩ S 0 )
p(S|S 0 ) = .
p(S 0 )
Ahora, S 0 = {(1, 5), (2, 4), (3, 3), (4, 2), (5, 1)} y S ∩ S 0 = {(2, 4), (4, 2)}. Se
sigue que
p(S ∩ S 0 ) 2
p(S|S 0 ) = = .
p(S 0 ) 5
Matemática Discreta
EXAMEN FINAL
Septiembre 2003
Ejercicio 1. (2 puntos)
i) (0.5 puntos) Determinar si el siguiente razonamiento es o no un razo-
namiento correcto:
Si apruebas el examen serás feliz.
Si estudias mucho no eres feliz.
Estudias mucho.
Aprobarás el examen.
ii) (0.5 puntos) Formalizar la siguiente sentencia del lenguaje natural.
Escribir su negación en lenguaje formal y en lenguaje natural:
En todas las familias hay un miembro al cuál no le gusta la lechuga.
iii) (1 punto) Demostrar por inducción que para cada número natural n
se tiene que
Xn
(2k)3 = 2n2 (n + 1)2 .
k=1
Ejercicio 2. (2 puntos)
i) (1 punto) Escribir un algoritmo en pseudocódigo que tenga como en-
trada una lista a1 , ..., an , de números enteros y devuelva la sublista de a1 ,
..., an de los números que son distintos. Esto es, que obtenga el conjunto de
los elementos de la lista a1 , ..., an .
414 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
Ejercicio 3. (2 puntos)
La probabilidad de que un ordenador fabricado por una cierta empresa
presente un defecto en su disco duro (por el cuál el ordenador no se puede
utilizar) a lo largo del primer año de vida es p y la probabilidad que una
pantalla fabricada por la misma empresa se estropee durante el primer año
de vida es q .
(i) (1 punto) Pepe compra 3 ordenadores y 5 pantallas de esta empresa.
Calcular la probabilidad de que, después de un año, Pepe tenga un solo
ordenador y una sola pantalla funcionando.
(ii) (1 punto) Supongamos que Pepe conecte los 3 ordenadores, O1, O2
y O3, con las 5 pantallas, P 1, P 2, P 3, P 4 y P 5, por medio de las siguientes
conexiones:
(O1, P 1), (O2, P 2), (O2, P 4), (O2, P 5), (O3, P 3).
R = {(1, 1), (2, 2), (4, 5), (3, 3), (4, 4), (5, 4), (5, 5), (6, 6),
(5, 6), (2, 3), (4, 6), (6, 5), (6, 4), (7, 7), (3, 2)}.
i) (0.5 puntos) Determinar si verica las propiedades reexiva, simétrica,
antisimétrica y transitiva.
ii) (0.5 puntos) Determinar si es una relación de equivalencia. Determinar
si es una relación de orden.
iii) (0.5 puntos) Si es una relación de equivalencia, determinar sus clases
de equivalencia. Si es de orden, determinar si es una relación de orden total.
Ejercicio 5. (1 punto)
415
Matemática Discreta
EXAMEN FINAL RESUELTO
Septiembre 2003
Ejercicio 1. (2 puntos)
i) (0.5 puntos) Determinar si el siguiente razonamiento es o no un razo-
namiento correcto:
Si apruebas el examen serás feliz.
Si estudias mucho no eres feliz.
Estudias mucho.
Aprobarás el examen.
Sean las variables siguientes: a :=apruebas el examen, s :=serás feliz,
e :=estudias mucho.
El razonamiento que se presenta tiene tres hipótesis:
H1 := (a ⇒ s),
H2 := (e ⇒ ¬s),
H3 := e.
Y la tesis es T := a. Para que el razonamiento sea correcto se debe tener que
la siguiente proposición es una tautología:
(H1 ∧ H2 ∧ H3 ) ⇒ T.
Pero la siguiente asignación de valores a las variables proposicionales muestra
que no lo es:
a := F, s := F, e := v.
417
Que se lee en el lenguaje natural: existe una familia en la que a todos sus
miembros les gusta la lechuga.
iii) (1 punto) Demostrar por inducción que para cada número natural n
se tiene que
Xn
(2k)3 = 2n2 (n + 1)2 .
k=1
Σn+1 3 n 3 3 3
k=1 (2k) = Σk=1 (2k) + 2 (n + 1) .
Σn+1 3 2 2 3 3
k=1 (2k) = 2n (n + 1) + 2 (n + 1) .
Ejercicio 2. (2 puntos)
i) (1 punto) Escribir un algoritmo en pseudocódigo que tenga como en-
trada una lista a1 , ..., an , de números enteros y devuelva la sublista de a1 ,
418 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
..., an de los números que son distintos. Esto es, que obtenga el conjunto de
los elementos de la lista a1 , ..., an .
Diseñamos un algoritmo auxiliar que determina si un elemento está o no
en una lista, lo llamamos pertenece:
Entrada: a1 , ..., an ; a
s := 0
For i = 1 to n while s := 0
if a = ai then s := 1
Salida: s
Para construir el algoritmo que se nos pide basta tomar una lista auxiliar,
digamos b, que inicialmente contiene el primer elemento de la entrada e ir
ampliándola con los sucesivos elementos distintos de la lista de la entrada.
Entrada: a1 , ..., an
b1 := a1 , j := 2
For i = 2 to n
if pertenece(ai , b) = 0 then bj := ai , j := j + 1
Salida: b
ii) (1 punto) Escribir un algoritmo en pseudocódigo que tenga como en-
trada dos números naturales b y c y una lista a1 , ..., an de números naturales y
obtenga la sublista de a1 , ..., an de los elementos, si existen, que son múltiplos
comunes de b y c.
Entrada: a1 , ..., an ; b; c
j := 1
For i = 1 to n
if ai mod c = 0 and ai mod b = 0 then bj := ai , j := j + 1
Salida: b
Ejercicio 3. (2 puntos)
La probabilidad de que un ordenador fabricado por una cierta empresa
presente un defecto en su disco duro (por el cuál el ordenador no se puede
utilizar) a lo largo del primer año de vida es p y la probabilidad que una
pantalla fabricada por la misma empresa se estropee durante el primer año
de vida es q .
(i) (1 punto) Pepe compra 3 ordenadores y 5 pantallas de esta empresa.
Calcular la probabilidad de que, después de un año, Pepe tenga un solo
ordenador y una sola pantalla funcionando.
419
(O1, P 1), (O2, P 2), (O2, P 4), (O2, P 5), (O3, P 3).
Q = p2 q2 = (1 − p)(1 − q 3 ).
R = {(1, 1), (2, 2), (4, 5), (3, 3), (4, 4), (5, 4), (5, 5), (6, 6),
420 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
(5, 6), (2, 3), (4, 6), (6, 5), (6, 4), (7, 7), (3, 2)}.
Ejercicio 5. (1 punto)
Efectuar las siguientes operaciones módulo 5, obteniendo siempre un re-
sultado entre 0 y 4.
i) (0.25 puntos) 2143 + 80100 ≡ 3 mod 5;
ii) (0.25 puntos) 224 × 2513 ≡ 4 mod 5 × 3 mod 5 ≡ 2 mod 5;
iii) (0.25 puntos) 27 ≡ (22 )3 × 2 ≡ 3 mod 5;
3003
iv) (0.25 puntos) 312013 ≡ 34 × 3 ≡ 3 mod 5.
0 1 1 0 1 1 0 0
1 0 1 0 1 1 0 0
1 1 0 1 1 0 0 0
0 0 1 0 1 0 0 0
A :=
0
1
1 1 1 0 1 1 0
1 1 0 0 1 0 1 0
0 0 0 0 1 1 0 0
0 0 0 0 0 0 0 0
i) (0.25 puntos) Determinar si G0 es conexo.
Como la última la de la matriz está formada por ceros, el grafo no puede
ser conexo.
ii) (0.25 puntos) Determinar si G0 es euleriano.
El grafo es euleriano porque todas las aristas están en la misma compo-
nente conexa (formada por todos los vértices excepto el último) y todos los
vértices tienen grado par.
iii) (0.25 puntos) Determinar si G0 tiene un árbol generador.
Al no ser conexo no puede tener un árbol generador.
iv) (0.75 puntos) Computar, si es que existen, o un árbol generador, o un
circuito euleriano de G0 .
Un circuito euleriano es el siguiente (donde los vértices están numerados
siguiendo el orden de la matriz):
v5 , v 4 , v 3 , v 2 , v 1 , v 3 , v 5 , v 2 , v 6 , v 5 , v 7 , v 6 , v 1 , v 5
422 CAPÍTULO 7. CONTROLES Y EXÁMENES RESUELTOS
Bibliografía
[CBVB] Criado, R., Bujosa, A., Vega, C., Banerjee, R. Fundamentos Ma-
temáticos I, Centro de Estudios Ramón Areces, 1998. Para el
Capítulo 1.
423