Sie sind auf Seite 1von 110

Cartilla Elementos de Teora en la Computaci

on
Monica Mara Lozano Romero
Politecnico Grancolombiano

2010

Cartilla Elementos de Teora en la Computaci


on

Este libro esta sujeto a derechos de autor. Todos estos derechos son reservados para el autor del libro
en su reproduccion parcial o completa, en especial los derechos de traduccion, distribucion, uso de las
ilustraciones y copia. Cualquier infraccion a estos derechos esta legislada por la ley colombiana de derechos
de autor.

Cartilla Elementos de Teora en la Computaci


on

ii

Indice general

1. Conteo
1.1. Introduccion . . . . . . . . . . . . . . . . . . .
1.2. Principios de Conteo . . . . . . . . . . . . . .
1.2.1. Regla de la suma y el producto . . .
1.2.2. Permutaciones . . . . . . . . . . . . .
1.2.3. Combinaciones . . . . . . . . . . . . .
1.2.4. Principio de las casillas . . . . . . . .
1.2.5. Ejemplos . . . . . . . . . . . . . . . .
1.3. Teorema del binomio y sus aplicaciones . .
1.3.1. Triangulo de pascal y el teorema del
1.4. Conteo y conjuntos . . . . . . . . . . . . . . .
1.5. Ejercicios . . . . . . . . . . . . . . . . . . . .

. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
binomio
. . . . . .
. . . . . .

2. Inducci
on
2.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . .
2.2. Induccion sobre los naturales . . . . . . . . . . . . .
2.2.1. Induccion con inicio en enteros distintos de
2.3. Principio del buen orden . . . . . . . . . . . . . . .
2.3.1. Induccion y el principio del buen orden . .
2.4. Definiciones inductivas . . . . . . . . . . . . . . . .
2.4.1. Induccion sobre definiciones inductivas . .
2.4.2. Arboles binarios . . . . . . . . . . . . . . . .
2.5. Induccion y el analisis de algoritmos . . . . . . . .
2.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . .
3. Especificaci
on y correci
on de algoritmos
3.1. Introduccion . . . . . . . . . . . . . . . . . .
3.2. Especificacion de algoritmos . . . . . . . .
3.3. Correcion de asignacion y condicionales .
3.3.1. Correcion de asignaciones . . . . .
3.3.2. Correccion de condicionales . . . .
3.4. Correccion de ciclos . . . . . . . . . . . . .
3.5. Ejercicios . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

4. Ecuaciones de recurrencia
4.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . .
4.2. Definiciones basicas . . . . . . . . . . . . . . . . . .
4.2.1. Tipos de ecuaciones de recurrencia . . . . .
4.3. Ecuaciones de recurrencia lineales y homogeneas .
4.3.1. Ecuaciones de primer orden . . . . . . . . .
4.3.2. Ecuaciones de segundo orden . . . . . . . .
4.4. Ecuaciones de recurrencia lineales no Homogeneas
4.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . .
iii

.
.
.
.
.
.
.
.
.
.
.

. . .
. . .
cero
. . .
. . .
. . .
. . .
. . .
. . .
. . .

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.

1
1
1
1
2
4
6
7
9
10
11
12

.
.
.
.
.
.
.
.
.
.

17
17
17
21
23
24
25
26
26
27
28

.
.
.
.
.
.
.

33
33
33
36
36
39
42
47

.
.
.
.
.
.
.
.

53
53
53
54
55
55
56
60
63

Cartilla Elementos de Teora en la Computaci


on

5. Teora de n
umeros
5.1. Introduccion . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2. N
umeros Naturales . . . . . . . . . . . . . . . . . . . . . .
5.2.1. Desigualdades y la propiedad de la cancelacion
5.2.2. Cero y resta . . . . . . . . . . . . . . . . . . . . .
5.3. N
umeros enteros . . . . . . . . . . . . . . . . . . . . . . .
5.4. Dominios Integrales . . . . . . . . . . . . . . . . . . . . .
5.5. Divisibilidad . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5.1. N
umeros Primos . . . . . . . . . . . . . . . . . . .
5.5.2. Maximo com
un divisor . . . . . . . . . . . . . . .
5.5.3. Teorema fundamental de la aritmetica . . . . . .
5.5.4. Congruencias . . . . . . . . . . . . . . . . . . . . .
5.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.

6. Relaciones y Funciones
6.1. Introduccion . . . . . . . . . . . . . . . . .
6.2. Relaciones . . . . . . . . . . . . . . . . . .
6.2.1. Tuplas y producto cruz . . . . . .
6.2.2. Operaciones y relaciones . . . . .
6.2.3. Tipos de relaciones . . . . . . . .
6.2.4. Relaciones de equivalencia . . . .
6.3. Funciones . . . . . . . . . . . . . . . . . .
6.3.1. Inversa de una funcion . . . . . .
6.4. Aplicaciones en el analisis de algoritmos
6.5. Ejercicios . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

85
. 85
. 85
. 85
. 88
. 92
. 94
. 96
. 98
. 99
. 100

iv

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
. .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

67
67
67
69
69
70
71
71
73
74
77
78
80

Captulo 1: Conteo

En este captulo se introducen lo principios del conteo o analisis combinatorio, que incluye las reglas
de la suma y el producto, permutaciones y combinaciones (en ambos casos con y sin repeticion). Adicionalmente se muestra el teorema del binomio y el princpio de las casillas cuyas aplicaciones son las mas
conocidas de esta area de las matematicas.
El estudiante al final del captulo estara en la capacidad de contar y encontrar el conjunto de posiblidades de un problema de analisis combinatorio planteado usando las tecnicas de conteo explicadas.
La mayora del contenido de este captulo se baso en [4] y [2].

Secci
on 1.1: Introducci
on
El analisis combinatorio es una rama de las matematicas que tiene muchas aplicaciones en otras areas
del conocimiento. En particular en la ciencias de la computacion es un elemento fundamental para el analisis de algoritmos, dado que ofrece herramientas que permiten determinar la complejidad de estos con el
fin de mejorarlos y hacerlos mas eficientes.

Secci
on 1.2: Principios de Conteo
El conteo, tal como su nombre lo dice, es la ciencia de aprender a contar. Que contamos?, contamos el
n
umero de posibilidades de combinaciones de un conjunto de elementos, estas posibilidades pueden tener
restricciones o no. Por ejemplo, nos gustara saber cuantos grupos de tres personas con mnimo una mujer
incluida se pueden hacer de un grupo de cinco personas donde hay tres hombres y dos mujeres.
Saber contar no es una cosa trivial, eso depende de la cantidad de elementos involucrados, que tan
relacionados estan, que restricciones hay, entre otras. Para saber contar se necesita un poco de practica,
intuicion y de conocer la teora, aunque uno puede contar sin saberse form
ulas. De hecho las form
ulas o
ecuaciones existentes son solo herramientas que nos ayudan a encontrar la respuesta, porque muchas de
las veces que se cuenta la form
ula no existe, toca encontrarla basandonos en el problema planteado.
Por esa razon es basico entender la diferencia entre los terminos y estrategias aqu explicadas, dado
que teniendo claro cuando se usan, para que sirven y porque las form
ulas mostradas son as y no de otra
manera, contar sera tan natural como respirar.
1.2.1: Regla de la suma y el producto
Las reglas de la suma y del producto nos permiten contar elementos entre varios conjuntos. Un ejemplo
de uso de estas reglas es como contar el total de maneras posibles de realizar una tarea si en cada uno de
los pasos que se necesitan para realizarse hay un n
umero distinto de formas de hacerlo.
1

Cartilla Elementos de Teora en la Computaci


on

Principios de Conteo

En el caso de la suma, nos permite contar elementos entre conjuntos que de a parejas no tienen nada en
com
un y se quiere saber cuantos elementos tengo disponibles entre todos los conjuntos (sin contarlos dos
veces, por eso se piden que sean disyuntos o distintos de a parejas). Por ejemplo, si tenemos tres camisas:
una blanca, una roja y una verde, y ademas tenemos dos pantalones: uno negro y otro cafe, el n
umero
total posibilidades de prendas de vestir que hay son cinco dado que es el resultado de sumar tres y dos.
Note que para poder vestirse puede ponerse una camisa o un pantalon, aqu no se esta contando ponerse
una camisa (de las posibles que hay) y un pantalon (de los posibles que hay), solo la posibilidad de utilizar
una de esas prendas de vestir.
La regla del producto es a
un mas sencilla, dado que cuenta las maneras de combinar elementos de
varios conjuntos. Siguiendo con el ejemplo de la regla de la suma (las camisas y los pantalones) el n
umero
de pintas que puedo hacer con esas camisas y esos pantalones son seis, dado que cada camisa la puedo
combinar con un pantalon, es decir, la roja se puede combinar con el pantalon negro y ademas con el
pantalon cafe (aunque no se vea bien!), la blanca y la verde tambien se pueden combinar con los dos
pantalones que hay. Si sumamos todas las posibilidades de combinar las camisas con los pantalones esta
nos da un total de seis pintas distintas, en pocas palabras, la regla del producto nos dice: multiplique los
tama
nos de los conjuntos involucrados (en el ejemplo 6 = 3 2). Las dos reglas las podemos resumir de la
siguiente manera:

Regla 1.1 (Regla de la suma)


Si un evento A puede suceder de a maneras distintas y un evento B puede suceder de b maneras distintas,
pero no pueden suceder al mismo tiempo, entonces el hecho que suceda el evento A o el evento B es
a + b.

Regla 1.2 (Regla del producto)


Si un evento A puede suceder de a maneras distintas y un evento B puede suceder de b maneras distintos,
el n
umero total de maneras de que sucedan ambos eventos es a.b.
1.2.2: Permutaciones
Algunas veces queremos saber todas las maneras de combinar un conjunto de elementos en el cual haya
un orden definido, como es el caso averiguar cuantas formas hay para ordenar un conjunto de personas en
una fila india (note que todas las personas pueden estar en cualquier lugar de la fila). Una permutaci
on de
un conjunto de elementos es una reordenacion lineal de estos.
Siguiendo con el ejemplo de las personas en la fila, suponga que cada persona tiene un n
umero asignado,
as que podemos modelar la fila como una cadena que consiste de los n
umeros 1234. Ahora, la pregunta
es de cuantas maneras distintas puedo reordenar los n
umeros de la cadena?, una posibilidad es 1243, otra
posibilidad es 1324 y as sucesivamente. Note que si se deja el uno fijo en la cadena y tratamos de permutar
cada uno de los demas n
umeros, de esa subcadena (234) para saber todas las maneras distintas de reordenarla es contar las cadenas que se generaran al ir moviendo el dos y dejando fijo el tres y el cuatro, y para
cada posible posicion del dos se deben intercambiar de posicion el tres y el cuatro. De esa manera para
calcular el n
umero de permutaciones las posibilidades de acomodar cada uno de los elementos se reduce de
a uno cuando ya se ha permutado alguno de ellos. Continuando con el ejemplo, el n
umero uno tiene cuatro
2

Cartilla Elementos de Teora en la Computaci


on

Principios de Conteo

posiciones distintas en la cadena, cuando este esta en una posicion cualquier otro n
umero que quiera permutar solo tiene tres posibilidades, el siguente tendra dos y el u
ltimo tendra uno, por la regla del producto el
total de posibilidades de reordenar la cadena es 4321 (porque deben suceder todos los eventos al tiempo).
En general si se quieren permutar n elementos el n
umero de permutaciones se calcula como n.(n
1).(n 2).(n 3) . . . 1, es decir n! , mas conocido como el factorial de un n
umero .

n 1.1 (Permutacio
n de n elementos)
Definicio
Una permutacion de n elementos se representa como P (n) y se define como:
P (n) = n!

Ahora, nos tenemos que preguntar como cuento el n


umero de maneras de reordenar un subconjunto del conjunto dado, dicho de otra manera, si tenemos un conjunto n de elementos y queremos saber
cuantas maneras distintas se pueden reordenar r elementos de ellos con r n (esto se conoce como una
r-permutacion). Siguiendo la misma estructura de pensamiento de reodenar todos los n elementos, para el
primer elemento hay n posibilidades, para el segundo hay n 1, pero como queremos reordenar r de ellos,
el u
ltimo tendra (n r + 1) posibilidades (por que el u
ltimo tiene n r + 1 posibilidades??), as que el total
de combinaciones distintas de reordenarlos es : n.(n 1).(n 2).(n 3) . . . (n r + 1). Con algunas manipulaciones matematicas se define una permutacion de r elementos de n de la siguiente manera (esta como
ejercicio demostrar de manera algebraica la igualdad entre el producto mencionado y la siguiente form
ula):

n 1.2 (r-permutacio
n)
Definicio
Una permutacion de r elementos de n elementos (r n) se representa como P (n, r) y se define como:
P (n, r) =

n!
(nr)!

Para ilustrar un caso de este tipo de permutacion, calculemos cuantas posibles maneras hay de reordenar
dos personas de las cuatro en la fila india antes mencionada, esta es una una 2-permutacion del problema
de la cadena 1234, eso quiere decir que solo podemos permutar dos n
umeros de la cadena, como ejemplos
4!
de una 2-permutacion se tienen 23 o 42. Usando la form
ula definida en 1.2, se tiene que P (4, 2) = (42)!
= 12,
en otras palabras, se pueden reordenar dos elementos de la cadena de 12 maneras distintas.
Permutaci
on con repetici
on
Existe tambien la posibilidad de contar r-permutaciones con repeticiones, es decir, donde se repiten los
elementos. En el caso del ejemplo que hemos trabajado una 3-permutacion con repeticion sera 112 o 244.
Este tipo de permutaciones tienen una manera especial de contarse, dado que ahora cada posicion de la
cadena puede ser cualquiera de los elementos del conjunto (no van disminuyendo de a uno las posibilidades
como veniamos haciendo).

Cartilla Elementos de Teora en la Computaci


on

Principios de Conteo

Si nos imaginamos las tres posiciones de la cadena como tres canastas y a las cuatro personas como
cuatro frutas distintas, entonces en la primera canasta puedo ingresar cualquiera de las cuatro frutas (hay
cuatro posibilidades de llenarla), en cambio para la segunda canasta el n
umero de posibildades es el mismo, como tambien en la tercera, luego por cada canasta hay cuatro posibilidades as que por la regla del
producto el n
umero total de posibilidades de llenar las cuatro canastas con las cuatro frutas (o cuatro
personas en una fila india) es 4 4 4.
Siguiendo con la misma estructura mental se puede decir que una para calcular una r-permutacion
con repeticion de n elementos, para cada posicion de la permutacion hay n posibilidades y como son r
posiciones entonces el total de posibilidades es nr . Resumiendo tenemos el siguiente resultado:

Teorema 1.1
Una r-permutacion con repeticion de n elementos es nr

1.2.3: Combinaciones

Una combinacion de r elementos de un conjunto de n elementos, es la manera de obtener un subconjunto


de r objetos de ese conjunto, sin importar el orden, este tipo de combinaciones se les conoce como rcombinaciones. Para aclarar el concepto mencionado considere la 2-permutacion sin repeticion de la cadena
de n
umeros 1234:
12,13,14,21,23,24,31,32,34,41,42,43
Basados en lo dicho anteriormente una 2-combinacion del mismo conjunto sera:
12,13,14,23,24,34
Note que las 2-permutaciones 12, 21 son la misma 2-combinacion, dado que el conjunto {1,2} es igual al
conjunto {2,1} (es decir, no nos importa el orden).
Ahora tratemos de derivar la form
ula matematica para obtener todas las r-combinaciones de un conjunto de n elementos. Para esto, primero se obtienen todas las r-permutaciones que se puedan obtener del
conjunto dado, pero se deben eliminar todas las posibles permutaciones de cada uno de los subconjuntos
de r elementos encontrados ya que todas representan la misma r-combinacion involucrada. Al igual que
como cuenta un pastor ovejas a partir del total de patas que ve desde el piso, el total de permutaciones
se debe dividir por r! (si un pastor ve 16 patas el total de ovejas sera 4, pues cada cuatro patas hay una
oveja). De esa manera podemos definir como el total de r-combinaciones de un conjunto de n elementos
de la siguiente manera:

n 1.3 (r-combinacio
n)
Definicio
Una r-combinacion se representa como C(n, r) y se define como:
n
n!
( ) = C(n, r) =
r!(n r)!
r

Cartilla Elementos de Teora en la Computaci


on

Principios de Conteo

La form
ula definida tambien es comunmente conocida como el Coeficiente binomial (nr), este termino
sera mas claro en la seccion 1.3. Adicionalmente de la anterior definicion se puede concluir la siguiente
relacion entre el total de r-permutaciones y el total r-combinaciones mencionadas:
P (n, r) = r!.C(n, r)
El siguiente ejemplo ilustra el uso de las combinaciones en el analisis combinatorio.

Ejemplo 1.1
Suponga que a un estudiante le dan la posibilidad de escoger en un examen 6 preguntas de 9 preguntas
propuestas. El n
umero de maneras distintas de que el estudiante pueda escoger 6 preguntas de las 9 es:
(96) =

9!
6!3!

123456789
(123456)(123)

789
123

= 84

Combinaciones con repetici


on
Al igual que con las permutaciones existen combinaciones con repeticion, esto implica que en cada posible subconjunto de r elementos de un conjunto de n elementos puede tener elementos repetidos. Sabemos
por lo visto en cursos anteriores que un conjunto de elementos no puede tener elementos repetidos, pero
existe unos tipos especiales de conjuntos que son conocidos como bolsas (que propiedades tendran este tipo
de conjuntos?), en donde se permiten tener elementos repetidos.
Para hacer mas claro el concepto de bolsa y una r-combinacion con repeticion, considere la 2-combinacion
de la cadea 1234:
12,13,14,23,24,34
La 2-combinacion de esa cadena con repeticion adicionara los conjuntos 11, 22, 33 y 44, as la 2-combinacion
se convertira en:
11,12,13,14,22,23,24,33,34
Al igual que encontramos una form
ula para encontrar las r-combinaciones de un conjunto de n elementos,
tratemos de encontrar una form
ula para que nos permita encontrar todas las r-combinaciones con repeticion
de un conjunto de n elementos. Para esto, considere un conjunto S, cuyos elementos son s1 , s2 , s3 . . . sn .
Note que cualquier combinacion con repeticion se puede representar como una permutacion donde todos
los s1 estan de primeras, luego siguen los s2 , y as sucesivamente:
s1 , s1 . . . , s1 , s2 , . . . , s2 , . . . , sn , . . . , sn
Ahora, si distinguimos las divisiones entre los grupos de elementos repetidos por la barra , entonces no
necesitariamos de los si s, dado que podemos reemplazarlos por otro smbolo, por ejemplo por x. Para
ilustrar lo antes mencionado considere una permutacion de tres s1 , un s2 , ning
un s3 y cuatro s4 y en la
parte inferior mostramos la representacion usando x para cada si y como separador de los grupos de
elementos repetidos:
s1
x
5

s1
x

s1
x

s2
x

s4
x

s4
x

s4
x

s4
x

Cartilla Elementos de Teora en la Computaci


on

Principios de Conteo

Cabe resaltar que ahora tenemos un problema equivalente a contar el n


umero de permutaciones de de r
equises y n 1 barras, pero hay que tener cuidado con la contada de las permutaciones, porque todas las
equises y barras son iguales, as que debemos dividir el n
umero de permutaciones por todas las posibles
permutaciones iguales (por ejemplo intercambiar la primera x por la segunda, eso sigue dando xx, lo mismo
ocurre en el caso de las barras). En el caso de las equises hay r! combinaciones que debemos eliminar y
para el caso de las barras hay que eliminar (n 1)! permutaciones para esto se debe dividir el total
de permutaciones que hay en las repeticiones de las equises y de las barras. De esa manera el total de
permutaciones nos da (y por la Definicion 1.3 se tiene la igualdad mostrada):
(nr+1)!
r!.(n1)!

)
= (n+r1
r

Para resumir tenemos el siguiente teorema:

Teorema 1.2

)
El n
umero de r-combinaciones con repeticion de un conjunto de n elementos es (n+r1
r

Para finalizar, ilustremos el teorema anterior con el siguiente ejemplo. Suponga que 7 amigos se detienen a
comer a McDonalds, donde cada uno puede pedir una hamburguesa, un McFlurry o una porcion de papas,
cuantas ordenes distintas pueden haber?. La respuesta es el n
umero de 7-combinaciones con repeticion
de un conjunto de 3 objetos (hamburguesa, McFlurry o porcion de papas), entonces el n
umero total de
)
ordenes distintas es (3+71
=
36.
7
1.2.4: Principio de las casillas
En esta seccion se introduce un principio de vital importancia en la teora del conteo. El siguiente
teorema enuncia en que consiste el principio de las casillas:

Teorema 1.3 (Principio de las casillas)


Si se asignan n objetos en m casillas y m < n entonces por lo menos una casilla contiene dos o mas objetos.

Este principio es bastante intuitivo porque si enumeramos los n objetos como 1, 2, . . . , n y a su vez enumeramos las m casillas como 1, 2, . . . , m, y para cada casilla de manera ordenada le asignamos un objeto
de la lista de objetos que tenemos, entonces faltaran por asignar m n objetos, dado que m < n, entonces
habra al menos una casilla que se le asignara uno de los objetos restantes.
Por ejemplo, tome 8 personas aleatorimente de un conjunto, entonces por el principio de las casillas
enunciado, entonces al menos dos de ellas habran nacido el mismo dia de la semana, dado que las personas
las podemos modelar como objetos y los das de la semana como casillas.
Cabe resaltar que el principio de las casilla nos garantiza la existencia de una casilla que contiene al
menos dos objetos, en ning
un momento nos menciona cual de esos objetos estan en la misma casilla y
tampoco en que casilla hay al menos dos de ellos. Para poder encontrar la respuesta de que casilla tiene al
menos dos objetos (y cuales objetos son los que contiene) se debe construir o dar el caso concreto en el que
esa condicion se cumple (pueden haber muchas respuestas o solo una, eso depende del problema planteado).

Cartilla Elementos de Teora en la Computaci


on

Principios de Conteo

Aunque el enunciado de este principio es sencillo su uso es muy poderoso, pero algunas veces no es
tan obvio encontrar el conjunto de objetos y de casillas en un problema a solucionar, el siguiente ejemplo
ilustra uno de esos casos:

Ejemplo 1.2
Para demostrar que si se esocogen 5 n
umeros del 1 al 8 , dos de ellos deben sumar 9 se usa el princpio
de las casillas. Primero debemos identificar que parejas de n
umeros del 1 al 8 dan 9, entonces tenemos
A1 = {1, 8}, A2 = {2, 7}, A3 = {3, 6} y A4 = {4, 5}, note que solo hay cuatro parejas de n
umeros del 1 al
8 que suman 9. Si asignamos los cinco n
umeros escogidos aleatoriamente deben haber dos de ellos que
deben caer en alguno de los conjuntos, dado que en este caso las casillas son los conjuntos y los objetos los
n
umeros escogidos y por el principio de las casillas de haber una casilla que tiene al menos dos objetos.
1.2.5: Ejemplos
En esta seccion se muestran varios ejemplos que muestran el uso la teora hasta ahora abarcada, la
intencion de esta seccion es mostrarle al estudiante los casos de uso de las distintas estrategias de conteo
que se utilizan en el analisis combinatorio.

Ejemplo 1.3
En el curso de estadstica hay 55 hombres y 56 mujeres, cual es el total de n
umero de estudiantes que hay
en el curso y cuantas posibles pareja hombre-mujer se pueden hacer?.
El total de estudiantes en el curso (un estudiante puede ser mujer u hombre) por la regla de la suma
son en total 111. El n
umero total de parejas que se pueden hacer (cada pareja es una mujer y un hombre)
se calcula con la regla del producto, es decir, 55 56 = 3080.

Ejemplo 1.4
Suponga que para poder graduarse de la universidad tiene que cumplir un requirimiento de idioma. Para
poder cumplir este requerimiento tiene dos opciones:
1. Hablar frances, aleman o japones.
2. Tomar dos semestres de frances, aleman, japones o italiano, y ver dos semestres de koreano o hindi.
De cuantas maneras se puede cumplir el requerimiento de idiomas?.
Note que cada una de las dos opciones son disyuntas o no tienen nada en com
un, de esa manera la regla
de suma aplica, se deben sumar las posibilidades de cumplir la primera o la segunda condicion para pasar
el requerimiento de idiomas. De la primera opcion tenemos tres posibilidades (frances, aleman o japones),
de la segunda debemos contar el total de posiblidades de combinar las primeras cuatro opciones dadas
(frances, aleman, japones o italiano) y las u
ltimas dos (koreano o hindi), aqu aplica la regla del producto
porque se quiere que ocurran dos condiciones al tiempo (por ejemplo una posibilidad es ver dos semestres
de frances y dos semestres de koreano) de esa manera el n
umero total de posibilidades para cumplir la
segunda condicion del requerimiento de idiomas es 42 = 8. Luego el total de posiblidades nos da 8+3 = 11.

Cartilla Elementos de Teora en la Computaci


on

Principios de Conteo

Ejemplo 1.5
Tres parejas se quieren sentar en una fila del cine, pero las mujeres quieren sentarse juntas y los hombres
tambien. De cuantas maneras distintas pueden sentarse?
Note que hay dos grupos en el problema, los 3 hombres y las 3 mujeres, el n
umero total de maneras de
sentar esos dos grupos es 2!, pero dentro de cada grupo se pueden ordenar tres personas, es decir se puede
ordenar de 3! formas diferentes. Entonces, tenemos 2! maneras de sentar a las 3 mujeres juntas y a los 3
hombres juntos, y ademas esas tres mujeres se pueden sentar de 3! formas distintas (note que el orden si
importa!), de igual manera ocurre con los hombres. Para contar todas las opciones posibles aplicamos la
regla del producto, de esa manera nos da 2! 3! 3! = 2 6 6 = 72 posibles formas distintas de sentar a las
tres parejas tal como ellas quieren.

Ejemplo 1.6
Cuantas permutaciones de las letras de la palabra ALGORITMO tienen la A y la L juntas (en cualquier
orden)? Cuantas con la A y la L separadas por al menos una letra?.
Como necesitamos que la A y la L esten juntas entonces contamos a (AL) como una letra, entonces
(AL)GORITMO solo tiene 8 letras, de esa manera el n
umero de permutaciones es 8!. Ahora, toca contar
las permutaciones de la letra (AL), este solo tiene 2! posibilidades, entonces el total de permutaciones de
la primera pregunta es 8! 2!.Para la segunda pregunta debemos contar el n
umero total de permutaciones
de todas la letras de la palabra, el cual es 9! y le eliminamos las permutaciones que dejan a las letras A y
L pegadas (la respuesta de la primera pregunta), de esa manera nos da 9! (8! 2!).

Ejemplo 1.7
En una facultad de 5 hombres y 7 mujeres, un comite de juegos y espectaculos debe ser creado, pero en
este comite debe haber al menos una mujer, cuantas posiblidades hay de hacerlo?
Como primera solucion uno podra pensar en todas las posibilidades de escoger una mujer de las 7
disponibles, esto es la 1-combinacion de un conjunto de 7 elementos: (71), y ahora escoger de los que quedan
). De esa manera por la regla del
los otros tres integrantes, es decir, la 3-combinacion de 11 elementos: (11
3
).
producto el n
umero total de posibilidades (dado que deben pasar ambos casos contemplados) es (71) (11
3
El razonamiento anterior tiene un error, dado que se estan contando posiblidades dos veces, por ejemplo
suponga que se escogio a Mara en la primera combinacion y que en la segunda combinacion se escogieron
a Pedro, Felipe y a Toya, pero tambien es posible que en la primera combinacion hubiera salido escogida
Toya y en la segunda combinacion salieron escogidos Mara, Pedro y Felipe y ambos son el mismo comite,
as que debemos contar con algo mas de cuidado, de tal manera que se eliminen las posiblidades de que nos
de el mismo comite , es decir, que en la mujer que salio en la primera combinacion no se pueda escoger de
la segunda en alguna otra posibilidad contada. Entonces se debe contar de la siguiente manera: se escoge
una mujer de las 7 y los tres restantes son hombres, o escoger dos mujeres de las 7 y los otros dos restantes
son hombres, o escoger tres mujeres de las 7 y el restante un hombre, o escoger cuatro mujeres de las 7 y
ning
un hombre (Recuerde que debe haber al menos una mujer!). La form
ula que cuenta cada una de las
posibilidades mencionadas es la siguiente (aplicando las form
ulas de r-combinaciones, la regla del producto
y la regla de la suma):
(71)(53) + (72)(52) + (73)(51) + (74)(50)
8

Cartilla Elementos de Teora en la Computaci


on

Teorema del binomio y sus aplicaciones

Esta respuesta da muchas menos posibilidades que la primera planteada (puede hacer los calculos para
comprobarlo).

Ejemplo 1.8
Una moneda se lanza 5 veces, cayendo en cara (C) o sello (S) cada vez. Un posible resultado de los cinco
lanzamientos puede ser CCSSS, cuantos posibles resultados puede salir del experimento? cuantos tiene
una C? cuantos a lo mas una H?
Por la regla del producto, hay 25 posibles resultados, un resultado con una C, es la permutacion de una
bolsa (Ver pg. 5) de una C y cuatro Ss, es decir, nos toca contar todas las permutaciones posibles pero
eliminar las que tenga repetidas. Por ejemplo la permutacion CSS1 S2 S es la misma que CSS2 S1 S porque
5!
= 5. Siguiendo
ambas son el resultado CSSSS, de esa manera el total de resultados con una cara es 1!4!
la misma estructura de pesamiento se tiene que para la segunda pregunta el total de resultados donde no
5!
= 1 y por la regla de la suma y usando el resultado de la primera
sale ninguna cara (todas son sello) es 0!5!
pregunta que se tienen en total 1 + 5 = 6 resultados con a lo mas una cara.

Secci
on 1.3: Teorema del binomio y sus aplicaciones
El teorema el binomio es el resultado que permite encontrar el polinomio que representa la ecuacion
binomial (llamado as por ser un polinomio de dos variables, x y y) (x + y)n con n N. La manera de
encontrar dicho polinomio esta muy relacionado con los coeficientes binomiales (razon por la cual llevan
ese nombre) mencionados con anterioridad (ver Definicion 1.3).
Note que:
(x + y)n = (x + y)(x + y)(x + y) . . . (x + y)

n factores
De esa manera (con algunas operaciones algebraicas) se puede expandir como:
(x + y)n = c0 x0 y n + c1 x1 y n1 + . . . + cn xn y 0
El problema de fondo es encontrar el valor de los coeficientes ci , y para esto se utiliza analisis combinatorio.
Adicionalmente la expansion anterior y sus coeficientes tienen relacion con el triangulo de Pascal.
Primero vamos a explicar con argumentos combinatorios que valores toma cada uno de los coeficientes de expansion del polinomio binomial. El coeficiente ci es el n
umero de maneras en el que se pueden
escoger i equises de los n factores disponibles (escogiendo i equises automaticamente se escogen n i ys).
El n
umero de maneras de escoger i elementos de n es el n
umero de i-combinaciones, es decir, ci = (ni)
(para esto trate de desarrollar el binomio (x + y)3 y trate encontrar el valor de los coeficientes, utilizando
la tecnica explicada, del polinomio resultante al manipularlo algebraicamente). De esa manera se tiene que:
n
n
(x + y)n = ( )xk y nk
k=0 k

Cartilla Elementos de Teora en la Computaci


on

Teorema del binomio y sus aplicaciones

n
) (por que?) entonces tambien se tiene que:
Pero como (nk) = (nk
n

(x + y)n = (
k=0

n
)xk y nk
nk

Antes de explicar en que consiste el triangulo de Pascal y algunas de sus propiedades vamos a dar
algunos ejemplos del teorema del binomio:

Ejemplo 1.9
Cual es el coeficiente de x5 y 2 del binomio (x + y)7 .
Como n = 7 y el exponene de x es 5, entonces el coeficiente es (nk) = (75) = (72) = 21

El ejemplo a continuacion muestra el uso del teorema del binomio para demostrar propiedades de las
combinatorias:

Ejemplo 1.10

Demostrar que nk=0 (nk) = 2n .


n
)1k 1nk , pero
Note que 2n = (1 + 1)n que por el teorema del binomio se tiene que (1 + 1)n = nk=0 (nk
n
n
como 1m = 1 entonces se tiene que 2n = k=0 (k ).

1.3.1: Triangulo de pascal y el teorema del binomio


Una manera interesante de listar los coeficientes binomiales (nr) es usando el triangulo de pascal,
llamado as por su descubridor Blaise Pascal. Dado que La fila n del triangulo contiene los n + 1 valores
(n0 ), (n1 ), . . . , (nn). Para construir el triangulo se sigue el siguiente algoritmo:
1. Se inicia colocando un uno en la parte superior del triangulo
2. Cada fila nueva inicia con uno y los n
umeros intermedios son el resultado se sumar los dos n
umeros
consecutivos de la fila inmediatamente anterior.
El siguiente diagrama ilustra el triangulo de pascal de cuatro filas:
n = 0:

n = 1:

n = 2:

n = 3:
n = 4:

1
1

1
2

3
4

1
3

1
4

De esa manera si se quiere saber los coeficientes del binomio (x + y)3 tome la fila 3 del triangulo:
c0 = 1, c1 = 3, c2 = 3 y c3 = 1, por lo que la expansion del binomio es : x3 + 3x2 y + 3xy 2 + y 3 .

10

Cartilla Elementos de Teora en la Computaci


on

Conteo y conjuntos

El triangulo Pascal tiene varias propiedades sorprendentes (varios se pueden encontrar consultando la
WEB). Por ejemplo, en el hexagono de los valores 4,5,15,20,10,5 que encierra el tercer elemento (10) de
la fila cinco cuando se multiplican los n
umeros alternados de dicho hexagono se obtiene que en todas las
posibilidades da el mismo resultado. Esto se cumple para todos los hexagonos que se encuentran dentro
del triangulo.

Secci
on 1.4: Conteo y conjuntos
Existe una relacion muy cercana de la teora de conjuntos y el analisis combinatorio. Por ejemplo,
se podra hacer un conteo donde se le restan a todas las posibilidades (sin las restricciones asociadas al
problema planteado) los casos que no cumplen con todas las restricciones impuestas en el problema involucrado, como si estuvieramos quitandole al universo el complemento del conjunto de los casos que se
necesitan contar para obtener el conjunto deseado y as contar solo los elementos que lo conforman. De
esa manera uno puede utilizar propiedades de los conjuntos para poder contar, pero esto depende de la
intuicion y solucion que se le de al problema.
Uno por ejemplo puede escribir la regla de la suma en terminos de conjuntos, para esto considere los
conjuntos A y B que estan contenidos en un universo U , note que si queremos calcular cuando elementos
tiene A B, se debe tener cuidado porque si A y B tienen elementos en com
un se podran contar elementos
dos veces.
Antes de proponer la form
ula para contar todos los elementos de una union de dos conjuntos definamos que es la cardinalidad de un conjunto. La cardinalidad de un conjunto es el total de elementos que
tiene ese conjunto y se denota por , es decir, si tenemos un conjunto A su cardinalidad sera A y si
A = {1, 2, 3, 4, 5} entonces A = 5, porque tiene 5 elementos.
Continuando con la relacion entre la regla de la suma y conjuntos, calculemos que nos dara A B
sera que se tiene que A B = A + B? o sera que A B = A + B A B?. Note que en el primer caso
que se propone se suman dos veces elementos si A B (por que?), en cambio en la segunda se eliminan
esas repeticiones, de esa manera la form
ula correcta es la segunda. Recuerde que cuando se defina la regla
de la suma se peda que los conjuntos fueran disyuntos de a parejas y de esa forma se sumaba el tama
no
de ambos conjuntos, bueno acabamos de definir una regla de la suma mas general.

Teorema 1.4
Dados dos conjuntos A y B, entonces siempre se tiene que:

A B = A + B A B

11

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

Secci
on 1.5: Ejercicios
1. Demuestre que nk=0 (1)n (nk) = 0.
2. Demostrar algebraicamente que (n r + 1)! =

n!
(nr)!

3. Si se tiene una bolsa que contiene n elementos con k elementos distintos, y para cada uno de esos
elementos distintos hay ni repeticiones, es decir, n = n1 + n2 + . . . + nk = n, fomule la ecuacion que
permite contar el total de permutaciones que se pueden realizar (de una justificacion combinatoria)
4. Calcular el n
umero de permutaciones de las palabras:
a) Permutacion.
b) Dedo.
c) Releer.
d) Combinacion
e) Comer.
5. Demuestre con argumentos combinatorios que si n = 2 k entonces

n!
2k

es un entero.

6. Si se sientan seis personas, denominadas A,B,C,. . .,F, alrededor de una mesa redonda, cuantas disposiciones circulares distintas se pueden realizar si estas se consideran iguales cuando una se puede
obtener de otra rotacion?.
7. Los motos honda se producen en cuatro modelos, 12 colores, 3 potencias de motor y 2 tipos de
transmision.
a) Cuantas motos distintas pueden fabricarse?.
b) Si uno de los colores es rojo, cuantas motos distintas de color rojo se pueden fabricar?.
c) Si una potencia de motor es V-8, cuantas motos de color rojo tienen motor V-8?.
8. De cuantas maneras pueden ordenarse los smbolos a,b,c,d,e,e,e,e,e de forma que ninguna e sea
adyacente a otra.
9. Determinese el n
umero de enteros de seis dgitos (que no comiencen con cero) de forma que:
a) No se repita ning
un dgito.
b) Se puedan repetir los dgitos
c) El n
umero sea palndrome.
d) Solo tenga exactamente un dgito igual a tres.
e) No se repita ning
un dgito pero que el n
umero sea par. Cuantos de esos son divisible por cuatro?.
10. En McDonalds una hamburguesa puede tener todos los ingredientes siguientes o ninguno de ellos:
salsa de tomate, mostaza, mayonesa, lechuga, tomate, cebolla, pepinillos, queso o setas. Cuantas
hamburguesas distintas pueden venderse en McDonalds?.
12

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

11. En el sistema de comunicacion militar se usa un alfabeto secreto de 40 smbolos para transmitir
mensajes.
a) Cuantos mensajes diferentes de 25 smbolos puede generar el transmisor si se pueden repetir los
smbolos?.
b) Cuantos mensajes diferentes de 25 smbolos se pueden generar si 10 de los 40 smbolos solo
pueden aparecer como el primero o el u
ltimo smbolo del mensaje y los 30 restantes pueden
aparecer en cualquier lugar y se permiten repiticiones de todos los smbolos?.
12. Hasbro en la produccion de un juguete tiene definido cuatro fases, para la primera fase hay seis lneas
de montaje, mientras que para la segunda fase hay cuatro, cinco para la tercer y cinco para la cuarta.
De cuantas maneras distintas Hasbro puede producir un juguete?.
13. De cuantas maneras se pueden ordenar las letras de la palabra trabajan?
14. De cuantas maneras se pueden ordenar las disposiciones del punto anterior si se exige que las tres A
queden juntas?.
15. Una sucesion de letras de la forma abcab, donde la expresion no se altera al invertir el orden, es un
ejemplo de palndromo (de cinco letras).
a) Si una letra puede aparecer mas de dos veces. Cuantos palindromos de cinco letras hay? y de
seis letras?.
b) Repitase el literal anterior con la condicion que ninguna letra aparezca mas de dos veces.
16. Para el siguiente algoritmo responda las pregutas:
Algoritmo 1.1 Ciclos anidados
for i = 1 to 12 do
for j = 1 to 10 do
imprimir (i j)
end for
end for

a) Cuantas veces se ejecuta la funcion imprimir?.


b) Que principio de conteo se usa aqu?.
17.

a) De cuantas formas puede un estudiante responder un estudiante un cuestionario de diez pregunta


tipo falso o verdadero basandose solo en la conjetura?.
b) De cuantas maneras puede responder el estudiante el cuestionario del literal anterior si se puede
dejar una pregunta sin responder para evitar una penalizacion por dar una respuesta equivocada?.
c) Respondase a los literales anteriores para un cuestionario de preguntas de opcion m
ultiple, en
el que cada pregunta tiene cuatro opciones.

13

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

18. Cuantos caminos distintos hay de (0,0) a (7,7) en el plano xy si un camino avanza un paso cada vez,
bien un espacio hacia la derecha o hacia arriba?, cuantos hay de (2,7) a (9,14)?, se puede formular
una proposicion general que incorpore los dos resultados anteriores?.
19. Proporcione una argumento combinatorio para mostrar que si n y k son enteros positivos con n = 3k,
n!
entonces (3!)
k es un entero.
20.

a) Cuantas permutaciones hay de todas las letras de la palabra socialogicas.


b) En cuantas permutaciones son adyacentes la A y la G?.
c) En cuantas permutaciones del literal a), son adyacentes todas la vocales?.
d) Cuantas permutaciones del literal anterior tienen las vocales en orden alfabetico?, cuantas del
litreal a)?.

21.

a) De cuantas maneras se puden sentar ocho personas, denominadas A,B,C,D,. . .,H, alrededor de
una mesa cuadrada eliminando las combinaciones que se puede obtener de la rotacion de otras?.
b) Si dos de las ocho personas , por ejemplo A y B, no se llevan bien. Cuantas maneras distintas
de acomodarlos sin que A y B se sienten juntos?.
c) Dadas las posiciones del literal anterio, de cuantas maneras se evita que A y B se sienten uno
frente al otro.

22. Se va a seleccionar un comite de 12 personas de un grupo de 10 hombres y 10 mujeres. De cuantas


maneras se puede realizar la seleccion: a) no hay restricciones, b) si se exige que deben quedar seis
hombres y seis mujeres?, c) si debe haber un n
umero par de mujeres, d) si debe haber mas mujeres
que hombres, e) si debe haber ocho hombres como minmo?.
23. De cuantas formas puede sacar un jugador cinco naipes de una baraja de poquer y obtener: a) un
repoquer (cinnaipes del mismo palo), b) cuatro ases, c)cuatro cartas de un mismo palo, d) tres ases
y un dos, e) un full (tres de un mismo n
umero y una pareja), f) tres de un mismo n
umero, g) doble
pareja?.
24. Demuestrese que si n es un entero con n 1 entonces:
(

2n
2n
1 2n + 2
)
)+(
)= (
2 n+1
n
n1

25. Un estudiante tiene que responder siete preguntas de un cuestionario de 10. De cuantas formas puede
hacer su seleccon si: a) no hay restricciones, b) debe responder las dos primeras preguntas, c) debe
responder a tres preguntas como mnimo de las cinco primeras?.
26. Al pedir la especialida del da para comer, un cliente puede elegir entre tres primeros platos y puede
seleccionar dos de las seis verduras disponibles:
a) Cuantas comidas diferentes puede seleccionar: 1) si debe elegir dos verduras distintas, 2) si se
le permite tomar dos porciones de la misma verdura.
b) Respondase los literales 1) y 2) de a) si el cliente tambien puede elegir como aperitivo zumo de
tomate, zumo de naranja o sopa.
14

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

27. Dado un entero positivo n, calculese la suma:


n
n
n
n
n
( ) + 2( ) + 22 ( ) + . . . + 2k ( ) + 2n ( ).
0
1
2
k
n
28. Dado un n
umero real x y un entero positivo n, muestre que:
a) 1 = (1 + x)n (n1 )x1 (1 + x)n1 + (n2 )x2 (1 + x)n2 . . . + (1)n (nn)xn .
b) 1 = (2 + x)n (n1 )(x + 1)(2 + x)n1 + (n2 )(x + 1)2 (2 + x)n2 . . . + (1)n (nn)(x + 1)n .
c) 2n = (2 + x)n (n1 )x1 (2 + x)n1 + (n2 )x2 (2 + x)n2 . . . + (1)n (nn)xn .
29. Determinese los coeficientes de x9 y 3 en: a) (x + y)12 , b) (x + 2y)12 , c)(2x + 3y)1 2.
30. Determinese los coeficientes de:
a) xyz 2 en (x + y + z)4 .
b) w3 x2 yz 2 en (2w x + 3y 2z)8 .
31. Una pastelera ofrece 20 tipos distintos de pasteles, si se supone que hay al menos una docena de
cada tipo , de cuantas maneras diferentes se puede seleccionar una docena de pasteles?.
32. La presidenta Elena tiene cuatro secreatarias: 1) Beatriz,2) Carmen, 3) Maria Luisa y 4) Marta, y
desea repartir entre ellas 100 dolares en billetes de diez como regalo de navidad, de cuantas maneras
se puede repartir ese dinero entre las cuatro secretarias :
a) Suponiendo la posibilidad que una o mas secretarias no reciban nada.
b) Si cada secretaria obtiene como mnimo diez dolares.
c) Si cada secretaria debe recibir al menos diez dolares y Marta como secretaria principal 50 dolares
como mnimo.
33. De cuantas formas se pueden distribuir siete manzanas y seis naranjas entre cuatro ni
nos, de modo
que cada ni
no reciba al menos na manzana?.
34. Determinese todas las soluciones enteras de la ecuacion:
x1 + x2 + x3 + x4 = 7
Con xi 1 para 1 i 4.
35. Por un canal de comunicacion, se va a transmitir un mensaje de 12 smbolos diferentes. Ademas de
los 12 smbolos, el transmisor tambien enviara un toal de 45 espacios en blanco entre los smbolos, con
tres espacios como mnimo entre cada par de smbolos consectivos. De cuantas maneras el transmisor
puede enviar el mensaje?.
36. De cuantas formas se pueden distribuir diez monedas (identicas) entre cinco ni
nos: a) no hay restricciones, b) si cada ni
no recibe una moneda como minmo, c) si el ni
no mayor obtiene al menos dos
monedas.
15

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

37. De cuantas formas se pueden distribuir 15 caramelos (identicos) entre cinco ni


nos de modo que el
menor obtenga solo uno o dos?.
38.

a) De cuantas maneras pueden seleccionarse cinco monedas de una coleccion de 10 conformada por
una moneda de uno, una de cinco, una de diez, una de veinticinco, una de cincuenta, y cinco
(identicas) de cien?.
b) De cuantas formas se pueden seleccionar n objetos de una coleccion de tama
no 2n formada por
n objetos distintos y n identicos?.

39. Para el siguiente algoritmo responda las pregutas:


Algoritmo 1.2 Ciclos anidados
for i = 1 to 20 do
for j = 1 to i do
for k = 1 to j do
imprimir (i j + k)
end for
end for
end for

a) Cuantas veces se ejecuta la funcion imprimir?.


b) Que principio de conteo se usa aqu?.

16

Captulo 2: Inducci
on

En este captulo se introduce los conceptos basicos de induccion y como este se relaciona con la correcion de programas, calculo de predicados y los distintos metodos de demostracion conocidos hasta el
momento. Al final de este captulo el estudiante estara en la capacidad de identificar los problemas inductivos cuya demostracion involucra los conceptos explicados a lo largo del captulo.
La mayora del contenido de este captulo se baso en [4], [2] y [1].

Secci
on 2.1: Introducci
on
Generalmente cuando hay una propiedad valida sobre los n
umeros naturales, esta debe ser verdadera
sin importar que n
umero natural este involucrado. Es decir, si se toma cualquier n
umero natural este
cumplira dicha propiedad. Para demostrar propiedades sobre los n
umeros naturales existe una tecnica
denominada principio de induccion, que tal como su nombre lo indica permite probar una propiedad de
manera inductiva sobre los naturales.
El principio de induccion se puede comparar con un conjunto de fichas ennumeradas de domino puestas
una detras de otra de manera vertical, dado que este se basa en comprobar una propiedad de manera
incremental. Cuando un ficha de domino se cae hacia atras esta caera sobre la ficha inmediatamente
siguiente haciendo que esta tambien caiga, de esa manera iran cayendo todas las fichas hasta que se caiga
la u
ltima. En terminos matematicos si la k-esima ficha cae entonces caera la ficha k+1-esima, a partir
de esto se puede intuir que pasa si la ficha n
umero 1 cae. De esta misma manera funciona el principio
de induccion, dado que para probar que una propiedad o predicado P (n) vale en N (todos los n
umeros
positivos), P (1) debe valer y si vale P (n) entonces debe valer P (n + 1), dado que desde n = 1 se puede
llegar a cualquiera de los demas naturales siguientes.

Secci
on 2.2: Inducci
on sobre los naturales
Consideremos el siguiente predicado:
P (n) = ( i1 i n 2i 1) = n2

(2.1)

Por ejemplo, para n igual a 2 y 3 respectivamente, 2.1 establece que 1 + 3 = 22 y 1 + 3 + 5 = 32 , lo cual


indica que P (2) y P (3) son validos. La pregunta es si P (n) es cierto siempre, es decir si la cuantificacion
( n N 0 n P (n)) es cierta.
Una forma de probar que P (n) es cierta para todo n
umero natural es demostrar que P (0) es cierta
y si P (k) es cierta para todos los naturales menores o iguales a un natural n dado, entonces tambien es
cierta P (n + 1).
Esta u
ltima afirmacion puede escribirse como:
( n Nn > 0 P (0) P (1) . . . P (n 1) P (n))
17

(2.2)

Cartilla Elementos de Teora en la Computaci


on

Inducci
on sobre los naturales

Ahora, si ambas cosas son ciertas, podemos ver como construir una demostracion de P (n) para un
n
umero N dado:
La demostracion de P (0) es cierta por rango vaco.
De la veracidad de P (0) y P (0) P (1) (que no es mas que (2.2) en la instancia n = 1), y usando
Modus Ponens conclu`Imos que P (1) es verdadera.
De la veracidad de P (0) P (1) y P (0) P (1) P (2) (que no es mas que (2.2) en la instancia
n = 2), y usando Modus Ponens conclu`Imos que P (2) es verdadera.
...
De la veracidad de P (0) . . . P (N 1) y P (0) . . . P (N 1) P.N (que no es mas que (2.2) en
la instancia n = N ), y usando Modus Ponens conclu`Imos que P (N ) es verdadera.
Por supuesto, no necesitamos hacer todo esto para demostrar que P (N ) es verdadera, es suficiente
saber que en principio, podemos hacer esto para probarlo.
El principio de induccion matematica, permite inferir a partir de las pruebas de P (0) y que P (n) es
verdadera para cualquier natural n. A continuacion formalizamos este concepto:

Axioma 2.1
Induccion Matematica sobre N:
(n N ( i 0 i < n P (i)) P.n) ( n N P.n).

Claramente de el consecuente del axioma anterior implica el antecedente, dado que si suponemos que P (n)
vale para cualquier n entonces se tiene que en particular todos los naturales menores que el cumplen P (n),
cabe resaltar que P (n) es un predicado sobre lo naturales, es decir se puede decir si es falso o verdadero
de acuerdo al n dado, el objetivo final de la induccion es demostrar que para cualquier n que se ingrese
ese predicado siempre sea cierto.
Con las observaciones anteriores podemos entonces enunciar el siguiente axioma:

Axioma 2.2
Induccion Matematica sobre N:
(n N ( i 0 i < n P (i)) P.n) ( n N P.n).

El uso de un axioma y el otro nos es indiferente, dado que ambas definiciones son equivalentes, en general
se utiliza mas el primer axioma dado que las pruebas por induccion requieren distintas argumentaciones
del contexto de los naturales y no es tan sintactica, en cambio la segunda es mejor cuando se hacen demostraciones sintacticas.

18

Cartilla Elementos de Teora en la Computaci


on

Inducci
on sobre los naturales

Con algunas manipulaciones sintacticas del primer axioma (particion de rango y utilizando algunos
resultados del calculo de predicados) se puede reescribir el axioma y obtener el principio de induccion mas
usado en las matematicas para probar propiedades sobre los naturales:

Teorema 2.1
Induccion Matematica sobre N:
P (0) ( n N ( i 0 i n P (i)) P (n + 1)) ( n N P (n)).

El teorema anterior nos dice que para mostrar una propiedad P (n) en los naturales basta con probar
que vale para P (0) y se debe mostrar que P (n) P (n + 1) vale. P (0) se conoce como caso base y
P (n) P (n + 1) como paso inductivo.
Para ilustrar el principio de induccion en la practica, considere de nuevo el ejemplo con el que iniciamos
la seccion. Basandonos en el teorema 2.1 primero demostraremos P (0) ( caso base).
Caso base
( i 1 i 0 2 i 1)
Neutro de + (debido a que el rango es vac`Io)
=
0
=
aritmetica
2
0
Demostraremos ahora el paso inductivo, suponiendo que P (0), P (1), .. y P (n) son ciertas demostraremos que P (n + 1) es cierta.
Paso inductivo
( i 1 i n + 1 2 i 1)
Separacion de termino
( i 1 i n 2 i 1) + 2 (n + 1) 1
=
Hipotesis inductiva P.n
n2 + 2 (n + 1) 1
=
Aritmetica
(n + 1)2

La prueba anterior, emplea una tecnica que se utiliza a menudo: el lado izquierdo de P (n + 1) es manipulado de forma tal de exponer P (n), es decir, hacer posible el uso de la hipotesis de induccion P (n).
Aqu, con la separacion de termino, se puso en evidencia a P (n) y se remplazo por la hipotesis inductiva
(P (n)) y con un poco de aritmetica basica se logro obtener la ecuacion que hace a P (n + 1) cierta.
En muchos de los casos se diferencian dos tipos de induccion, una de ellas se le denomina inducci
on
debil y a la otra se le conoce como induccion fuerte, la gran diferencia entre estos tipos es la manera en como
se usa la hipotesis inductiva. En la induccion debil solo se utiliza la hipotesis inductiva P (n), mientras que
en la fuerte se utiliza la hipotesis inductiva en P (1), P (2), . . . P (n), el uso de alguno de los tipos depende
19

Cartilla Elementos de Teora en la Computaci


on

Inducci
on sobre los naturales

del problema planteado pues si la propiedad P (n + 1) se puede escribir en terminos de P (n) o de alg
un
P (i) con 1 i n.
En los siguientes ejemplos mostramos algunos resultados de los naturales demostrados con el princpio
de induccion:

Ejemplo 2.1
Se quiere probar que (n N ( i 0 i n i) =
n(n+1)
como nuestro predicado:
2
Caso base: P (0)

n(n+1)
).
2

Primero definamos P (n) ( i 0 i n i) =

( i 0 i 0 i)
=
0 i 0 i = 0
( i i = 0 i)
=
Regla de un punto
0
0(0 + 1)
=
0 =

2
0(0 + 1)
2
Caso inductivo: P (n) P (n+1), de esa manera supongamos que P (n) vale y demostremos que P (n+1)
.
vale, es decir que ( i 0 i n + 1 i) = (n+1)(n+2)
2

=
=

( i 0 i n + 1 i)
Asociatividad de la suma
( i 0 i n i) + n + 1
Hipotesis
n(n + 1)
+ (n + 1)
2
Aritmetica
n(n + 1) + 2(n + 1)
2
algebra
(n + 2)(n + 1)
2

Entonces por el principio de induccion se tiene que (n N P (n))

Ejemplo 2.2
Se quiere probar que (n N ( i 0 i n i2 ) =
n i2 ) = n(n+1)(2n+1)
) como nuestro predicado:
6
20

n(n+1)(2n+1)
).
6

Primero definamos P (n) ( i 0 i

Cartilla Elementos de Teora en la Computaci


on

Inducci
on sobre los naturales

Caso base: P (0)


( i 0 i 0 i 2 )
=
0 i 0 i = 0
( i i = 0 i2 )
=
Regla de un punto
0
=
0 = o2
02
Caso inductivo: P (n) P (n+1), de esa manera supongamos que P (n) vale y demostremos que P (n+1)
vale, es decir que ( i 0 i n + 1 i2 ) = (n+1)(n+2)(2n+3)
.
6

=
=

( i 0 i n + 1 i2 )
Asociatividad de la suma
( i 0 i n i2 ) + (n + 1)2
Hipotesis
n(n + 1)(2n + 1)
+ (n + 1)2
6
Aritmetica
n(2n + 1)
(n + 1)[
+ (n + 1)]
6
algebra
2n2 + 7n + 6
(n + 1)[
]
6
algebra
(n + 1)(n + 2)(2n + 3)
6

2.2.1: Inducci
on con inicio en enteros distintos de cero

No siempre las propiedades sobre los n


umeros se cumplen para todos los n
umeros, puede suceder que
la propiedad es cierta desde un n
umero particular, entonces el principio de induccion se puede aplicar para
cualquier subcojunto n0 , n0 + 1, n0 + 2, . . ., por lo que el caso base en vez de ser P (0) siempre es P (n0 ),
para resumir enunciamos el siguiente axioma:

Teorema 2.2
Induccion Matematica sobre {n0 , n0 + 1, . . .}:
P (n0 ) ( n N n0 n ( i n0 i n P (i)) P (n + 1)) ( n N n0 n P (n)).

21

Cartilla Elementos de Teora en la Computaci


on

Inducci
on sobre los naturales

El ejemplo a continuacion ilustra como utilizar el principio de induccion sobre un conjunto {n0 , n0 +
1, . . .}:

Ejemplo 2.3
Se quiere probar ( n 3 n P (n)) donde:
P (n) 2 n + 1 < 2n .
Caso base: Hay que mostrar que P (3) vale:
P (3) = 2 3 + 1 < 23 , entonces se tiene que 7 < 8, lo cual es cierto.
Paso inductivo
Para un valor arbitrario n 3, probaremos P (n + 1) suponiendo que P (n) es cierto, para esto manipulamos P (n + 1) de tal manera que podamos identificar P (n) y as poder usar la hipotesis inductiva.

=
>
=
>

2n+1
Aritmetica
2 2n
Hipotesis de induccion P (n)
2 (2 n + 1)
Aritmetica
2 (n + 1) + 1 + 2 n 1
Aritmetica 2 n 1 > 0, ya que 3 n
2 (n + 1) + 1

Aqu, para probar el paso inductivo, transformamos el lado derecho de la definicion de P (n + 1) en el


lado izquierdo. Aunque se podra haber transformado el lado izquierdo en el derecho o simplemente partir
de P (n + 1) y llegar a true (note que las heuristicas de demostracion explicadas funcionan igual que como
se vio en el curso de herramientas de logica computacional).

Ejemplo 2.4
Se quiere probar que (n N (h, k 0 h 0 k n 2 n 3 2h + 5k = n)). Primero definamos
P (n) (h, k 0 h 0 k n 2 2h + 5k = n):
Caso base: P (2)
(h, k 0 h 0 k n 2 n 3 2h + 5k = 2)

2 = 2(1) + 5(0), tome como testigos a h = 1 y k = 0


2 = 2(1) + 5(0)
Caso inductivo: En este caso vamos a demostrarlo por induccion fuerte, es decir que vamos a mostrar
que P (0) P (1) . . . P (n) P (n + 1) dado que en la demostracion vamos a necesitar que el predicado
valga para todos los anteriores y no solo para el inmediatamente anterior. De esa manera supongamos que
P (0) P (1) . . . P (n) vale y demostremos que P (n + 1) vale, es decir que (h, k 0 h 0 k n 2
22

Cartilla Elementos de Teora en la Computaci


on

Principio del buen orden

2h + 5k = n + 1).
(h, k 0 h 0 k n 2 n 3 2h + 5k = n + 1)
=
n + 1 = (n 4) + 5
(h, k 0 h 0 k n 2 n 3 2h + 5k = (n 4) + 5)

P (n 4) por hipotesis, existen h y k tal que n 4 = 2h + 5k


2h + 5k + 5 = (n 4) + 5
=
Aritmetica
2h + 5(k + 1) = n + 1

Secci
on 2.3: Principio del buen orden
En los n
umeros naturales hay otra propiedad que esta relacionada con el principio de induccion y es
el principio del buen orden. Cabe resaltar que la induccion esta definida sobre los naturales y la relacion
de orden <, la razon por la cual < se dice que es una relacion de orden es porque permite relacionar
dos n
umeros naturales bajo el concepto de Mayor que, como es el caso de 3 > 2 (el concepto de relacion lo profundizaremos en el captulo cinco de la cartilla). Lo importante de resaltar en esta seccion es
que los naturales son un conjunto que tiene definido un orden lineal parcial 1 , al decir lineal nos referimos a que si tenemos a, b N solo se puede tener o bien que a < b o bien que a > b, pero no ambos al tiempo.
El principio del buen orden lo que nos permite es que con un conjunto y un orden lineal parcial
bien definido siempre podemos obtener subconjuntos (pueden ser igual al conjunto original) que tienen
un mnimo, es decir es un pozo con fondo. Note por ejemplo que los n
umeros enteros no cumplen
el principio del buen orden, porque si tomamos a todos los enteros y escogemos uno de ellos, siempre
podemos encontrar otro entero menor que el. Supongamos que ese n
umero es 4, claramente hay infinitos
n
umeros que son menores que 4, por ejemplo 120, 6, 0, 1, 2, 3, en este caso los enteros es un pozo sin
fondo. La siguiente definicion resume lo que acabamos de decir:

n 2.1
Definicio
Sea (A, <) un conjunto con un orden lineal parcial, se dice que (A, <) es bien ordenado si todo subconjunto
de A posee un elemento mnimo m A o formalmente:
(S S A S (m m A (a a A m a))

Esta propiedad del buen orden se utiliza en muchas ocasiones para probar propiedades de los naturales.
El siguiente ejemplo ilustra una manera de usar el princpio del buen orden:
1

Un orden parcial se define sobre una relaci


on definida en un conjunto B que es reflexiva, antisimetrica y transitiva. Ver
la secci
on ??(??)

23

Cartilla Elementos de Teora en la Computaci


on

Principio del buen orden

Ejemplo 2.5
Demostremos que que para todo n N, 0 + 1 + . . . + n = n(n + 1)/2.
Primero para n N, definamos P (n) la propiedad 0+1+. . .+n = n(n+1)/2. P (n) es una afirmacion que en
principio puede ser verdadera o falsa, dependiendo del valor de n. Por ejemplo, como 0+1+2+3 = 6 = 3(4)/2,
entonces P (3) es una afirmacion verdadera. Ahora definamos un conjunto que contenga todos los naturales
que hacen a P (n) verdadera:
A = {n N P (n)}
Como 0 = 0(1)/2, concluimos que P (0) es verdadera, esto es, 0 A.
Lo que realemte queremos ver es que se tiene (n n N 0 + + n = n(n + 1)/2), o en otras palabras,
que A = N. Para esto razonemos por contradiccion: si A N, entonces Ac = N A es un subconjunto no
vaco de N, luego debe tener un mnimo elemento m Ac (por que los naturales son bien ordenados). Pero
como ya vimos, 0 A, as que m 0 y entonces m = n + 1 para alg
un natural n. Ya que n < m y m es
mnimo, concluimos que n A, es decir, 0 + + n = n(n + 1)/2. Sumando n + 1 a ambos lados de la ecuacion
obtenemos:
0 + 1 + + n + (n + 1) =

n(n+1)
2

+ (n + 1)

n2 +n+2n+2
2

(n+1)(n+2)
2

(n+1)((n+1)+1)
2

m(m+1)
2

Entonces 0 + + (n + 1) = 0 + + m = m(m + 1)/2, lo cual significa que p(m) es verdadera, esto es,
m A, contradiciendo que m Ac .
De esa manera concluimos por contradiccion que A = N, como queramos.

2.3.1: Inducci
on y el principio del buen orden
Las relaciones entre el principio del buen orden y el principio de induccion no nos son indiferentes,
pues ambos principios tiene como fin demostrar propiedades sobre los n
umeros naturales. En realidad
el siguiente teorema nos permite decir que ambos principios son equivalentes, as que al demostrar una
propiedad sobre los naturales se puden usar indistintamente cada uno de estos principios.

Teorema 2.3
Las siguientes proposiciones son equivalentes:
(a) (N, ) es un buen orden.
(b) Principio de induccion.
24

Cartilla Elementos de Teora en la Computaci


on

Definiciones inductivas

La demostracion del teorema se ha planteado como ejercicio en la seccion de ejercicios del captulo.

Secci
on 2.4: Definiciones inductivas
En computacion es muy usual hacer definiciones inductivas para modelar los problemas. Una definicion
inductiva es una definicion en terminos de los elementos anteriores, de tal manera que es constructiva. La
potenciacion (bn = (i 1 i n i)) es el ejemplo mas com
un para una definicion inductiva, pues esta se
puede definir de la siguiente manera:
b0 = 1
bn+1 = b bn para (n 0)
Como se puede notar del ejemplo anterior, es que una definicion inductiva contiene dos partes, tiene
al menos un caso base y tiene al menos un caso inductivo que define una funcion para los demas casos de
manera recursiva, este tipo de definiciones son tambien comunmente conocidas como definiciones recursivas.
Existen varios ejemplos de definiciones recursivas, por ejemplo los n
umeros de Fibonacci y el factorial
de un n
umero. En el caso del factorial se puede definir de la siguiente manera:
0! = 1
n! = n(n 1)! para (n > 0)
De esta definicion podemos deducir que n! = (i 1 i n i) para todo natural, esto se puede demostrar por induccion sobre los naturales. Sea P (n) n! = (i 1 i n i).
Caso base: n=0
0! = (i 1 i 0 i) = (i f also i) = 1
Caso inductivo:
Tenemos que mostrar que (n + 1)! = (i 1 i n + 1 i) suponiendo que n! = (i 1 i n i), para
esto utilizaremos la definicion inductiva del factorial del n
umero, pues nos permite escribir lo que debemos
mostrar en terminos de la hipotesis inductiva.
(n + 1)!
=
Definicion inductiva de (n+1)!
(n + 1)n!
=
Hipotesis inductiva:n! = (i 1 i n i)
(n + 1)(i 1 i n i)
=
Particion del rango del producto
(i 1 i n + 1 i)
En la seccion de ejercicios se plantean distintos tipos de problemas de induccion que permitiran practicar
el caso inductivo de las demostraciones y repasar propiedades de la aritmetica.
25

Cartilla Elementos de Teora en la Computaci


on

Definiciones inductivas

2.4.1: Inducci
on sobre definiciones inductivas
De las definiciones inductivas uno puede probar propiedades en el contexto formal en el que se encuentren. Para demostrar la veracidad de esas propiedades se debe mostrar para el caso base y el paso
inductivo, ambos casos son explicitos en la definicion inductiva. Un ejemplo claro de esto son los arboles
binarios que explicamos a continuacion.
2.4.2: Arboles binarios
Un arbol binario se puede escribir de manera inductiva:

n 2.2
Definicio
Un arbol binario puede ser vaco o contener elementos, por lo que se define de la siguiente manera:
1. es un arbol binario llamado arbol vaco.
2. (d, l, r) es un arbol binario con d Z y l y r arboles binarios, el izquierdo y el derecho respectivamente.

En este caso solo contemplamos arboles binarios finitos, es decir, que son arboles que podemos representar
con un conjunto finito de smbolos. De la definicion anterior se tiene que un arbolo binario t = (d, l, r), tiene
una raz t.d y dos subarboles: el izquierdo t.l y el derecho t.r. Note que los subarboles tienen tambien una
raz d, que realmente representa todos los nodos del arbol binario representado, estos nodos se clasifican
en dos tipos: nodos internos y nodos hojas, la diferencia radical es que en el u
ltimo tipo de nodos estos no
tienen subarboles y en el primero hay al menos uno.
Para ilustrar la definicion inductiva de arboles binarios tenemos el siguiente ejemplo:

Ejemplo 2.6
El arbol (3, , ) es el arbol que solo contiene un nodo (que es el mismo que el nodo raz), mientras que el
arbol (3, (4, , ), (7, , )) es el mismo arbol anterior solo que tiene dos subarboles que tienen por raz a
4 y a 7 respectivamente, pero estos no tienen subarboles, por lo tanto son nodos hojas. Ahora note que el
arbol (3, (4, (5, , ), (6, , )), (7, , )) , le agrega al arbol anterior al subarbol izquierda los subarboles
(5, , ) y (6, , ), conviertiendo al 4 en un nodo interno.

De un arbol binario nos gustara saber que propiedades tiene, por ejemplo nos gustara saber cuantos nodos
tiene un arbol, esto es bastante sencillo de contar pues por cada arbol/subarbol se cuenta el nodo raz y
el total de nodos de cada uno de sus subarboles. Dicho en otras palabras definimos #t como el total de
nodos del arbol t y lo definimos de la siguiente manera:
# = 0
#(d, l, r) = 1 + #l + #t

26

Cartilla Elementos de Teora en la Computaci


on

Inducci
on y el an
alisis de algoritmos

Note que la definicion de # contempla contar el n


umero de nodos del caso base y el caso inductivo de la
definicion inductiva de un arbol binario. De esa misma manera uno podra definir la altura2 o profundidad
de un arbol. A continuacion enunciamos un teorema sobre arboles binarios que nos permitira ilustrar el
principio de induccion en definiciones inductivas:

Teorema 2.4
El maximo n
umero de nodos de un arbol de altura n es 2n 1.

Demostraci
on:
Caso Base: Cuando el arbol es vaco: Como el arbol vaco no tiene nodos y su altura es cero entonces se
tiene que 20 1 = 0.
Caso inductivo: Supongamos que para un arbol de altura n se tiene que el n
umero maximo de nodos
1, a esto le llamamos la hipotesis inductiva. Demostremos que si se tiene un arbol de altura n + 1 se
tiene que el n
umero maximo de nodos es 2n+1 1.
2n

Sea t = (d, l, r) un arbol de altura n + 1, por lo que los subarboles l y r tienen que ser de altura n
(entonces para ellos aplica la hipotesis inductiva), pues si no lo son la altura de t no podra ser n + 1. Ahora
caculemos el n
umero de nodos que tendra t usando la definicion de #:

=
=
=
=

#t
Definicion de #
1 + #l + #r
Hipotesis inductiva en #l y #r
1 + 2n 1 + 2n 1
Aritmetica
2 2n 1
Aritmetica
n+1
2 1

Secci
on 2.5: Inducci
on y el an
alisis de algoritmos
En esta seccion se ilustra con un ejemplo de que sirve conocer algunas ecuaciones probadas con induccion en el analisis de complejidades en algoritmos.
En los algoritmos anteriores se ejemplifica como la complejidad del primero se puede reducir. Note que
en el primer algoritmo se debe ejecutar el ciclo n veces, haciendo n sumas, para poder calcular la suma de
los n
umeros hasta n. Mientras que en el segundo la suma simplemente es una operacion matematica que
2

La altura de un
arbol es el nivel m
as alto de un nodo en el arbol, donde los niveles inician desde la raz hasta los nodos
hojas.

27

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

Algoritmo 2.1 Suma de los n primeros n


umeros naturales de manera algoritmica
sum = 0
for i = 1 to n do
sum = sum + i
end for
Algoritmo 2.2 Suma de los n primeros n
umeros naturales usando resultados de induccion
sum =

n(n+1)
2

no requiere de un ciclo, y solo tiene una suma, un producto y una division.


La mayora de las veces que se quiere programar o desarrollar un algoritmo, conocer algunos resultados
y propiedades matematicas ayuda a encontrarlo mas rapido y hacerlo mas eficiente sin comprometer el
rendimiento del computador.

Secci
on 2.6: Ejercicios
1. Demuestre los Teoremas 2.1 y 2.3.
2. Demuestre las siguientes afirmaciones utilizando el principio de induccion:
a) (h, k 0 h 0 k n 14 3 h + 8 k = n)
b) (i 0 i < n 2 i + 1) = n2
c) (i 0 i < n 2i ) = 2n 1
d) (i 0 i < n 3i ) =

3n 1
2

e) (i 0 i < n i2 ) =

n(n+1)(2n+1)
6

f) (i 0 i < n 2i i) = (n 1)2n+1 + 2
g) (i 0 i n ri ) =

rn+1 1
r1

con r R y r 1.

h) (i 1 i n (i)(i!)) = (n + 1)! 1
3. Demuestre las siguientes afirmaciones utilizando el principio de induccion:
a) 2 n + 1 < 2n para todo n 3.
b) n2 < 2n para todo n 4.
c) 22n 1 es divisible3 por tres para n 0
d) 4n 1 es divisible por tres para n 0.
e) n 2 <
3

28

n2 n
12 .

Para mostrar que un n


umero entero es divisible por tres hay que mostrar que existe un entero k tal que a = 3 k.

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

4. Demuestre que la siguiente definicion inductiva cumple el predicado P (n) n! = (i 1 i n i):


0! = 1
n! = n (n 1)!

5. Utilice la siguiente
definicion inductiva para demostrar que 2 = + 1 y que 2 = + 1. Donde

1+ 5
1 5
= 2 y = 2 .
F0 = 0
F1 = 1
Fn = Fn1 + Fn2 .
Esta definicion inductiva se conoce como la serie de fibonacci.
6. Utilizando la definicion inductiva de los n
umeros de fibonnaci del punto anterior demuestre las
siguientes afirmaciones:
a) Fn < 2n para n 0.
b) Fn =

n n

para n 0.

c) n2 Fn para n 1.
d) n2 Fn n1 para n 1.
e) Fn =

n n

para n 0.Esta ecuacion tiene por conoce como la ecuacion de Binet.

7. Demostrar la siguiente afirmacion sobre conjuntos utilizando el principio de induccion:


n

i=1

i=1

( Ai )c = (Ai )c
8. Pruebe que las siguientes identidades valen:
F2n = Fn Fn+1 + Fn1 Fn para n 1.
2
F2n+1 = Fn+1
+ Fn2 para n 0.
9. Pruebe que (i 0 i n Fi ) = Fn+2 1 para n 0.
10. Pruebe que (i 0 i n Fi2 ) = Fn Fn+1 para n 0.
11. Probar que para n 0, F3n es par, F3n+1 es impar y que F3n+2 es impar.
12. Demuestre utilizando el princpio de induccion que bn = (i 1 i n b) y que bn+m = bn bm .
1
13. Pruebe por induccion que ni=1 i(i+1)
=

n
n+1 .

14. Pruebe por induccion que ni=1 i3 = (ni=1 i)2 .


15. Pruebe por induccion que (cos + i sin )n = cos n + i sin n.
29

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

16. Probar por induccion que la siguiente definicion inductiva cumple el predicado P (n) mn = 2n 1
para n 0.
m0 = 0.
mn+1 = 2 mn + 1.
17. Demuestre por induccion la siguiente afirmacion en teora de conjuntos:
n

A ( Bi ) = (A Bi )
i=1

i=1

18. Para n Z+ sea P (n) = el n


umero (aproximado) de bacterias en un cultivo despues de n horas. Si
P (1) = 1000 y P (2) = 2000 y P (n) = P (n 1) + P (n 2) para todo n > 2, demuestrese que:
n+1
n+1

1 5
1000 1 + 5
P (n) = (
) (
)
2
2

19. Sean A y B dos conjuntos, donde A = m y B = n con n y m son enteros positivos y los elementos
de cada uno de los conjuntos estan en orden ascendente. Se puede probar que los elementos de A y B
pueden juntarse en orden ascendente sin hacer mas de m+n1 comparaciones. Utilcese este resultado
para probar que para n 0 y un conjunto C con C = 2n , el total de comparaciones necesarias para
colocar a los elementos de C en orden ascendente esta acotado por n 2n .
20.

a) Sea n Z+ , n 1, 3. Pruebese que es posible expresar n como una suma de doses y/o cincos.
b) Para cualquier n Z+ , demuestrese que si n 14 entonces n se puede escribir como una suma
de treses y/o ochos.

21. Considere las siguientes cuatro ecuaciones:


1
2+3+4
5+6+7+8+9
10 + 11 + 12 + 13 + 14 + 15 + 16

=
=
=
=

1
1+8
8 + 27
27 + 64

Conjeture una form


ula general basado en estas ecuaciones y preubela.
22. Determine el n
umero positivo n para el cual:
2n

i = i2
i=1

i=1

23. Una sucesion de n


umeros esta definida por:
a1 = 1 a2 = 2 an = an1 + an2 n 3
a) Determine los valores a3 , a4 , a5 , a6 y a7
30

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

b) Demuestre que para todo n 1,an < ( 47 )


n1
24. Sea a0 una constante fija y, para n 1 sea n1
i=0 ( i )ai a(n1)i :

a) Demuestre que a1 = a20 y que a2 = 2a30 .


b) Determine a3 y a4 en terminos de a0 .
c) Conjeture la formula para an en terminos de a0 cuando n 0. Demuestre su conjetura utilizando
el principio de induccion matematica.
umero triangular.
25. Encuentre la formula para ni=1 ti , donde ti es el i-esimo n
26.

a) Considere un tablero de ajedrez de 8 8. Este tiene 64 cuadrados de 1 1 y un cuadrado de


8 8. Cuantos cuadrados de 2 2 tiene? y de 3 3? cuantos cuadrados en total?.
b) Ahora considere un tablero de ajedrez de n n, para alg
un n
umero n Z+ fijo. Para 1 k n,
cuantos cuadrados de k k pueden haber en el tablero?, cuantos cuadrados en total?.

27. Existe otra secuencia de n


umeros muy cercana a los n
umeros de Fibonacci, estos se conocen como
los n
umeros de Lucas que tienen la siguiente definicion recursiva para n 2:
L0 = 2.
L1 = 1.
Ln = Ln1 + Ln2 .
Demuestre que para todo n Z+ se tiene que Ln = Fn1 + Fn+1 .
28. Se define al conjunto X recursivamente como:
1 X.
a X a + 2 X.
Demuestre que X es el conjunto de todos los n
umeros enteros positivos impares.
29. Utilizando la definicion recursiva de los n
umeros de Lucas del punto 27) demuestre que para n 1:
a) L21 + L22 + L23 + . . . + L2n = Ln Ln+1 2.
b) 5Fn+2 = Ln+4 Ln .
30. Proponga una definicion recursiva para los conjutnos:
a) Todos los enteros positivos pares.
b) Todos los enteros pares no negativos.
31.

).
a) Demuestre que para k Z+ se tiene que k 2 = (k2) + (k+1
2
).
b) Utilizando el literal anterior demuestre que nk=1 k 2 = nk=1 (k2) + nk=1 (k+1
2
) y que nk=1 (k+1
) = (n+2
).
c) Demuestre que nk=1 (k2) = (n+1
3
2
3

31

Cartilla Elementos de Teora en la Computaci


on

d) Utilizando los literales anteriores demuestre que


(

n+1
n+2
n(n + 1)(2n + 1)
)+(
)=
3
3
6

.
) + (k+2
).
e) Demuestre que para k Z+ vale que k 3 = (k3) + 4(k+1
3
3
f) Demuestre que
n

k3 = (
.

32

k=1

n+1
n+2
n+3
n2 (n + 1)2
) + 4(
)+(
)=
4
4
4
4

Ejercicios

Captulo 3: Especificaci
on y correci
on de algoritmos

En este captulo se introduce los conceptos basicos de la especificacion y correccion de algoritmos, cuya
base primordial es el calculo de predicados, visto en el curso previo a este, y las propiedades de induccion
de los naturales explicadas en el captulo anterior.
Se introducen dos conceptos primordiales como lo es la precondicion y poscondicion de un programa,
ya que permite definir las condiciones iniciales y finales que se deben satisfacer para que dicho algorimo
inicie y termine de manera correcta (haga lo que tiene que hacer a partir del punto de donde debe iniciar
), de tal manera que oriente su dise
no e implementacion. Adicionalmente, se introduce la manera correcta
de plantear y construir tres elementos basicos en programacion: las asignaciones, los condicionales y los
ciclos. Dado que estos son las bases para la elaboracion de programas correctos que solucionan problemas
de la vida real.
El estudiante al final del captulo podra utilizar su contenido y el conocimiento en metodos de demostracion adquirido en el curso anterior para dise
nar, demostrar y especificar algoritmos correctos de acuerdo
al problema de programacion planteado utilizando los resultados mas relevantes expuestos en este captulo.
El contenido de este captulo se baso en [4].

Secci
on 3.1: Introducci
on
Cuando se esta dise
nando un algoritmo siempre se deben tener en cuenta tres cosas: primero que
condiciones se necesitan para que inicie el algoritmo de manera correcta, segundo que esas condiciones
se mantengan mientras el algoritmo se esta ejecutando, y por u
ltimo el algoritmo tiene un fin para el
cual fue dise
nado, de esa manera cuando el algoritmo haya terminado hay que verificar que realmente las
condiciones de aceptacion de su ejecucion se cumplen.
Un algoritmo es simplemente un conjunto de pasos que al ejecutarse cambia un conjunto de estados
iniciales a un conjunto de estados finales. Ese algoritmo tiene asignaciones, condiciones y ciclos, que deben
ejecutarse uno tras otro de manera correcta. Por esa razon en la especificacion y correccion de algoritmos
no solo nos preocupamos por entender bien el problema (precondicion, poscondicion y todos su posibles
estados cuando esta en ejecucion) sino en dise
narlo de manera correcta, es decir que las asignaciones, condiciones y ciclos que all aparezcan esten correctos en terminos del mismo problema que se este solucionando,
es decir, que haga lo que se pretendio que tena que hacer.
En este captulo vamos a ir introduciendo de manera progresiva como especificar un programa o
algoritmo, como hacer la correcion de asignaciones, condicionales y ciclos. De tal manera que cuando se
tenga un algoritmo completo se pueda verificar su correccion con respecto a su especificacion.

Secci
on 3.2: Especificaci
on de algoritmos
Cuando nos plantean un problema de programacion para el cual hay que proponer una solucion, lo
primero que se tiene que hacer es entender que requiere el problema. Dicho de otra manera, se tiene que
33

Cartilla Elementos de Teora en la Computaci


on

Especificaci
on de algoritmos

especificar el programa que nos estan solicitando solucionar, para poder especificar o entender un problema
se deben tener en cuenta dos elementos:
a) Precondici
on: Las condiciones iniciales que se deben cumplir antes de iniciar su ejecucion.
b) Poscondici
on: Las condiciones finales que debe cumplir el el programa, de tal manera que coincidan
con lo que el programa tiene hacer.
Entre la precondicion y la poscondicion esta el algoritmo o programa que soluciona el problema. Con estos
tres elementos se especifica un programa, esta especificacion se representa como una Tripla de Hoare:
{Q} S {R}
Esa tripla Hoare lo que realmente significa es que S se ejecuta siempre que Q se cumpla (o sea verdadera) y
S termina haciendo que R sea verdadera, o dicho de otra manera Q es la precondicion, R es la poscondicion
y S el programa. Cabe resaltar que tanto la precondicion como la poscondicion se escriben en el lenguaje
de calculo de predicados.
El siguiente ejemplo ilustra como se debe especificar un algoritmo, de tal manera que solo se pueda
interpretar de una manera, es decir, que no de pie a ning
un tipo de ambig
uedad:

Ejemplo 3.1
Suponga que se quiere especificar el programa que dado un arreglo b[n] encontrar el ndice i (con i en el
rango del tama
no del arreglo b) donde se encuentra un valor x dado, la siguiente tripla de Hoare especificara
el programa de manera precisa:
{x b[0 . . . n 1]} i =? {0 i < n x = b[i]}
Note que como precondicion se tiene que el valor x esta en el arreglo, como queremos averiguar en que
posicion i del arreglo esta x, entonces en la especificacion de S aparece como interrogante que valor sera i
(pero a
un no sabemos como obtenerlo, solo se menciona que se necesita encontrar ese i, porque solo lo
estamos especificando!) y la poscondicion es que realmente i es un ndice del arreglo y que en esa posicion
si este el valor x que se esta buscando.

A diferencia del ejemplo anterior, el siguiente ejemplo incluye que el ndice a encontrar sea el primero de
todos los ndices del arreglo donde pueda aparecer:

Ejemplo 3.2
Suponga que se quiere especificar el programa que dado un arreglo b[n] encontrar el primer ndice i
(con i en el rango del tama
no del arreglo b) donde se encuentra un valor x, la siguiente tripla de Hoare
especificara el programa de manera precisa:
{x b[0 . . . n 1]} i =? {0 i < n x = b[i] (j 0 j < n j i x = b[j] j > i)}
Note que como precondicion se tiene que el valor x esta en el arreglo (pero eso no quiere decir que solo
este una vez), como queremos averiguar la primera posicion posicion i del arreglo esta x, entonces en la
especificacion de S aparece como interrogante que valor sera i (pero a
un no sabemos como obtenerlo, solo
34

Cartilla Elementos de Teora en la Computaci


on

Especificaci
on de algoritmos

se menciona que se necesita encontrar ese i, porque solo lo estamos especificando!) y la poscondicion es
que realmente i es un ndice del arreglo y que en esa posicion si este el valor x que se esta buscando, pero
hay una condicion extra y es que si llegan a aparecer otros ndices en el arreglo distintos de i, entonces esos
ndices tienen que ser mayores que i, porque tenemos que asegurar que i es el primero en el que aparece x.

Los siguientes dos ejemplos ilustran algunas estrategias para especificar un algoritmo:

Ejemplo 3.3
Suponga que se quiere especificar un programa que ordene los elementos de un arreglo b[0..n 1] en orden ascendente (de menor a mayor). Primero debemos precisar un predicado que nos permita mencionar
el orden de los elementos de un arreglo en otro arreglo (donde vamos a guardar el arreglo original pero
ordenado de manera ascendente), para esto defina P (b, c, n): El arreglo b[0..n 1] es una permutacion del
arreglo c[0..n 1] (es decir los dos arreglos tienen los mismos elementos pero posiblemente en otro orden).
Nuestro objetivo final es guardar los elementos de b[0..n 1] en un arreglo C[0..n 1] que tenga los
mismos elementos de b, pero ordenados de manera ascendente. Por tanto, una poscondicion adecuada sera:
P (b, C, n) (i 0 < i n 1 C[i 1] C[i]), es decir, C es una permutacion de b, (pero por la segunda
condicion) se pide que los elementos de C estan ordenados de manera ascendente. Ahora, la precondicion
debe asegurar que el tama
no de ambos arreglos es de mas de un elemento y que C se inicializa con b (para modificar a C y no da
nar el arreglo original), entonces la precondicion sera: (0 n)(C[0..n] = b[0..n]).
De esa manera la tripla de Hoare quedara:
{(0 n) (C[0..n] = b[0..n])} C =? {P (b, C, n) (i 0 < i n 1 C[i 1] C[i])}

Ejemplo 3.4
Suponga que se quiere calcular la suma de los elementos que componene un arreglo b[0..n]. Para esto
debemos solo asegurar que el arreglo si tiene elementos, mas a
un hay que asegurar que sus elementos
sean n
umeros (para el ejemplo vamos a hacerlo solo con n
umeros enteros, para los otros tipos n
umeros
es similar), de esa manera nuestra precondicion solo sera: n 1 (i 0 i < n b[i] Z). Como debemos calcular la suma de sus elementos, debemos tener una variable donde almacenemos dicha suma
(llamela x), es decir, que nuestra poscondicion sera que en esa variable esta la suma de los elementos de
b: x = (i 0 i < n b[i]).
Entonces nuestra tripla de Hoare es:
{n 1 (i 0 i < n b[i] Z)} x =? {x = (i 0 i < n b[i])}

35

Cartilla Elementos de Teora en la Computaci


on

Correci
on de asignaci
on y condicionales

Secci
on 3.3: Correci
on de asignaci
on y condicionales
3.3.1: Correci
on de asignaciones
Ahora nos preguntamos como probamos una tripla de Hoare cuando S es una asignacion, dado que
casi siempre cuando se dise
na un algoritmo hay una parte donde se inicializan variables o se intercambian
valores entre variables. Al decir probar la especificacion nos estamos refiriendo a que si Q es cierta entonces
toca mostrar que R al evaluarse en la asignacion debe ser cierta, para que valga la poscondicion despues
de ejecutarse dicha asignacion. Esto se puede resumir en la siguiente proposicion:

Teorema 3.1
Para mostrar que x = E es una implementacion de {Q} x =? {R} se debe probar que :
Q R[x = E].

El siguiente ejemplo ilustra el resultado anterior:

Ejemplo 3.5
Considere la siguiente tripla de Hoare:
{x > 0} x =? {x > 1}
Una posible implementacion es tomar S como x = x + 1, de esa manera para probar que realmente esa
asignacion es un programa correcto se debe mostrar que la precondicion implique la poscondicion, es decir:
x > 0 (x > 1)[x = x + 1]
Utilizando el metodo de demostracion de asumir el antecedente entonces tomaremos x > 0 como verdad y
demostraremos que (x > 1)[x = x + 1] vale:
(x > 1)[x = x + 1]
=
Sustitucion textual
x+1>1
=
Aritmetica
x>0
=
Hipotesis
true

Del teorema anterior podemos calcular una precondicion Q a partir de una poscondicion R, como?, es
bastante sencillo, dado que la precondicion mas debil que cumple el teorema es la misma consecuencia del
teorema. Es decir, para una asignacion x = E la precondicion mas debil para llegar a la poscondicion R
36

Cartilla Elementos de Teora en la Computaci


on

Correci
on de asignaci
on y condicionales

es R[x = E], dado que R[x = E] R[x = E] se cumple trivialmente. Este resultado nos permite resolver
las especificaciones de programas que tienen la siguiente tripla de Hoare:
{?} x = E {R}
Los ejemplos a continuacion muestran como obtener la precondicion mas debil basados en una asignacion
y una poscondicion:

Ejemplo 3.6
Hallar la precondicion mas debil Q que hace valida la siguiente tripla de Hoare:
{?} q, r = q + 1, r y {q y + r = x}
Para solucionarlo tenemos que hallar R[x = E] (dado que esta es la precondicion mas debil de una
asignacion), de esa manera se tiene la siguiente demostracion:
(q y + r = x) [q, r = q + 1, r y]
=
Sustitucion textual
(q + 1) y + (r y) = x
=
Aritmetica
(q y + y + r y) = x
=
Aritmetica
qy+r =x
De esa manera Q (q y + r = x).

Ejemplo 3.7
Hallar la precondicion mas debil Q que hace valida la siguiente tripla de Hoare:
{?} y = 5 + y {x = y}
Para solucionarlo tenemos que hallar R[x = E] (dado que esta es la precondicion mas debil de una
asignacion), de esa manera se tiene la siguiente demostracion:
(x = y) [y = 5 + y]
=
Sustitucion textual
x=y+5
De esa manera Q (x = y + 5).

Tambien sabemos que en un programa pueden haber asignaciones de manera consecutiva:


{Q} x1 = E1 , x2 = E2 . . . , xn = En {R}
De esa manera el Teorema 3.1 se puede generalizar de la siguiente forma:

Teorema 3.2
Para mostrar que x1 = E1 , x2 = E2 . . . xn = En es una implementacion de {Q} x1 =?, x2 =?, . . . xn =? {R}
se debe probar que:
37

Cartilla Elementos de Teora en la Computaci


on

Correci
on de asignaci
on y condicionales

Q R[xn = En ][xn1 = En1 ] . . . [x1 = E1 ]

La demostracion de este teorema es bastante sencilla dado que la ejecucion de cada asignacion es lineal y
se debe asegurar que en cada una de las asignaciones se obtenga la precondicion mas debil para la siguiente
asignacion, razon por la cual el teorema dice que toca demostrar la poscondicion pero con las asignaciones
al contrario a como se ejecutan (trate de escribir una demostracion formal del teorema).
En los siguientes ejemplos se ilustra como demostrar asignaciones m
utiples utilizando el teorema anterior:

Ejemplo 3.8
Demostrar que la siguiente tripla de Hoare es correcta:
{0 = y} x = x + 1 ; y = x + y {x = y}
Utilizando el teorema anterior, tenemos que mostrar que y = 0 (x = y)[y = x+y][x = x+1]. Entonces
utilizando por metodo directo supongamos que y = 0 y mostremos que (x = y)[y = x + y][x = x + 1]:

=
=
=
=

(x = y)[y = x + y][x = x + 1]
Sustitucion textual
(x = y + x)[x = x + 1]
Sustitucion textual
x+1=y+x+1
Aritmetica
y=0
Hipotesis
T rue

Ejemplo 3.9
Demostrar que la siguiente tripla de Hoare es correcta:
{x = A y = B} x = x y; y = x + y; x = y x {x = B y = A}
Utilizando el teorema anterior, tenemos que mostrar que:
x = A y = B (x = B y = A)[x = y x][y = x + y][x = x y]
Entonces utilizando por metodo directo supongamos que x = A y = B y mostremos que (x = B y =
A)[x = y x][y = x + y][x = x y]:

38

Cartilla Elementos de Teora en la Computaci


on

=
=
=
=
=

Correci
on de asignaci
on y condicionales

(x = B y = A)[x = y x][y = x + y][x = x y]


Sustitucion textual
(y x = B y = A)[y = x + y][x = x y]
Sustitucion textual y aritmetica
(y = B x + y = A)[x = x y]
Sustitucion textual
y = B (x y) + y = A)
Aritmetica
y =Bx=A
Hipotesis
T rue

Para terminar con esta seccion de correccion de asignaciones, el siguiente ejemplo ilustra como utilizar los
teoremas mencionados con anterioridad para deducir el valor de una asignacion:

Ejemplo 3.10
Se quiere determinar E de manera que la siguiente tripla sea valida:
{i = j} i, j = i + 1, E {i = j}
Intuitivamente, E sera j + 1, pues el razonamiento del programa sera: Partimos de i = j, entonces al
sumar uno a ambos lados tenemos que i + 1 = j + 1, es decir que los nuevos valores de i, j siguen siendo
iguales, pero vamos a justificarlo con nuestros teoremas. Sabemos que el hecho que la tripla sea valida
significa que Q (i = j)[i, j = i + 1, E].
Podemos manipular dicha implicacion (por lo general lo haremos de esta manera), asumiendo la premisa
cierta (en este caso la premisa es i = j), de modo que la conclusion sera cierta:
T rue
=
Suposicion hecha que conclusion es cierta
(i = j)[i, j = i + 1, E]
=
Sustitucion textual
(i + 1 = E)
=
Sustitucion textual por premisa i = j
(j + 1 = E)
Luego E = j + 1 hace cierta la implicacion, como queramos verificar.

3.3.2: Correcci
on de condicionales
Recordemos que en todos los algoritmos que solucionen un problema de programacion hacen uso de
condiciones para ejecutar o validar un conjunto de acciones. De esa manera tambien existen herramientas
para demostrar la correccion de estos, para esto primero definamos formalmente que es un condicional.

39

Cartilla Elementos de Teora en la Computaci


on

Correci
on de asignaci
on y condicionales

La instruccion condicional se llama y se representa como IF y tiene la siguiente forma en muchos


lenguajes de programacion:
IF if B then S1 else S2
Donde B es una expresion booleana, y S1 y S2 son dos programas que se ejecutan seg
un el valor de B,
si B es cierta entonces se ejecutara S1 de lo contrario se ejecutara S2 .
Ahora, supongamos que se quiere la ejecucion de un condicional inicie en un estado que satisface la
precondicion Q para llegar a una poscondicion R, es decir {Q} IF {R}, nos preguntamos entonces como
se hace para garantizar que {Q} IF {R} sea valida. Note primero que cuando B es cierta entonces S1 se
ejecutara, de esa manera S1 tiene que hacer verdad a R; por otro lado si B es falsa (o lo que es lo mismo
B es verdad), se ejecutara S2 , as que S2 debe hacer verdad a R. En pocas palabras se cumple la siguiente
especificacion:
{Q}
if B then {Q B} S1 {R}
else {Q B} S2 {R}
{R}
De esa manera podemos enunciar el siguiente teorema para la verificacion de la correccion de condicionales:

Teorema 3.3
Para probar que {Q} IF {R}, es suficiente con probar:
a) {Q B} S1 {R}.
b) {Q B} S2 {R}.

En los siguientes ejemplos se ilustra el uso del teorema anterior:

Ejemplo 3.11
Considere el siguiente algoritmo:
{true}
if x y then skip
else x, y = y, x
{x y}
Usando el Teorema 3.3 tocara probar:
a) {true x y} skip {x y}
b) {true (x y)} x, y = y, x {x y}
Para probar a) probemos que (true x y) (x y) dado que el programa skip no realiza ning
un
tipo de accion sobre las variables de la precondicion. De esa manera por metodo directo supongamos que la
precondicion es cierta, es decir que x y es verdad, pero como p p entonces se tiene que la poscondicion
40

Cartilla Elementos de Teora en la Computaci


on

Correci
on de asignaci
on y condicionales

es necesariamente cierta (porque es la misma hipotesis).


Pero para probar b), dado que es una asignacion debemos utilizar el Teorema 3.1. De esa manera toca
demostrar que:
(x y) x y[x, y = y, x]
Entonces por metodo directo supongamos que (x y) y mostremos el consecuente:

=
=
=
=

x y[x, y = y, x]
Sustitucion textual
yx
y x y < x y = x
y <xy =x
Hipotesis:(x y) y < x
true y = x
Cero del
T rue

Ejemplo 3.12
Verifique la correccion del siguiente programa, suponiendo que a y b son variables booleanas:
{Q:True}
if B1 a b then a = a
[]B2 a b then b = b
fi
{R a b}
Note que esta notacion del condicional primero abre con un if y cierra con un fi, dado que en su interior
hay dos condicionales; pero el segundo no es la negacion del primero, de esa forma que no podamos usar
el else con el que hemos venido trabajando. Ademas, note que por cada condicion que este dentro del
condicional debe tener un programa a ejecutar, lo u
nico que faltara probar es que alguna de las dos
condiciones sea verdadera para que de esa manera se pueda ejecutar al menos uno de los programas
asociados.
Para esto necesitamos verificar dos cosas. En primer lugar, que las guardas del condicional agotan
todas las posibilidades dadas por la precondicion (en otras palabras que en cualquier instancia donde la
precondicion se cumple, existe por lo menos un caso del condicional al cual se entra). En segundo lugar, que
en cada caso del condicional, la ejecucion del codigo correspondiente llega a un estado donde la poscondicion
se cumple.

1. Agotamiento de casos (alguna de las condiciones se cumple) Q (B1 B2 ):


41

Cartilla Elementos de Teora en la Computaci


on

Correcci
on de ciclos

true (a b) (a b)
=
Simetra de y asociatividad de
true (a a) (b b)
=
Tercero excluido
true true true
=
Definicion de disyuncion e implicacion
true
2. Verificacion que la tripla {true (a b)} a = a {a b} es correcta, para esto supongamos que
true (a b) y mostremos que (a b)[a = a]:
(a b)[a = a]
=
Sustitucion
a b
=
Hipotesis
T rue
3. Verificacion que la tripla {true (a b)} b = b {a b} es correcta, para esto supongamos que
true (a b) y mostremos que (a b)[b = b]:
(a b)[b = b]
=
Sustitucion
a b
=
Hipotesis
T rue

Secci
on 3.4: Correcci
on de ciclos
En computacion constantemente estamos usando ciclos para hacer tareas repetitivas en un algoritmo.
Una de las aplicaciones del principio de induccion es demostrar que el dise
no de un ciclo es correcto de tal
manera que haga lo que tiene que hacer y si lo hace que lo haga bien.
Cuando se dise
na un ciclo dentro de un algoritmo se debe tener en cuenta distintos elementos. En primer lugar se debe contemplar la precondicion y la poscondicion, en segundo lugar el mismo ciclo tiene unas
condiciones especiales para ejecutarse y realizar la accion para la cual se dise
no, la condicion que obliga
al ciclo a seguir se conoce como guarda y las instrucciones que ejecuta en cada iteracion se se denominan
operaciones (dado que pueden ser asignaciones, productos, condiciones, entre otras). El u
ltimo elemento a
42

Cartilla Elementos de Teora en la Computaci


on

Correcci
on de ciclos

tener en cuenta en la definicion de un ciclo es el invariante, que tal como su nombre lo indica es algo que
no cambia durante la ejecucion del ciclo, es lo que el ciclo asegura en cada iteracion.
Antes de dar un ejemplo, vamos a mostrar como cada parte mencionada con anterioridad se representa
de manera formal. Un ciclo se escribe de la siguiente manera:
do B S od
A continuacion mostramos un ejemplo de una especificacion de un ciclo y de esa manera probar luego que
esta especificacion es correcto:
{Q 0 n}
i, p = 0, 0;
{P 0 i n p = i x}
do i n i, p = i + 1, p + x od
{R p = n x}
Note que el programa anterior solo suma n veces un valor x y lo almacena en p. Sin embargo para que el
programa anterior sea correcto debemos mostrar varias cosas, pero por ahora enfoquemonos en demostrar
que la invariante del ciclo se preserva, para esto enunciaremos a continuacion el teorema fundamental
del invariante:

Teorema 3.4
Suponga las siguiente proposiciones:
{P B} S {P } o lo que es lo mismo que la ejecucion de S inicia en estado donde P y B son verdad
y termina en un estado en la que P es verdad.
{P }do B S od{true} o lo que es lo mismo que el ciclo que inicia con P cierta, en alg
un momento
termina en un n
umero finito de pasos.
Entonces, {P }do B S od{P B} vale.

Una demostracion sencilla es la siguiente, primero note que por la segunda hipotesis del teorema se asegura
que el ciclo termina en un n
umero finito de iteraciones, digamos n (n 0), toca es probar que realmente
cuando el ciclo termina vale {P B}. Mostrar que B es verdadera es sencillo pues el ciclo termina si la
guarda es falsa, es decir, B es falso o lo que es lo mismo B es cierto. Solo restara probar que P es cierta
cuando el ciclo termina, es decir cuando las n iteraciones se han ejecutado. Para esto usamos induccion,
pues hay n iteraciones en las cuales se debe cumplir la invariante P , el caso base es facil pues por la segunda
hipotesis para que se inicie a ejecutar el ciclo P tiene que ser cierta, ahora demostremos el caso inductivo
para eso supongamos que P es cierta en la iteracion i (i < n) y mostremos que sigue siendo cierta en la
iteracion i + 1. Note que en la iteracion i + 1 para que se ejecute S debe ser cierto P y B, y usando la
primera hipotesis se tiene que despues de la iteracion i + 1 sigue siendo cierta.
Este teorema es muy importante dado que nos asegura que demostrando las condiciones a) y b) se tiene
que el ciclo involucrado es correcto ya que su invariante se preserva durante toda su ejecucion (incluyendo
la u
ltima) y que la guarda en alg
un momento llega a ser falsa, es decir que termina. Pero, note que si el ciclo
tiene una poscondicion que deba cumplir cuando termine de ejecutarse se debe mostrar que P B R,
pues las condiciones en las que termina deben implicar la poscondicion. De la misma manera cuando se
43

Cartilla Elementos de Teora en la Computaci


on

Correcci
on de ciclos

tiene una precondicion, esta como mnimo debe implicar la invariante, dado que esta debe ser verdad antes
de que dicho ciclo se inicie a ejecutar.
A continuacion ilustramos con un ejemplo la manera de utilizar el teorema anterior para demostrar
que un ciclo es correcto:

Ejemplo 3.13
En este ejemplo ilustraremos como utilizar el Teorema 3.4, para esto considere el siguiente ciclo:
{P 0 i n p = i x}
do i n i, p = i + 1, p + x od
{P i = n}
Entonces para mostrar que el invariante se preserva necesitamos mostrar que las dos hipotesis del
teorema se cumplen y de esa manera por el teorema podemos afirmar que la invariante se cumple. Primero
,se tiene que probar que {P B} i, p = i + 1, p + x {P }, para eso utilizamos el Teorema 3.1 que nos dice que
tenemos que probar para que la tripla de Hoare con una asignacion sea correcta, de esa manera lo que hay
que probar se resume en probar la siguiente proposicion:
P B P [i, p = i + 1, p + x].
Cuya demostracion es la siguiente:

=
=

P [i, p = i + 1, p + x]
Sustitucion textual
0 i + 1 n p + x = (i + 1) x
Aritmetica
1 i n p = i x
Aritmetica
i 0 i n p = i x
Definicion de B y P
BP

Ahora para probar la segunda hipotesis toca asegurar que el ciclo termina, pero es claro que el ciclo
termina, dado que i incrementa en 1 en cada iteracion y como la invariante se preserva se tiene que 0 i n,
entonces despues de n iteraciones el ciclo termina porque i = n (la guarda se vuelve falsa).

Con el ejemplo anterior y con todo lo dicho anteriormente se puede resumir los pasos de la correcion de
ciclos en una lista de chequeo:
Lista de chequeo:
a) La invariante P es cierta antes de que se inicie el ciclo.
b) La invariante P se preserva dentro del ciclo: {P B} S {P }.
44

Cartilla Elementos de Teora en la Computaci


on

Correcci
on de ciclos

c) El ciclo termina.
d) La poscondicion R del programa vale despues de que termina el ciclo: P B R
Probando la terminaci
on de ciclos
Para probar que un ciclo termina se debe proponer una funcion T acotada, de tal manera que por cada
iteracion esta se reduce y que ademas sino es la u
ltima iteracion la funcion T debe ser positiva.

Teorema 3.5
Para probar que:
{ Invariante P }
{ Funcion acotada T }
do B S od
Termina, es suficiente con encontrar una funcion acotada T , es decir, una expresion entera que es una
cota superior al n
umero de iteraciones que a
un faltan por ejecutarse. As esta funcion T satisface:
a) T se decrementa en cada iteracion: eso es para v variable fresca se tiene
{P B} v = T {T < v}
b) Siempre que haya una iteracion mas por hacer, T > 0:
P B T >0

Ejemplo 3.14
Para ilustrar este teorema considere el ciclo propuesto en el Ejemplo 3.13:
{P 0 i n p = i x}
{T n i}
do i n i, p = i + 1, p + x od
{P i = n}
Note que en cada iteracion i decrementa en una y de esa manera decrementa nuestra funcion T tambien
en uno. Ademas necesitamos probar que P B T > 0:
0 i n p + x = (i) x i n

Debilitamiento
inin
=
Aritmetica
0<ni
=
Definicion de T
0<T

45

Cartilla Elementos de Teora en la Computaci


on

Correcci
on de ciclos

Los siguientes ejemplos ilustran como demostrar que un ciclo es correcto:

Ejemplo 3.15
Considere el siguiente algoritmo:
{n 0}
x, r = 0, 1
do x < n r, x = 2r, x + 1 od
{r = 2n }
Para este algoritmo vamos a encontrar la funcion cota con la que se asegurara que el ciclo termina,
vamos a ver la preservacion de la invariante y por u
ltimo vamos a ver que cuando el ciclo termina, este
termina bien; es decir, que la poscondicion se cumple.
1. Funci
on cota: n x.
Note que a medida que el ciclo avanza, la distancia disminuye en 1 ya que x aumenta en 1 y n es una
constante. Ademas el numero natural n x siempre es mayor que cero por la guarda del ciclo.
2. Invariante: r = 2x x n.
Demostracion por induccion sobre el n
umero de veces que se ha entrado al ciclo.
Caso base: Justo antes de entrar al ciclo, r = 1, x = 0. Claramente 1 = 20 , as que se cumple la
ecuacion. Ademas, 0 n debido a la precondicion, as que la desigualdad r x se cumple.
Paso inductivo: Supongamos que en alg
un momento dado, se cumplio el invariante con las
variables x, r; esta es mi hipotesis. Quiero explicar que se sigue cumpliendo con los nuevos
valores de x y r; para distinguirlos, se usara rnuevo , xnuevo para esos nuevos valores.
As que vamos a verificar que
rnuevo = 2xnuevo xnuevo n
Veamos:
=
=
=
=

rnuevo
Asignacion r = 2r en cuerpo de ciclo
2r
Hipotesis de induccion
2 2x
Aritmetica
x+1
2
Asignacion x = x + 1 en cuerpo de ciclo
xnuevo
2

Por otro lado, la condicion xnuevo n es cierta porque la guarda del ciclo afirma que x < n,
as que si incrementamos 1 a x, claramente el nuevo valor de x es menor o igual que n. Esto
prueba el paso inductivo y por tanto concluimos que el invariante vale durante el ciclo.
46

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

3. Terminaci
on de ciclo: Dada la negacion de la condicion de entrada x n y el invariante r = 2x
y x n tenemos que x = n. Ahora reemplazando x en la ecuacion r = 2x , obtenemos r = 2n que es
exactamente la poscondicion del programa.

Secci
on 3.5: Ejercicios
1. Especifique de forma precisa los siguientes problemas de programacion:
a) Calcular la suma de los elementos del arreglo b[j . . . k 1].
b) Obtener el maximo valor de un arreglo b[j . . . k 1].
c) Obtener el ndice donde se encuentra el maximo valor de un arreglo b[j . . . k 1].
d) Almacene en un arreglo c[0 . . . n 1] una ordenacion de un arreglo b[0 . . . n 1]. Establezca los
predicados que considere necesarios.
e) Calcule la mayor potencia de dos que no sea mayor que un n dado.
f) Contar el n
umero de ceros que hay en un arreglo b[0 . . . n 1].
g) Suponga que se tiene un arreglo b[0 . . . n 1]. Cada uno de sus segmentos b[i . . . j 1] tiene una
suma. Calcule la suma mas grande que se puede obtener de los segmentos del arreglo original.
h) Obtenga el promedio de los valores almacenados en un arreglo b[0 . . . n 1].
i) Obtenga la media de los valores almacenados en un arreglo b[0 . . . n 1].
j) Considere un arreglo b[0 . . . n 1] cuyos valores son uno o cero (como si fuera un arreglo de bits)
y obtenga el n
umero decimal asociado a ese arreglo b.
k) Un arreglo b tiene la lista de estudiantes que estan en la clase de elementos y el arreglo c tiene
la lista de las personas que trabajan en el Politecnico. Encuentre la primera persona que esta en
b y c.
l) Considere un arreglo b ordenado de cierta manera, encuentre el ndice mas grande del arreglo
donde se encuentra el valor x.
m) Diga si es cierto que dado un arreglo b, este tiene un valor negativo.
n) Calcule el doble de cada uno de los elementos de un arreglo b[0 . . . n 1].
o) Ordene un arreglo de enteros b[0 . . . n 1].
p) Encuentre el valor maximo y mnimo de un arreglo b[0 . . . n 1].
q) Invierta el arreglo b[0 . . . n 1].
r) Intercambie los valores del arreglo b[0 . . . n 1] con los elementos del arreglo c[0 . . . n 1].
s) Un arreglo b[0 . . . n 1] tiene valores rojos, blancos y azules. Ponga los rojos en los primeros
ndices del arreglo, luego los azules y por u
ltimo los blancos.
47

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

t) Permute los valores de un arreglo b, de tal manera que los n


umeros menores de un x esten de
primeras y luego los que son mayores, e indique el ndice donde se encuentra el u
ltimo valor
menor que x.
u Dado un arreglo booleano b que contenga un valor verdadero, encuentre el ndice mas grande
en que b tenga un valor verdadero. Ademas encuentre el ndice mas peque
no en que b tenga un
valor verdader.
v Calcule el n
umero de veces que un arreglo de enteros b tiene un valor x.
x Para un arreglo de enteros b que tenga un valor maximo, encuentre el segundo valor mas grande
que tiene almacenado.
2. Calcule y simplifique la precondicion mas debil de la siguiente especificacion:
{?} x = x + y, y = x y, x = x y {x = X y = Y }
3. Calcule y simplifique la precondicion mas debil para la siguiente especificacion:
{?} x = x / y, y = x / y, x = x / y {x X y Y }
4. Suponga que el n
umero de peras que Mara y Juan tienen (representadas por m y j respectivamente)
estan relacionados por la siguiente form
ula (C es una constante): P C = m + 2 j. Encuentre una
solucion para e en la especificacion {P par.m} m, j = m 2, e {P }.
5. Teniendo en cuenta la definicion de los n
umeros de Fibonacci vistos en el captulo anterior, se define
el siguiente predicado P n > 0 a = Fn b = fn1 . Encuentre una solucion para e y f en {P } n, a, b =
n + 1, e, f {P }.
6. Determine la precondicion mas debil que satisfaga las siguientes especificaciones:
a) {?} x = x x {x > 0}.
b) {?} x = x + 1 {x3 5x2 + 2x > 0}.
c) {?} x, y = x + 1, y 1 {x + y > 0}.
d) {?} x, y = y + 1, x 1 {x > 0}.
e) {?} x, y = y x, x y {x + y > 0}.
f) {?} a = a b {a}.
g) {?} a = a b {a b}.
7. Demuestre que el siguiente programa es correcto:
{x > 5}
if x y then skip
else x, y = y, x
{x y}
48

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

8. Demuestre que el siguiente programa es correcto:


{x = X}
if x < 0 then x = x
else skip
{x = abs.X}
Donde abs.x es el valor absoluto de x.
9. Demuestre que el siguiente programa es correcto:
{y > 0 z xy = X}
if impar.y then z, y = z x, y 1
else x, y = x x, y/2
{y 0 z xy = X}
10. Demuestre que el siguiente programa es correcto:
{true}
if x 1 then x = x + 1
else x = x 1
{x 1}
11. Demuestre que el siguiente programa es correcto:
{true}
x, y = y y, x x
if x y then x = x y
else y = y x
{x 0 y 0}
12. Encuentre la precondicion mas debil del siguente algoritmo:
{?}
x = x + 1
if x 0 then x = x 1
if x 0 then x = x + 2
if x = 1 then skip
{x 1}
13. Para los siguientes programas debe mostrar que esta correcto usando la lista de chequeo propuesta
en el captulo:
a) Este algoritmo almacena la suma de los n
umeros almacenados en un arreglo b[0 . . . n 1] para
n 0:

49

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

{Q 0 n}
x, k = 0, 0;
{P 0 k n x = (i 0 i < k b[i])}
do k n x, k = x + b[k], k + 1 od
{R x = (i 0 i < n b[i])}
b) Este algoritmo calcula el n
umero de Fibonacci para un n dado:
{Q 0 n}
k, b, c = 0, 1, 0;
{P 0 k n b = Fk1 c = Fk }
do k n k, b, c = k + 1, c, b + c od
{R c = Fn }
Porque b inicia en 1?.
c) Este algoritmo almacena la suma de los n
umeros almacenados en un arreglo b[0 . . . n 1] para
n 0:
{Q 0 n}
x, k = 0, n;
{P 0 k n x = (i k i < n b[i])}
do k 0 x, k = x + b[k 1], k 1 od
{R x = (i 0 i < n b[i])}
Que diferencias tiene con el ejercicio del literal a) ?.
14. Demuestre que el siguiente algoritmo (para calcular la multiplicacion rusa) es correcto:
{T rue}
x, y, r = A, B, 0;
do x 0
if x mod 2 = 0 x, r = x 1, r + y;
[] x mod 2 = 1 x, y = x/2, 2y;
fi
od
{r = ab}
Para esto defina claramente la funcion cota, la invariante y como a la terminacion del ciclo se cumple
la poscondicion.
15. Escriba el algoritmo para realizar el acercamiento de tres n
umeros (x, y, z) y demuestre que este
es correcto. Nota: Especifique claramente el ciclo involucrado en este algoritmo, su invariante y su
funcion cota.
16. Escriba el algoritmo para encontrar el maximo com
un diviso de dos n
umeros (x, y) y demuestre que
este es correcto. Nota: Especifique claramente el ciclo involucrado en este algoritmo, su invariante y
su funcion cota.
50

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

17. Escriba el algoritmo que implemente el algoritmo de euclides y demuestre que este es correcto. Nota:
Especifique claramente el ciclo involucrado en este algoritmo, su invariante y su funcion cota.
18. Escriba el algoritmo para que dado un natural fijo N diga si existen a, b N tal que N = a.b y
demuestre que este es correcto. Nota: Especifique claramente el ciclo involucrado en este algoritmo,
su invariante y su funcion cota.
19. Escriba el algoritmo que calcule la potencia n de un n
umero dado y demuestre que este es correcto.
Nota: Especifique claramente el ciclo involucrado en este algoritmo, su invariante y su funcion cota.
20. Escriba el algoritmo que calcule el factorial de un n
umero dado y demuestre que este es correcto.
Nota: Especifique claramente el ciclo involucrado en este algoritmo, su invariante y su funcion cota.
21. Escriba el algoritmo para calcular el producto de dos matrices y demuestre que este es correcto.
Nota: Especifique claramente el ciclo involucrado en este algoritmo, su invariante y su funcion cota.
22. Escriba el algoritmo que encuentre los n
umeros de Lucas (definidos en los ejercicios del captulo de
induccion) y demuestre que este es correcto. Nota: Especifique claramente el ciclo involucrado en
este algoritmo, su invariante y su funcion cota.
23. Escriba el algoritmo que dado un n
umero N calcule el n
umero binario asociado y demuestre que este
es correcto. Nota: Especifique claramente el ciclo involucrado en este algoritmo, su invariante y su
funcion cota.
24. Escriba el algortmo para sumar dos matrices y demuestre que este es correcto. Nota: Especifique
claramente el ciclo involucrado en este algoritmo, su invariante y su funcion cota.

51

Cartilla Elementos de Teora en la Computaci


on

52

Ejercicios

Captulo 4: Ecuaciones de recurrencia

En este captulo introducimos las metodos matematicos mas comunes para resolver ecuaciones de
recurrencia para estimar complejidades de algoritmos. Adicionalmente, se define y explican los tipos de
ecuaciones de recurrencia mas frecuentes en el analisis de algoritmos y los ejemplos mas conocidos. El
contenido de este captulo se baso en gran parte de los autores [4] y [2].
Al final del captulo el estudiante estara en la capacidad de plantear ecuaciones de recurrencia de un
problema propuesto que as lo necesite y establecer si tiene o no solucion para que de esa manera pueda
calcular un valor de complejidad del algoritmo o simplemente encontrar una formula mas sencilla que
resuelva el mismo problema.

Secci
on 4.1: Introducci
on
Una ecuacion de recurrencia es una expresion finita que define una sucesion, en la cual cada uno de sus
elementos se determina a partir de otros elementos, mas sencillos, que incluyen casos iniciales o basicos.
El analisis de algoritmos y las ecuaciones de recurrencia estan ntimamente relacionadas, dado que estas
son una herramienta con la que se puede estimar complejidades de algoritmos, puesto que utiliza funciones
definidas sobre los naturales, que en el caso de un algoritmo recurrente calculan la demanda de recursos a
lo largo de su ejecucion.
Uno de los problemas frecuentes con las ecuaciones de recurrencias no es solo plantearlas sino solucionarlas, dado que solucionar este tipo de ecuaciones consiste en encontrar una expresion cerrada para
una sucesion que satisfaga la ecuacion, es decir, una expresion en la que los valores de los elementos de
la sucesion no dependan de otros valores de la sucesion. Es importante encontrar expresiones cerradas ya
que a a partir de una ecuacion recurrente resulta difcil establecer ordenes de crecimiento en el tiempo
(complejidad de ejecucion) de los recursos que necesita el algoritmo correspondiente.
Solucionar ecuaciones recurrentes en computacion es un tema al que no le podemos ser indiferentes,
dado que muchos de los objetos informaticos definidos estan definidos de manera recurrente y los razonamientos inductivos son la base para los desarrollos teoricos y practicos de esta ciencia. Adicionalmente
cabe resaltar que las ideas expuestas en este captulo son soportadas por la teora clasica de ecuaciones
diferenciales, aunque son teoras que se aplican de manera distinta tienen varias similitudes evidentes cuando se tratan de ecuaciones lineales y no lineales ya sean homogeneas o no homogeneas. No obstante hay
ecuaciones diferenciales y recurrentes cuya solucion estan fuera del alcance de los metodos que aqu se
exponen, incluso puede ser imposible encontrar soluciones por metodos algoritmicos.

Secci
on 4.2: Definiciones b
asicas
Tal como mencionamos en la introduccion del captulo, las ecuaciones o relaciones de recurrencia son
sucesiones que se expresan en terminos de elementos anteriores mas sencillos. Primero veamos que es una
sucesion, una sucesion es una secuencia de n
umeros naturales que de a parejas tienen alguna relacion, por
53

Cartilla Elementos de Teora en la Computaci


on

Definiciones b
asicas

ejemplo:
(2, 4, 8, 16, . . . , 2n, . . .)
es la sucesion creciente de n
umeros pares, y si uno toma dos n
umeros consecutivos,n y n + 1, de la sucesion
se sabe que al dividirse n + 1 en n nos va a dar como resultado 2. Una sucesion se suele representar como
(an ), donde cada an es un elemento de la sucesion, el ejemplo anterior se puede escribir de forma concisa
como an = 2an1 (el subndice n de la sucesion habla del elemento que esta en la posicion n de la misma).
Pero note que esa sucesion puede ser alguna de las siguientes:
(2, 4, 8, . . . , 2n, . . .)
(4, 8, . . . , 2n, . . .)
(100, 200, 400, . . . , 2n, . . .)
para asegurar que realmente la sucesion propuesta representa la sucesion del ejemplo toca definirle condiciones iniciales o condiciones de frontera que diga desde que n
umero inicia la sucesion, de esa manera la
sucesion correcta que modela el ejemplo propuesto es:
an = 2an1 con a0 = 2.
De esa manera la sucesion tiene un caso base (a0 ) y un caso recurrente (an en terminos de an1 ), otros
ejemplos de ecuaciones de recurrencia son:
an = an1 + 3 con a0 = 5
an = an1 + 3an2 con a0 = 3
4.2.1: Tipos de ecuaciones de recurrencia
Existen distintos tipos de ecuaciones de recurrencia, estos tipos se clasifican por ordenes, para aclarar
que significado una ecuacion de orden k, empecemos definiendo que es una ecuacion de recurrencia de
primer orden.
Una ecuacion de recurrencia de primer orden es una ecuacion que define una sucesion cuyo elementos
que no son caso base depende el elemento inmediatamente anterior, tal como ocurre en el ejemplo an = 2an1 .
Pero si en cambio se tiene una ecuacion de recurrencia como an = 2an1 + 3an2 es una ecuaci
on de orden
dos, es decir, el orden de una relacion de recurrencia es el n
umero de elementos del cual depende el elemento
n de una sucesion. De esa manera la ecuacion:
an = Cn1 an1 + Cn2 an2 + . . . + Ck ank
es una relacion de recurrencia de orden k. Note que la ecuacion anterior se puede reescribir como:
an Cn1 an1 Cn2 an2 . . . Ck ank = 0
Mas a
un la variable an puede estar acompa
nada de una constante (en ese caso uno), de esa forma se puede
reescribir de la siguiente manera:
Cn an + Cn1 an1 + Cn2 an2 + . . . + Ck ank = 0 (n k).
54

Cartilla Elementos de Teora en la Computaci


on

Ecuaciones de recurrencia lineales y homog


eneas

La anterior ecuacion se dice que es una ecuacion homogenea (porque es igual a cero), pero si en cambio se
tuviera que fuera igual a algo distinto de cero, por ejemplo un polinomio, se dice entonces que la ecuaci
on
es no homogenea.
Hasta ahora hemos solo dado ejemplos de ecuaciones de recurrencia que son lineales, dado que ning
un
elemento de la ecuacion esta elevado a alguna potencia positiva. De hecho, en este captulo solo estudiaremos
metodos para resolver ecuaciones de recurrencias lineales homogeneas o no homogeneas, puesto que las
que no son lineales necesitan estrategias y teoras mas avanzadas que se salen del alcance del curso.

Secci
on 4.3: Ecuaciones de recurrencia lineales y homog
eneas
En esta seccion solo nos concentramos en mostrar las recetas para solucionar ecuaciones lineales
homogeneas.
4.3.1: Ecuaciones de primer orden
Para empezar estudiemos el caso particular de la ecuaciones de primer orden, as que considere la
sucesion an = 3an1 con a0 = 5. Observemos si calculamos los primeros 6 elementos de la sucesion:
a0 = 5
a1 = 3 a0 = 3(5)
a2 = 3 a1 = 3(3 5) = 32 (5)
a3 = 3 a2 = 3(32 5) = 33 (5)
a4 = 3 a3 = 34 (5)
a5 = 3 a4 = 35 (5)
De esto podemos deducir que el valor de a20 = 5(320 ) y en general que an = 5(3n ), esta es la f
ormula
cerrada de la ecuacion de recurrencia an = 3an1 con a0 = 5.
En general cuando se tiene una ecuacion de recurrencia de primer orden esta tiene la forma an = dan1
y d una constante, y una condicion inicial a0 = A, la form
ula cerrada para este tipo de ecuaciones es
sencillamente an = A dn . Cabe resaltar que no todas las ecuaciones de recurrencia de primer orden son de
esa manera, el siguiente ejemplo ilustra lo que se esta diciendo:

Ejemplo 4.1
Tal vez algoritmo mas popular para ordenar un conjunto de n
umero es el metodo de ordenaci
on burbuja,
la entrada es un arreglo A[n] de n
umeros que se desean ordenar de menor a mayor, la idea de fondo de
este algoritmo es comparar cada uno de los n
umeros con todos los demas que estan en el arreglo e irlo
moviendo siempre y cuando encuentre un n
umero menor que el en una posicion anterior en el arreglo:
Para determinar la ecuacion de complejidad de este algoritmo, contamos el n
umero de operaciones que
ejecuta para realizarse, sea an la sucesion que representa el n
umero de operaciones que el algoritmo realiza
para ordenar los n n
umeros del arreglo A, de esa manera obtenemos que:
an = an1 + n 1 con n 2 y a1 = 0.
Esto surge de la siguiente manera, dada la lista de n n
umeros, se hacen en el peor de los casos n 1
comparaciones para mover el n
umero mas peque
no de la lista a la primera posicion de la lista, y para los
55

Cartilla Elementos de Teora en la Computaci


on

Ecuaciones de recurrencia lineales y homog


eneas

Algoritmo 4.1 Ordenacion burbuja


for i = 1 to n 1 do
for j = n to i + 1 do
if A[j] < A[j 1] then
temp = A[j 1]]
A[j 1] = A[j]
A[j] = temp
end if
j =j1
end for
end for
n 1 n
umeros restantes por ordenar requieren an1 comparaciones para ordenarse completamente (pues en
el proceso el primer n
umero se repite para todos los demas n
umeros de la lista).
Note que el sumando n 1 hace que la ecuacion de la recurrencia no sea homogenea. Dado que a
un no
tenemos los metodos para resolver relaciones de recurrencia no homogeneas, veamos a ver si encontramos
un patron, para esto calculemos distintos valores de la sucesion:
a1 = 0
a2 = 1 + 2 1 = 1
a3 = 1 + 3 1 = 1 + 2
a4 = 1 + 2 + 4 1 = 1 + 2 + 3
a5 = 1 + 2 + 3 + 5 1 = 1 + 2 + 3 + 4
El patron que podemos identificar es que an = 1 + 2 + 3 + . . . + n del cual sabemos cual es su resultado (De
.

un ejercicio del captulo anterior), entonces an = n(n+1)


2
Hasta ahora hemos visto dos aproximaciones para encontrar la solucion de relaciones de recurrencia
de primer orden,como:
a) Las sucesiones de la forma an = dan1 con n 0 y a0 = A.
b) Las sucesiones de la forma an = an1 + , donde puede ser como en el caso del Ejemplo 4.1 (un
polinomio) o una constante, para este tipo de ecuaciones las resolvemos -por ahora- buscando un
patron de los elementos de la sucesion.
4.3.2: Ecuaciones de segundo orden
Ahora, continuaremos con buscar la manera de solucionar ecuaciones de recurrencia de segundo orden
y de orden k. Primero recordemos que la ecuacion de recurrencia lineal de orden k con k N, Ci 0 y (an )
una sucesion, puede ser de la siguiente manera:
Cn an + Cn1 an1 + Cn2 an2 + . . . + Ck ank = f (n) (n k)
Si f (n) = 0 se dice que la ecuacion es homogenea, si f (n) 0 es no homogenea, de esa manera una de orden
dos homogenea sera Cn an + Cn1 an1 + Cn2 an2 = 0 (n 2). Basados en lo que vimos con anterioridad para
56

Cartilla Elementos de Teora en la Computaci


on

Ecuaciones de recurrencia lineales y homog


eneas

este tipo de ecuaciones queremos una solucion de la forma an = c rn con c, r N.


Si sustituimos en la an = c rn en la ecuacion se tendra:
Cn c rn + Cn1 c rn1 + Cn2 c rn2 = 0
Con alguna manipulacion algebraica la formula anterior se puede reescribir como: c rn2 (Cn r2 + Cn1 r +
Cn2 ) = 0, y cancelando se obtiene:
Cn r2 + Cn1 r + Cn2 = 0
este es el polinomio caracterstico de grado 2, y los valores que lo satisfacen se conocen como races, como
es de grado dos entonces tiene dos races, llamelas r1 , r2 . Pero estas races pueden ser de tres maneras
distintas:
a) Ambas son reales y distintas.
b) Ambas son reales e iguales (es decir, de multiplicidad dos).
c) Son ambas complejas
Cada uno de los casos los ilustraremos con ejemplos y luego los resumimos en teoremas de tal manera que
sea la receta para solucionar ecuaciones de recurrencia de este tipo, adicionalmente al final de la seccion
se generaliza las soluciones para una ecuacion de recurrencia de orden k.

Races reales y distintas


Para el primer caso, se tiene el siguiente ejemplo:

Ejemplo 4.2
Resolvamos la relacion de recurrencia an + an1 6an2 = 0 con n 2 y con condiciones iniciales: a0 = 1 y
a1 = 2. S an = c rn es solucion entonces se tiene:
an + an1 6an2 = 0
c rn + c rn1 6c rn2 = 0
c rn2 (r2 + r 6) = 0
r2 + r 6 = 0
(r + 3)(r 2) = 0
De esa manera r1 = 3 y r2 = 2, es decir, son reales y distintas. Por lo tanto an = c1 (3)n y an =
c2 (2n ) son soluciones de la ecuacion de recurrencia, note que son linealmente independientes entonces
una combinacion lineal de ellas tambien es solucion. Como sabemos que son linealmente independientes?,
porque primero ninguna es m
ultiplo de la otra y segundo si para k1 , k2 R se cumple k1 2n + k2 (3)n = 0
para todo n N , entonces k1 = k2 = 0 (esto se cumple por la primera razon, puede demostrarlo como
ejercicio si lo desea). De esa manera la solucion general de la ecuacion es:
an = c1 (3)n + c2 (2n )
Solo nos hace falta encontrar los valores de c1 y c2 , para eso usamos las condiciones iniciales a0 y a1 ,
entonces se tiene que:
57

Cartilla Elementos de Teora en la Computaci


on

Ecuaciones de recurrencia lineales y homog


eneas

a0 = 1 = c1 (3)0 + c2 (20 ) = c1 + c2
a1 = 2 = c1 (3)1 + c2 (21 ) = 3c1 + 2c2
Al resolver el sistema se obtiene que c1 = 0 y c2 = 1, de esa manera las solucion final es:
an = 2n .

Races reales e iguales


Las races de un polinomio caracterstico de grado dos pueden ser iguales y la manera de encontrar la
solucion de una ecuacion de recurrencia de segundo orden funciona ligeramente distinto a como vimos en
la subseccion anterior. Para este caso considere el siguiente ejemplo:

Ejemplo 4.3
Resolvamos la ecuacion de recurrencia an+2 = 4an+1 4an con n 0 y a0 = 1, a3 = 1. Como en el ejemplo
anterior la solucion es de la forma an = c rn , reemplazando y simplificando obtenemos el polinomio caracterstico r2 4r + 4 = 0 del cual se obtienen sus dos races son r = 2 (es decir, r tiene multiplicidad dos).
Entonces tiene por solucion an = c1 2n y an = c2 2n , pero a diferencia del ejemplo anterior la soluciones
no son linealmente independientes. De esa manera toca buscar otra solucion que sea linealmente de la otra
pero que utilice la raz encontrada, usemos por ejemplo an = n 2n , ahora demostremos que es una solucion
de la ecuacion de recurrencia:
an+2 = 4an+1 4an
(n + 2)(2n+2 ) = 4(n + 1)2n+2 4n2n
(n + 2)(2n+2 ) = 2(n + 1)2n+2 n2n+2
(n + 2)(2n+2 ) = (2n + 2 n)2n+2
(n + 2)(2n+2 ) = (n + 2)2n+2
La u
ltima igualdad claramente es cierta, entonces an = n2n s es solucion de la ecuacion y es linealmente
independiente de an = c1 2n , de esa manera la solucion general es (recuerde que cualquier m
ultiplo de una
solucion tambien es solucion):
an = c1 2n + c2 n 2n
Con las condiciones iniciales encontramos que c1 = 1 y c2 = 21 , as la solucion final es:
an = 2n + 21 n 2n = 2n + n 2n1 (n 0)

Races complejas
El u
ltimo caso, es que las races del polinomio caracterstico son n
umeros complejos. En este caso es
muy importante recordar el Teorema de Moivre sobre los n
umeros complejos:

Teorema 4.1
(cos() + i sin())n = cos(n ) + i sin(n ) (n 0)

58

Cartilla Elementos de Teora en la Computaci


on

Ecuaciones de recurrencia lineales y homog


eneas

Adicionalmente recordemos que un n


umero complejo es un punto en el plano cartesiano que se representa
com
unmente como z = x + iy,
pero
tambien se puede representar en terminos de cosenos y senos: z =

2
r(cos() + i sin()) donde r = x + y 2 y = tan1 ( xy ) para x 0 (cuando x = 0, claramente es o 2 o 3
2 ).
De esa manera se tiene que:
z n = rn (cos(n ) + i sin(n ) (n 0))
Ahora s, demos un ejemplo de como resolver ecuaciones de recurrencia con races complejas:

Ejemplo 4.4
Resolvamos al ecuacion de recurrencia an = 2(an1 an2 ) con n 2 y a0 = 1, a1 = 2. De la misma manera
como se ha hecho en los ejemplos anteriores an = c rn es solucion, por lo que obtenemos el polinomio
caracterstico r2 2r + 2 = 0 cuyas races son 1 + i y 1 i, es decir, races complejas. Por lo tanto las
soluciones del ecuacion son an = c1 (1 + i)n y an = c2 (1 i)n y como son linealmente independientes (por
que?) entonces la solucion general es:
an = c1 (1 i)n + c2 (1 + i)n
Pero ahora necesitamos calcular cuanto es (i + 1)n y (1 i)n , para esto utilizamos el teorema de Moivre y
la definicion de n
umero complejo:

n
(i + 1)n = [(2)(cos( 4 ) + i sin 4 )]n = (2)n (cos( n
4 ) + i sin 4 )
n
(1 i)n = [( 2)(cos( 4 ) i sin 4 )]n = ( 2)n (cos( n
4 ) i sin 4 )
Entonces, la form
ula general queda:

n
n
an = c1 ( 2)n (cos( n
)
+
i
sin
)
+
c

(
2)n (cos( n
2
4
4
4 ) + i sin 4 )
n
n
an = (2)n ((c1 + c2 ) cos( 4 ) + (c1 c2 )i sin 4 )
n
an = ( 2)n (k1 cos( n
4 ) + k2 sin 4 )
Con k1 = c1 + c2 y k2 = (c1 c2 )i, utilizando las condiciones iniciales y reemplanzodolas en la form
ula
encontramos que k1 = 1 y que k2 = 1, de esa manera la solucion final es:

n
an = ( 2)n (cos( n
4 ) + sin 4 ).

Ya terminamos de ver los tres distintos tipos de maneras en que las races del polinomio caracterstico
de una ecuacion de orden dos pueden usarse para encontrar la solucion de esta. Todo lo que hemos explicado
se puede extender de forma general para cualquier ecuacion de recurrencia de orden k, dado que en todos
los ejemplos lo que realmente se soluciona es el polinomio caracterstico de la relacion de recurrencia
involucrada y a partir de sus races se propone la solucion general de la ecuacion , aunque tambien hay
que resaltar que hay que tener en cuenta si las races son linealmente independientes o no y de acuerdo a
eso acomodar la solucion para que se puedan encontrar la combinacion lineal que solucione la ecuacion, ya
lo demas son manipulaciones algebraicas que junto con las condiciones de frontera permiten encontrar la
solucion final. A continuacion resumimos los pasos de como solucionar una ecuacion de recurrencia:

Teorema 4.2
Dada una ecuacion de recurrencia an de orden k con condiciones iniciales establecidas, los siguientes pasos
se realizan para encontrar la formula cerrada que la soluciona:
59

Cartilla Elementos de Teora en la Computaci


on

Ecuaciones de recurrencia lineales no Homog


eneas

a) Se encuentra el polinomio caracterstico con la solucion an = c rn .


b) Se encuentran las races del polinomio, se verifica que las races son todas reales y distintas, o si
algunas de ellas tienen una multiplicidad positiva o si son complejas (note que es posible que den
todos los casos al mismo tiempo, de esa manera hay que combinar las estrategias planteadas en los
ejemplos dados).
c) Se verifican que las soluciones sean linealmente independientes, de no hacerlo hay que volverlas
linealmente independientes para poder plantear la combinacion lineal an = c1 s1 + c2 s2 + . . . + ck sk ,
donde ci R y sk una solucion de la ecuacion.
d) Se consideran las condiciones iniciales y se encuentran los valores de las constantes ci de la solucion
general.
e) Se manipula algebraicamente para encontrar la solucion final de la ecuacion.

Secci
on 4.4: Ecuaciones de recurrencia lineales no Homog
eneas
En esta seccion vamos a explicar como resolver ecuaciones de recurrencia no homogeneas, recordemos
de la seccion anterior que es una ecuacion de recurrencia lineal de orden k no homogenea con k N, Ci 0
y (an ) una sucesion:
Cn an + Cn1 an1 + Cn2 an2 + . . . + Ck ank = f (n) (n k)
f (n) es cualquier cosa distinta de cero, ya sea una constante o un polinomio. Hay que resaltar que no todas
las ecuaciones no homogeneas se pueden resolver, razon por la cual vamos a ver metodos de acuerdo a la
forma de f (n).
Como primera aproximacion uno puede por sustitucion encontrar una formula para todos los f (i) s,
pero esta aproximacion es practica en ecuaciones de recurrencias de primer orden, por ejemplo considere
la ecuacion de recurrencia an an1 = f (n), si listamos algunos de sus elementos tendremos:
a1 = a0 + f (1)
a2 = a1 + f (2) = a0 + f (1) + f (2)
a3 = a2 + f (n) = a0 + f (1) + f (2) + f (3)
.
.
.
an = an1 + f (n) = a0 + f (1) + f (2) + f (3) + . . . + f (n) = a0 + ( i 1 i n f (i))
Si se conoce a que converge ( i 1 i n f (i)), se puede entonces resolver la ecuacion de recurrencia,
de lo contrario toca utilizar alg
un otro metodo.
La solucion de las ecuaciones lineales no homogeneas de orden k difiere de las soluciones de las ecuaciones homogeneas en que tiene una solucion particular, dicha solucion va a depender completamente de
60

Cartilla Elementos de Teora en la Computaci


on

Ecuaciones de recurrencia lineales no Homog


eneas

f (n). De esa manera si se desea solucionar una ecuacion de recurrencia an , la solucion general es de la
manera:
an = (an )h + (an )p
Donde (an )h es la solucion a la ecuacion homogenea del problema y (an )p es la solucion particular de
la ecuacion de acuerdo a f (n). As que en estos casos el trabajo es doble, primero hay que encontrar la
solucion de la version homogenea del problema y luego basandonos en lo que es f (n) encontrar la particular. Sin embargo, hay que tener cuidado cuando se escoge la solucion particular dado que esta debe ser
linealmente independiente de la solucion homogenea.
A continuacion se enuncian los teoremas que nos indican como resolver ecuaciones lineales no homogeneas de primer y segundo orden cuando f (n) = k rn :

Teorema 4.3
Considere la ecuacion de recurrencia lineal de primer orden:
Cn an + Cn1 an1 = k rn
Donde k es una constante y n 1, para este tipo de ecuaciones puede ocurrir al menos uno de los siguientes
casos:
1. Si an = c rn no es una solucion a la ecuacion homogenea asociada Cn an + Cn1 an1 = 0 entonces
(an )p = c rn con c una constante.
2. Si an = c rn es una solucion a la ecuacion homogenea asociada Cn an + Cn1 an1 = 0 entonces (an )p =
b n rn con b una constante, dado que hay que asegurar que ambas soluciones son linealmente
independientes.

Teorema 4.4
Considere la ecuacion de recurrencia lineal de segundo orden:
Cn an + Cn1 an1 + Cn2 an2 = k rn
Donde k es una constante y n 2, para este tipo de ecuaciones puede ocurrir al menos uno de los siguientes
casos:
a) (an )p = c rn , si dicha solucion no esta en (an )h (es decir, que no aparece en ninguno de los sumandos
de la solucion homogenea de la ecuacion de recurrencia homogenea asociada).
b) (an )p = b n rn , si an = c rn aparece en la solucion de (an )h .
c) (an )p = c n2 rn , si (an )p = bn rn aparece en la solucion de (an )h .

61

Cartilla Elementos de Teora en la Computaci


on

Ecuaciones de recurrencia lineales no Homog


eneas

Note que en ambos teoremas se tiene en cuenta la solucion del la ecuacion homogenea asociada para asegurar la independencia lineal. Ahora nos preguntamos como solucionar una ecuacion de recurrencia lineal
no homogenea cuyo orden es mayor a dos?; bueno para esto toca revisar los elementos que conforman f (n)
y combinar las distintas soluciones propuestas en la Tabla 4.1. A continuacion se explica en detalle como
solucionar una ecuacion lineal no homogenea de orden k.
Considere la siguiente ecuacion de recurrencia con coeficientes constantes: Cn an + Cn1 an1 + Cn2 an2 +
. . . + Ck ank = f (n) donde Cn , Cnk 0 y sea (an )h la parte homogenea de la solucion an :
a) Si f (n) es m
ultiplo de alguna de las constantes de la primera columna de la Tabla 4.1 y no es solucion de (an )h , entonces (an )p tiene la forma que se muestra en la segunda columna de la Tabla. (Las
constantes mencionadas en la segunda columna puede ser obtenidas reemplazando en la solucion propuesta las condiciones iniciales involucradas en la ecuacion de recurrencia que se esta solucionando).
b) Cuando f (n) es una suma de m
ultiplos constantes de los terminos como los de la primera columna de
la Tabla 4.1 y ninguno de esos terminos es solucion de (an )h , entonces (an )p es la suma de los terminos
correspondientes en la segunda columna de la Tabla 4.1. Por ejemplo, si f (n) = n2 +4 sin(3n) y ninguno
de los sumandos de f (n) aparece en (an )h entonces (an )p = (A2 n2 +A1 n+A0 )+(A sin(2n)+B cos(2n)).
c) Ahora, si alg
un sumando de f (n),llamemoslo fi (n), es un m
ultiplo constante de una solucion de
(an )h , toca multiplicar la solucion particular (ani )p correspondiente a fi (n) por la mnima potencia
de n, ns , para que ning
un sumando de ns fi (n) sea una solucion de (an )h , de esa manera ns (ani )p es
la parte correspondiente de (an )p .

Cuadro 4.1: Forma de f (n) vs la solucion (an )p


f (n)
(an )p
c constante
A, constante
n
A1 n + A0
2
n
A2 n2 + A1 n + A0
nt , t Z+
At nt + At1 nt1 + . . . + A1 n + A0
n
r , rR
Arn
sin(n)
A sin(n) + B cos(n)
cos(n)
A sin(n) + B cos(n)
t
n
n
nr
r (At nt + At1 nt1 + . . . + A1 n + A0 )
rn sin(n)
rn (A sin(n) + B cos(n))
n
r cos(n)
rn (A sin(n) + B cos(n))

El siguiente ejemplo se ilustra el metodo explicado:

Ejemplo 4.5
Considere la relacion de recurrencia no homogenea an+2 10an+1 + 21an = f (n) con n 0. La solucion de la
ecuacion homogenea asociada es (porque?):
(an )h = c1 (3n ) + c2 (7n )
62

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

para las constantes arbitrarias c1 , c2 .


En la Tabla 4.2 se muestran las soluciones particulares de la ecuacion de acuerdo a posibles definiciones
de f (n). De la Tabla 4.2 podemos ver que en las u
ltimas tres filas uno de los sumandos de f (n) aparece
Cuadro 4.2: Posibles valores de f (n) del Ejemplo 4.5
f (n)
5
3n2 2
7(11n )
31rn , r 3, 7
6(3n )
2(3n ) 8(9n )
4(3n ) 7(7n )

(an )p
A0
A3 n2 + A2 n + A1
A4 (11n )
A5 (rn )
A6 n(3n )
A7 n(3n ) + A8 (9n )
A9 n(3n ) + A9 n(7n )

en la solucion de (an )h , razon por la cual el sumando que aparece en la solucion homogenea en la solucion
particular se multiplica por n (pues es la mnima potencia de n que no esta en la solucion homogenea) la
solucion propuesta en la Tabla 4.1, pero si n apareciera en alguno de los sumandos de la solucion homogenea
entonces tocara multiplicar la solucion particular del sumando involucrado por n2 .

Secci
on 4.5: Ejercicios
1. Encuentre la ecuacion de recurrencia de las siguientes series numericas
a) 2,10,50,250,. . .
b) 1, 1/3, 1/9, 1/27. . .
c) 6, -18, 54, -162,. . .
d) 7, 14/5,28/25, 56/125, . . .
2. Encuentre la solucion general de las siguientes relaciones de recurrencia:
a) an+1 1,5an = 0, n 0.
b) 3an+1 4an = 0, n 0 y a1 = 5.
c) 2an 3an1 = 0, n 1 y a4 = 81.
d) 4an 4an1 = 0, n 1.
3. Si an ,n 0, es una solucion de la relacion de recurrencia an+1 can = 0 y a3 = 153/49, a5 =
1377/2401,cual es el valor de c?.
63

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

4. El n
umero de bacterias de un cultivo es 1000 (aproximadamente) y esa cantidad se incrementa un
250 por 100 cada 2 horas. Defina una relacion de recurrencia y encuentre la solucion respectiva para
determinar el n
umero de bacterias presentes despues de un da.
5. Si Laura invierte 100 dolares al 6 por ciento de interes compuesto trimestral. Cuantos meses debe
esperar para obtener el doble de lo que invirtio?. NOTA: Laura no puede retirar el dinero antes de
terminar el trimestre.
6. Carlos invirtio las ganancias de las acciones que recibio hace 15 a
nos en una cuenta que pagaba el
ocho por ciento de interes compuesto al trimestre. Si ahora su cuenta tiene 7218.27 dolares, cual fue
su inversion inicial?.
7. Encuentre el valor de a10 si a3n = 7a3n1 , n 1, a0 = 3.
8. Encuentre el valor de an , n 2, si 5nan + 2nan1 = 2an1 , n 3 y a3 = 30.
9. Demuestre que la definicion inductiva o ecuacion de recurrencia de los n
umeros de fibonacci Fn+2 =
Fn+1 + Fn , n 0, F0 = 0, F1 = 1 tiene como solucion:
n
n
1
1 5
1+ 5
Fn = [(
) (
) ]
2
2
5
10. Resuelva la ecuacion de recurrencia an = 2(an1 an2 ), n 2, a0 = 1, a1 = 2.
11. Encuentre la ecuacion de recurrencia para le n
umero de sucesiones binarias de longitud n que no
tienen ceros consecutivos.
12. Resuelva la siguiente relacion de recurrencia 2an+3 = an+2 + 2an+1 an , n 0, a0 = 0, a1 = 1, a2 = 2.
13. Resuelva la siguiente ecuacion de recurrencia an+2 = 4an+1 4an , n 0, a0 = 1, a1 = 3.
14. Resuelvanse las siguiente ecuaciones de recurrencia:
a) an = 5an1 + 6an2 , n 2, a0 = 1, a1 = 3.
b) 2an+2 11an+1 + 5an = 0, n 0, a0 = 2, a1 = 8.
c) 3an+1 = 2an + an1 = 0, n 1, a0 = 7, a1 = 3.
d) an+2 + an = 0, n 0, a0 = 0, a1 = 3.
e) an+2 + 4an = 0, n 0, a0 = a1 = 1.
f) an 6an1 + 9an2 = 0, n 2, a0 = 5, a1 = 12.
g) an + 2an1 + 2an2 = 0, n 2, a0 = 1, a1 = 3.
h) an = 7an1 10an2 , n 2, a0 = 3, a1 = 15.
i) 9an+2 + 12an+1 + 4an = 0, n 0, a0 = 1, a1 = 4.
j) an = 3an2 + 2an3 , n 3, a0 = 1, a1 = 3, a2 = 7.
15. Si a0 = 0, a1 = 1, a2 = 4, a3 = 37 cumplen la relacion de recurrencia an+2 + ban+1 + can = 0, n 0. Donde
b y c son constantes, encuentrese a solucion de an .
64

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

16. Encuentre y resuelva la relacion de recurrencia para encontrar el n


umero de formas de estacionar
motocicletas y automoviles en una fila de n espacios, si cada motocicleta necesita un espacio, mientras que una automovil necesita dos (en aparencia las motocicletas son iguales a los automoviles y
viceversa, y se quieren ocupar los n espacios).
17. Usando la solucion de la ecuacion de recurrencia de los n
umeros de fibonnaci demuestre que:

Fn+1 1 + 5
lm
=
n Fn
2
Este lmite se conoce como la razon dorada.
18. Encuentre y resuelva la ecuacion de recurrencia que permite contar el n
umero de sucesiones ternarias
(0, 1, 2) de n dgitos, sin ning
un par de ceros consecutivos.
19. Encuentre y resuelva la ecuacion de recurrencia que permite contar el n
umero de formas de aplicar
n fichas rojas, blancas, verdes,azules, de modo que no haya fichas azules consecutivas.
20. Resuelva la ecuacion de recurrencia a2n+2 5a2n+1 + 4a2n = 0, n 0,a0 = 4,a1 = 13.
21. Determinese las constantes b y c si an = c1 + c2 (7n ), n 0, es la solucion general de la relacion
an+2 + ban+1 + can = 0, n 0.
22. Paula pidio un prestamo de S cantidad de diner a pagar en T plazos. Si i es el interes del prestamo
por plazo, que pago (constante) P debe realizar al final de cada plazo?.
23. Para n 1, sea C un conjunto que contiene 2n n
umeros reales. Cuantas comparaciones deben efectuarse entre pares de n
umeros de C para determinar los elementos maximo y mnimo de C?.
24. Los registros ambientales muestran que en cierto lago la poblacion de una especie especfica de corales
aumenta en una tasa triple que la del a
no anterior. Se comienzan con 5000 corales y al a
no siguiente
hay 5500; se retiran 200 del lago para incrementar el n
umero en otros lagos. Al seguir quitando 200
corales al final de cada a
no, si an representa la poblacion de caracoles en el lago original despues de
n a
nos, hallese y resuelvase la relacion de recurrencia para an , n 0.
25. Resuelva las siguientes ecuaciones de recurrencia:
a) an+1 an = 2n + 3, n 0, a0 = 1.
b) an+1 an = 3n2 n, n 0, a0 = 3.
c) an+1 2an = 5, n 0, a0 = 1.
d) an+1 2an = 2n , n 0, a0 = 1.
26. Encuentre una ecuacion de recurrencia para deducir la form
ula de ni=0 i2 .
27.

a) Sean n rectas trazadas en el plano de manera que cada recta corte a las restantes, pero que
no hayan tres coincidentes. Para n 0, sea an la cuenta del n
umero de regines en que n rectas
dividen el plano. Encuentre y resuelva la relacion de recurrencia para an .
b) Para la situacion del apartado a), sea bn la cuenta del n
umero de regiones infinitas resultante,
encuentre y resuelva la relacion de recurrencia de bn .

65

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

28. El primero de enero, Pedro deposita 1000 dolares en una cuenta que paga el seis porciento de interes
compuesto mensual. Todos los primeros del mes, ingresa 200 dolares a su cuenta. Si hace lo mismo
durante cuatro a
nos siguientes, cuanto dinero habra en su centa exactamente cuatro a
nos despues de
abrirla?.
29. Resuelva la siguiente ecuacion de recurrencia an+2 6an+1 + 9an = 3(2n ) + 7(3n ), n 0, a0 = 1, a1 = 4.
30. La solucion general de la relacion de recurrencia an+2 + b1 an+1 + b2 an = b3 n + b4 , n 0, bi constante,
1 i 4, es c1 2n + c2 3n + n 7, halle los valores bi ,1 i 4.
31. Determine el n
umero de sucesiones cuaternarias (0, 1, 2, 3) de n dgitos , donde nunca haya un 3 a la
derecha de un cero.
32. Resuelva las siguientes ecuaciones de recurrencia:
a) a2n+2 5a2n+1 + 6a2n = 7n.
b) an + nan1 = n!, n 1, a0 = 1.
c) a2n 2an1 = 0, n 1, a0 = 2. Sugerencia: Tome como bn = log2 an , n 0.

66

Captulo 5: Teora de n
umeros

En este captulo se introducen los conceptos basicos de la teora de n


umeros, tales como las propiedades
generales de los naturales y enteros (en general, cualquier dominio integral), propiedades y definiciones de
los n
umeros primos y divisibilidad que incluyen temas como el maximo com
un divisor, el mnimo com
un
m
ultiplo y congruencias. El contenido de este captulo en su mayora se baso en los autores [4] y [3].
Al final del captulo el estudiante estara en la capacidad de poder demostrar afirmaciones sobre los
naturales y enteros utilizando los conceptos explicados, adicionalmente podra utilizar los resultados enunciados en problemas matematicos que as lo requieran.

Secci
on 5.1: Introducci
on
La teora de n
umeros estudia las propiedades de los enteros, las cuales ofrecen herramientas para
resolver muchos problemas matematicos. En especial problemas relacionados con los n
umeros primos y
divisibilidad (involucrados en muchos acertijos numericos), dado que sus aplicaciones abarcan desde el
analisis de algoritmos hasta la criptografa.
Desde muy peque
nos estamos acostumbrados a relacionar cantidades con n
umeros, expresiones como
me com una manzana o en clase tengo cuarenta estudiantes las solemos utilizar sin percatarnos que
realmente de lo que estamos hablando son de los n
umeros naturales o enteros positivos. Dado que nos
permite contar elementos de un conjunto particular (frutas o personas, en general cualquier cosa contable),
ese valor lo representamos como un n
umero natural y a partir del cual podemos sumar, restar, multiplicar y
dividir, dependiendo de lo que a partir de ah queramos calcular. Ese tipo de operaciones tienen una razon
de ser y podemos realizarlas porque existe una teora que nos ha demostrado que es la manera correcta de
hacerlo, en eso precisamente consiste este captulo.
La teora de n
umeros es un area de las matematicas que tiene muchos aficionados, dado que la mayora
de sus resultados a primera vista no son faciles de demostrar y requieren en muchos de los casos mucha
creatividad, al igual que el captulo de conteo, este tema requiere intuicion, practica y conocimiento de la
teora.

Secci
on 5.2: N
umeros Naturales
Los n
umeros naturales, llamados tambien enteros positivos son los que usamos para contar, por
ejemplo en n
umero que se llama cuatro nos permite decir cuatro palos, cuatro ni
nos, etc. El conjunto de
n
umeros naturales los denotamos como N y estan definidos como:
N = {0, 1, 2, 3, . . . , n, . . .}
Sabemos de captulos anteriores que los naturales cumplen con el principio de induccion el cual es resultado
de sus propiedades, que iremos mencionando a lo largo del captulo.

67

Cartilla Elementos de Teora en la Computaci


on

N
umeros Naturales

Para empezar resaltemos que en lo n


umeros naturales tenemos el concepto de igualdad y que manejamos indistintamente para comparar el total de elementos de al menos dos conjuntos (por ejemplo, si se
tienen tres manzanas y se tienen tres bananos, puedo decir que se tiene el mismo n
umero de manzanas y
de bananos). la igualdad entre n
umeros naturales tiene cuatro propiedades (axiomas):
a) Para a N siempre se tiene que a = a, es decir, la igualdad es una relacion reflexiva.
b) Para a, b N, si a = b entonces b = a, es decir, la igualdad es una relacion simetrica o conmutativa.
c) Para a, b, c N, si a = b y b = c entonces a = c, es decir, la igualdad es una relacion transitiva.
d) Para a, b N se tiene que o a = b o a b.
Ahora nos preguntamos que significa sumar dos n
umeros naturales, para eso supongamos que el total
de elementos de un conjunto A es a y que el total de elementos de un conjunto B es b, entonces el total
de elementos de ambos conjuntos resulta natural definirlo como a + b (dado que sera el total de elementos
de A B). Si seguimos con la misma estructura de pensamiento podemos obtener cuatro propiedades
(axiomas) para la adici
on de n
umeros naturales:
a) La suma de dos n
umeros naturales es un n
umero natural, es decir, la suma es una operacion cerrada
en los naturales (pues si se suman dos de ellos no dara algo fuera de estos).
b) Para a, b N, siempre se tiene que a+b = b+a, es decir, la suma es una relacion simetrica o conmutativa.
c) Para a, b N, si a = b entonces a + c = b + c, es decir, la adicion esta bien definida.
d) Para a, b, c N, siempre se tiene que a + (b + c) = (a + b) + c, es decir, la adicion es asociativa.
Ya se han definido las propiedades basicas de la igualdad y la suma, pero tambien solemos multiplicar
naturales. Para eso, considere b conjuntos y cada uno con c elementos, cuanto elementos se tienen en
total uniendo todos los conjuntos??, realmente es muy sencillo, lo que hacemos es sumar c elementos por
cada conjunto de los b que tenemos, es decir, sumamos c elementos b veces. Esto lo conocemos como la
multiplicaci
on o el producto de n
umeros naturales y se representa como a b o como a b. De la misma
manera como hicimos con la adicion se pueden obtener cuatro propiedades (axiomas) que cumple esta
operacion:
a) La multiplicacion de dos n
umeros naturales es un n
umero natural,es decir, la multiplicacion es una
operacion cerrada en los naturales (pues si se multiplican dos de ellos no dara algo fuera de estos).
b) Para a, b N, siempre se tiene que a b = b a, es decir, la multiplicacion es una relacion simetrica o
conmutativa.
c) Para a, b N, si a = b entonces a c = b c, es decir, la multiplicacion esta bien definida.
d) Para a, b, c N, siempre se tiene que a (b c) = (a b) c, es decir, la multiplicacion es asociativa.
Finalmente, existe una propiedad que incluye ambos procesos: la propiedad distributiva, la cual dice
que a (b + c) = a b + a c y (b + c) a = b a + c a.

68

Cartilla Elementos de Teora en la Computaci


on

N
umeros Naturales

5.2.1: Desigualdades y la propiedad de la cancelaci


on
La igualdad es una relacion que permite comparar dos n
umeros naturales (en este caso que sean
iguales), pero no es la u
nica que nos permite compararlos, tambien existe la relacion de mayor que y
menor que entre parejas de n
umeros naturales, dado que los naturales es un conjunto bien ordenado1 .
Decimos que para a, b N, a es mayor que b si se tiene que sumar un n
umero natural x N a b para que
se pueda obtener a, es decir a = b + x, esta relacion se representa como a > b (de igual manera se define
menor que y se representa como b < a). A continuacion se enuncian las propiedades que estas relaciones
cumplen (solo se enuncian las de la relacion mayor que , dado que la de menor que se pueden obtener
cambiando > por < ):
a) Una de las siguientes relaciones y solamente una debe cumplirse para a, b N: a < b, a = b, a > b. Esta
propiedad es com
unmente conocida como la tricotoma de los naturales.
b) Para a, b, c N, si a > b y b > c entonces a > c, es decir. la relacion > es transitiva.
c) Para a, b, c N, si a > b entonces a + c > b + c y a c > b c, es decir, la relacion > es monotona bajo
suma y producto.
Hasta el momento hemos definido las propiedades basicas de la suma, el producto, la igualdad y la
desigualdad, pero a
un no hemos mencionado la propiedad que permite eliminar terminos de una igualdad.
Sabemos a partir de la propiedad de la suma bien definida que si b = c entonces se tiene que c + a = b + a,
lo contrario a esta afirmacion es lo que se conoce como propiedad de la cancelaci
on, que se puede
resumir en lo siguiente:
a + b = a + c entonces b = c
En pocas palabras esta propiedad nos permite cancelar terminos que se encuentran en ambos lados de la
igualdad. Cabe resaltar que esta propiedad tambien vale para el producto, pero con la condicion adicional
que el elemento a cancelar sea distinto de cero (mas adelante definiremos que es el cero y porque se necesita
que el elemento a cancelar no tome ese valor):
a b = a c y a 0 entonces b = c.
5.2.2: Cero y resta
Ya se ha definido a > b para a, b N, que implica la existencia de un x N tal que a = b + x, de esa
manera se puede decir que x se puede calcular si a a se le resta b, esto es:
a = b + x a b = x.
Note que esto es posible definirlo, dado que por la propiedad de la cancelacion de la suma existe exactamente un n
umero x tal que cuando se le suma a b da a (suponga que exista otro x N tal que a = b + x
como a = a, entonces se tendra que b+x = b+x , luego x = x por la propiedad cancelativa). Adicionalmente
cabe resaltar que hasta el momento la resta solo se puede definir si a > b.
Ahora, es conveniente definir un n
umero cero, de la siguiente manera:
1

69

Un conjunto bien ordenado es aquel que me permite ordenar sus elementos bajo un concepto de mayor y menor.

Cartilla Elementos de Teora en la Computaci


on

N
umeros enteros

0+a=a+0=a
Esta definicion se conoce como la identidad aditiva para la suma de naturales, es decir, define el n
umero
natural que al sumarlo a cualquier otro , no lo altera. Ahora la pregunta sera si este n
umero es u
nico, lo
cual es claro por la propiedad cancelativa de la suma (como?). La unicidad del n
umero cero nos permite
definir un inverso aditivo de un n
umero natural a, este sera el n
umero tal que al sumarlo con a dara
cero, es decir:
Existe x N tal que a + x = 0.
Se puede demostrar que x es u
nico por lo que podemos representarlo de una sola manera, com
unmente se
representa como a, entonces la propiedad anterior se podra escribir como a + (a) = 0. Para demostrar
que dicho inverso es u
nico suponga que se tienen dos inversos aditivos para un natural a, llamelos x y x
y demostremos que estos son iguales. Como ambos son inversos aditivos entonces se tiene que a + x = 0 y
a + x = 0, pero recuerde que el cero es u
nico, es decir 0 = 0; entonces a + x = a + x , de esa manera con la
propiedad cancelativa de la suma se tendra que x = x .
Ya tenemos claro hasta ahora el papel del cero en la adicion, pero nos gustara saber que papel juega
en el producto, por ejemplo que dara b 0?, si lo vemos en terminos de conjuntos sera tener b conjuntos
con cero elementos, por lo que el total de elementos sera cero, entonces estaramos tentados a decir que
0 b = 0. Esto es facilmente demostrable a partir de los resultados que tenemos hasta ahora, dado que
tendramos que 0 + 0 = 0 (porque el cero es la identidad de la suma y ademas es un natural) y como el
producto esta bien definido se tendra que b (0 + 0) = b 0, distribuyendo dara b 0 + b 0 = b 0, pero la
identidad de la suma es u
nica de esa manera se tiene que b 0 = 0.
Al igual que en la suma, en el producto se tiene una identidad multiplicativa de tal manera que
cualquier n
umero natural multiplicado por esa identidad da el mismo n
umero, esta identidad es el n
umero
uno, es decir que a 1 = a. Esto lo podemos entender en terminos de conjuntos como hemos venido haciendo
anteriormente, para esto considere a conjuntos de un elemento, como hay un elemento para cada conjunto
entonces tenemos un elemento a veces, es decir en total tenemos a elementos.

Secci
on 5.3: N
umeros enteros
Si nos limitamos a los n
umeros naturales y al cero, la expresion a b tiene significado solo si b es igual
o menor que a. Esto es una restriccion que conviene eliminar, cosa que se logra introduciendo los n
umeros negativos o enteros negativos, estos n
umeros negativos seran todos los inversos aditivos de los naturales.
De esa manera el conjunto de los n
umeros enteros se define como:
Z = {. . . , n, . . . , 4, 3, 2, 1, 0, 1, 2, 3, 4, . . . , n, . . .}
Dicho de otra manera, los enteros es la union de los n
umeros negativos y los naturales. Estos n
umeros
cumplen un conjunto de propiedades similares a las que mencionamos en la seccion anterior; por ejemplo
se puede demostrar que (b) = (c) si y solamente si b = c y que (0) = 0, este u
ltimo es facil de mostrar
dado que se tiene que 0 + 0 = 0 (porque el cero es a su vez la identidad aditiva y un n
umero natural )
70

Cartilla Elementos de Teora en la Computaci


on

Dominios Integrales

y como el inverso aditivo es u


nico (en este caso el inverso aditivo del cero es (0)) entonces se tiene 0 = (0).
La mayora de las propiedades de los n
umeros negativos se puede obtener de las propiedades de los
n
umeros positivos y la existencia del inverso aditivo. Por ejemplo, se puede demostrar que la suma de
dos n
umeros negativos es un n
umero negativo (recuerde que un n
umero negativo es un n
umero natural
con el signo menos, es decir, para a N, a es un n
umero negativo), dicho de otra manera se tiene que
(a) + (b) = (a + b). La demostracion de la afirmacion anterior se sigue dado que a + b + a + b = 0 =
(a+b)(a+b) es cierta y entonces aplicando la ley asociativa y cancelativa se tiene que (a)+(b) = (a+b).
Mas propiedades de los enteros estan propuestos como ejercicios en la seccion de ejercicios del captulo.

Secci
on 5.4: Dominios Integrales
Los n
umeros naturales y los n
umeros enteros son un caso particular de dominios integrales, dado
que cumplen todos los axiomas de un dominio integral y tambien se pueden deducir todos los teoremas
que estos cumplen.
Un domino integral D es un conjunto de elementos de los cuales dos son el 0 y el 1, que se operan con
las operaciones binarias +, . Una de las propiedades primordiales de un dominio integral es que es cerrado
bajo + y , es decir, para cualesquiera a, b D se tiene que a + b D y a b D. Adicionalmente en un
dominio integral las propiedades de asociatividad, simetra, unidad aditiva y multiplicativa, inverso aditivo,
distributividad, cancelacion y resta son siempre ciertas para sus operaciones y elementos. Cabe resaltar
tambien que este tipo de estructuras matematicas tienen axiomas de orden definidos para comparar cada
par de sus elementos; si el estudiante quiere profundizar en este tema puede consultar [4], dado que en este
curso nos concentraremos en los n
umeros enteros y sus propiedades mas importantes, las cuales ya hemos
venido enunciando en las secciones anteriores.

Secci
on 5.5: Divisibilidad
La ecuacion 5 x = 10 tiene una solucion entera x = 2, pero 5 x = 11, no la tiene, es decir no existe un
entero que multiplicado por cinco de once. Si la ecuacion c x = b con c, b Z, tiene solucion entera entonces
decimos que b es divisible por c, de esa manera introducimos la relacion c b que simboliza la relacion b
es divisible por c, c divide a b y c es divisor de b , dicho de otra manera decimos que c b si existe un
d Z tal que c d = b. Note que el problema de divisibilidad es un problema nato de los n
umeros enteros,
porque tanto en los racionales 2 como en los reales 3 las ecuaciones c x = b siempre tienen solucion.
Uno de los primeros resultados que podemos tener de este nuevo operador se enuncia en el siguiente
teorema y cuya demostracion se muestra a modo de ejemplo como la tecnica que se suele usar para probar
teoremas relacionados con divisibilidad:

2
3

71

Son los n
umeros enteros unidos con los n
umero de la forma ab con a, b Z
Los n
umeros reales incluyen tanto los enteros, como los racionales y los irracionales.

Cartilla Elementos de Teora en la Computaci


on

Divisibilidad

Teorema 5.1
Si a b y a c entonces a b + c y a b c

Demostracion:
Sean a, b, c Z tal que a b y a c y mostremos que a b + c y a b c. Primero note que si a b es porque
existe un d1 Z tal que a d1 = b y si a c es porque existe un d2 Z tal que a d2 = c, de esa manera se
tiene que b + c = a d1 + a d2 = a (d1 + d2 ), es decir existe un entero (d1 + d2 es un entero) tal que a b + c.
Adicionalmente note que b c = (a d1 )(a d2 ) = a (a d1 d2 ) entonces tambien existe un entero (a d1 d2
es un entero) tal que a b c. De esa manera el Teorema 5.1 queda demostrado.

Los dos teoremas siguientes resumen las propiedades mas importantes del operador definido:

Teorema 5.2
Para cualquier par de n
umeros enteros a y b, las siguientes afirmaciones son equivalentes:
1. a b.
2. a b.
3. a b.
4. a b 4 .

El siguiente ejemplo ilustra como realizar unas de las equivalencias mencionadas en el teorema anterior,
las demas equivalencias se dejan como ejercicio al lector:

Ejemplo 5.1
Vamos a mostrar que a b a b, para empezar vamos a realizarlo por doble implicacion, es decir la
demostracion la vamos a descomponer en dos partes (dado que es una equivalencia):
a) a b a b.
b) a b a b.
Empecemos por la primera demostracion. Para esto suponga que a b, entonces existe un k Z tal que
b = ak. Como 1 = (1)(1) entonces se tiene que b = (1)(1)(ak), pero la multiplicacion es asociativa y
conmutativa entonces lo anterior se puede convertir en b = (a)(k). De esa manera se tiene que a b.
Para la segunda demostracion, suponga que a b, entonces existe un k Z tal que b = (a)k. Como la
multiplicacion es asociativa y conmutativa entonces se tiene que b = a(k), es decir que a b.

Teorema 5.3
Para enteros a, b y c:
4

72

a es el valor absoluto de a y est


a definido como a si a es negativo y a si a es positivo

Cartilla Elementos de Teora en la Computaci


on

Divisibilidad

1. 1a.
2. Si a =/ 0, entonces aa.
3. Si a 1 entonces a = 1 o a = 1.
4. Si b =/ 0 y ab, entonces a b.
5. Si a b y b a entonces a = b o a = b
6. Si a b y b c entonces a c.
7. Si ca, b, entonces c divide cualquier combinacion lineal entre a y b [una combinacion lineal entre a y
b es un n
umero de la forma xa + yb, con x, y enteros].

A manera de ejemplo, vamos a demostrar que si a 1 entonces a = 1 o a = 1:

Ejemplo 5.2
Vamos a demostrar que si a 1 entonces a = 1 o a = 1. Para esto suponga que a 1, entonces existe un
k Z tal que 1 = ak, para poder demostrar lo que necesitamos mostrar, debemos probar que k = 1 o que
k = 1 con a > 0. Pero vamos a proceder por contradiccion y vamos a suponer que k 1 k 1 , de esa
manaera tenemos tres casos para analizar:
1. k > 1: Multiplicando a en ambos lados de la desigualdad se tendra que ak > a, de esa manera a no
podra ser entero pues 1 > a > 0; contradiciendo de esa manera la hipotesis de que a Z.
2. 1 < k < 1: Como k Z entonces k = 0, de esa manera se tendra que 1 = ak = 0, lo cual no puede ser
cierto.
3. k < 1: Multiplicando a en ambos lados de la desigualdad se tendra que ak < a, de esa manera se
tendra que 1 < a; es decir que uno es menor que un n
umero negativo, lo cual no puede ser cierto.
De esa manera, como en cada uno de los casos posibles generados por la suposicion k 1 k 1, llegamos
a una contradiccion entonces necesariamente se tiene que tener k = 1 o que k = 1. Por lo tanto a = 1
o a = 1.

5.5.1: N
umeros Primos
Existe unos enteros positivos especiales, que son solo divisibles por uno o por ellos mismos, estos
enteros son conocidos como los n
umeros primos, y a los n
umeros enteros mayores que uno que no son
primos se les denomina n
umeros compuestos. De esa manera se pueden clasificar los n
umeros naturales en
tres categoras:
a) El n
umero uno.
b) Los n
umeros primos.
73

Cartilla Elementos de Teora en la Computaci


on

Divisibilidad

c) Los n
umeros compuestos.
Los primeros n
umeros primos son 2, 3, 5, 7, 11, 13, . . . a partir de los cuales podemos notar que su distribucion no es regular, es decir, no son ni consecutivos, ni la suma de los anteriores y no presentan ning
un
tipo de patron, razon por la cual son un tema de gran interes en la teora de n
umeros. Ademas la mayora
de resultados relacionados con este tipo de n
umeros requieren mucha creatividad e ingenio.
De igual manera el concepto de primo tambien se extiende a parejas de n
umeros, se dicen que dos
n
umeros son primos relativos si sus divisores comunes solo son el 1 y el 1. Por ejemplo 6 y 21 son primos
relativos entre s, mientras que 6 y 18 no lo son. En la siguiente seccion vamos a introducir el concepto de
maximo com
un divisor que nos permite relacionar de otra manera a grupos de n
umeros enteros.

5.5.2: M
aximo com
un divisor
Hasta ahora hemos visto cuando un entero divide a otro, que tipos de naturales hay, pero nos interesa
tambien las relaciones que tienen los n
umeros entre ellos mismos. Aunque ya mencionamos que algunos
de ellos son primos relativos, tambien cabe compararlos por sus divisores comunes, como por ejemplo el
maximo divisor que divide a dos n
umeros resulta una propiedad interesante de estudiar.
Entre un par o un conjunto de n
umeros se puede encontrar el m
aximo com
un divisor, cuya abreviacion es m.c.d.; por ejemplo, el maximo com
un divisor de 6 y 15 es 3, dado que 3 es el divisor mas grande
que comparten. Una notacion com
un para denotar el maximo com
un divisor de dos n
umeros enteros a y
b es (a, b), de esa manera el ejemplo anterior se puede reescribir como (6, 15) = 3. Aunque la anterior
definicion es mas bien intuitiva, la siguiente definicion es mas precisa y nos es mas facil de usar en las
demostraciones.

n 5.1
Definicio
Sean a, b Z y sea g N, entonces g se dice maximo com
un divisor de a y b si cumple las siguientes
propiedades:
a) g divide tanto a a y a b.
b) Cualquier n
umero que divida a a y a b tambien divide a g.

Note que la definicion anterior se puede generalizar para definir el maximo com
un divisor de un conjunto
de n
umeros enteros, adicionalmente observe que la definicion de primos relativos entre dos enteros a y b
se puede escribir como (a, b) = 1. Ahora la pregunta que surge es como se encuentra el maximo com
un
divisor de al menos dos n
umeros?, realmente es una tarea sencilla pero larga y tediosa, dado que para cada
uno de los n
umeros involucrados toca listar cada uno de sus divisores y encontrar el mas grande de ellos
(el n
umero de divisores para cualquier entero positivo es finito, pues son todos aquellos n
umeros que son
divisores y menores que el - los naturales estan bien ordenados-), pero y si el n
umero es muy grande?,
este puede tener muchos divisores y puede ser una tarea difcil. Existe un metodo mas breve y preciso,
este metodo lleva por nombre el algoritmo de divisi
on de Euclides, pero antes de introducir dicho
74

Cartilla Elementos de Teora en la Computaci


on

Divisibilidad

algoritmo primero debemos enunciar un teorema que nos dice como dividir dos n
umeros cuya division no
es exacta, dicho de otra manera el algoritmo que nos ense
nan de peque
nos cuando aprendemos a dividir
(encontrando el cociente y el residuo):

Teorema 5.4
Dados a, b enteros, con b no nulo, existe un u
nico par de enteros q y r tales que
a = bq + r

(0 r < b)

La definicion anterior nos dice que existe un u


nico cociente q y un u
nico residuo r de tal forma que a
se puede obtener a partir de estos dos elementos junto con b cuando la division no es exacta o cuando a no
es divisible por b (a b cuando r = 0). El algoritmo de Euclides es basado en el resultado anterior, dado que
repitiendo el proceso un n
umero finito de veces se puede encuentrar el maximo com
un divisor de ambos
n
umeros:

Teorema 5.5
Si a y b son enteros entonces para obtener el maximo com
un divisor se ejecuta el siguiente proceso:
a
b
r1
..
rk2

= bq + r1
0 r1 < b
= r1 q1 + r2
0 r2 < r1
= r2 q2 + r3
0 r3 < r2
...
...
= rk1 qk1 + rk 0 rk < rk1

Al final alguno de los residuos sera cero, llamemoslo rk y suponiendo que rk1 0 (si lo fuera entonces
nuestro residuo igual a cero sera este), rk1 es el maximo com
un divisor de a y b.

Note que el conjunto de los ri forman una cadena decreciente (ri+1 ri con i {1 . . . k 1}) de enteros
positivos, entonces siempre se va poder encontrar un k b tal que rk = 0, de esa manera es claro que
rk1 rk2 y si vamos reemplazando en las ecuaciones previas encontraremos que tanto a como b se pueden
escribir como m
ultiplo de rk , es decir rk a y rk b, adicionamente se tiene que rk divide a todos los
ri (en cada paso que se reemplaza en las ecuaciones previas de encuentra que cada ri se puede escribir
como m
ultiplo de rk ). Ilustremos con un ejemplo como funciona el algoritmo de euclides para encontrar el
maximo com
un divisor.

Ejemplo 5.3
Calculemos el maximo com
un divisor de (84, 30), utilizando el algoritmo de Euclides tenemos:
84 = 2(30) + 24
30 = 1(24) + 6
24 = 4(6) + 0
75

Cartilla Elementos de Teora en la Computaci


on

Divisibilidad

Entonces (84, 30) = 6. Ademas, de las ecuaciones anteriores obtenemos 6 = 30 24 = 30 (2(30) + 84) =
(3)30 84 y hemos escrito a 6 como la combinacion lineal 5 positiva entre 84 y 30.

Del ejemplo anterior logramos escribir el maximo com


un divisor en terminos de los n
umeros al cual se le
calculo el m.c.d., esto no solo se puede con el (84, 30), sino que siempre es posible hacerlo, tal como se
enuncia en el siguiente teorema:

Teorema 5.6
Sean a y b dos enteros diferentes de cero y r el menor entero positivo que podemos expresar de la forma :

ax + by = r
Con x y y enteros, entonces r es el m.c.d de a y b.

Es claro que el m.c.d se puede expresar siempre como combinacion lineal de a y de b, dado que se pueden encontrar enteros x, y con el algoritmo de Euclides (reemplazando igualdades). Lo difcil de demostrar
del teorema anterior es que la combinacion lineal mas peque
na de a y b sea el m.c.d, pero la demostracion
se le deja al lector como ejercicio.
Existen varias propiedades del maximo com
un divisor que estan como ejercicios al final del captulo, a
continuacion mencionamos dos de ellas que son consecuencia directa del Teorema 5.6:

Teorema 5.7
Si m divide a a b y (m, a) = 1 entonces m divide a b.
Demostracion:
Supongamos que m divide a a b y (m, a) = 1, y mostremos que m divide a b. Como (m, a) = 1 entonces por
el Teorema 5.6 se tiene que existen enteros x, y tal que 1 = mx + ay; dado que la multiplicacion esta bien
definida podemos multiplicar a ambos lados de la igualdad por b para obtener b = bmx + bay. Pero como m
divide a ab, entonces existe k Z tal que ab = mk, de esa manera obtenemos que b = bmx+mky = m(bx+ky).
Por lo tanto m divide a b.

Teorema 5.8
Si (m, a) = 1 y (m, b) = 1 entonces (m, a b) = 1.
Demostracion:
Se le deja al lector.
5

76

c se puede escribir como una combinaci


on lineal de a y b si existen enteros x, y tal que c = ax + by

Cartilla Elementos de Teora en la Computaci


on

Divisibilidad

Mnimo com
un m
ultiplo
Para comparar dos n
umeros usando sus divisores, el maximo com
un divisor no es el u
nico, tambien
existe el mnimo com
un m
ultiplo, cuya abreviacion mas com
un es m.c.m, y es igual al m
ultiplo o
n
umero positivo mas peque
no que divide un conjunto de n
umeros. Por ejemplo, el m.c.m de 1 y 6 es 6, y
entre 3 y 9 es 9.
Dicho en otras palabras, se dice que m es mnimo com
un m
ultiplo de dos enteros a, b si cumple:
1. m es m
ultiplo de a y b.
2. m divide a todo m
ultiplo com
un de a y b.
El mnimo com
un m
ultiplo se denota por m = [a, b] y esta muy relacionado con el maximo com
un
divisor que hemos venido mencionando, son tan cercanos que la siguiente afirmacion es cierta (se deja de
ejercicio al lector):
ab = [a, b](a, b)
5.5.3: Teorema fundamental de la aritm
etica
En esta seccion vamos a enunciar los teoremas mas importantes de los n
umeros primos. El resultado
siguiente lo que nos menciona es que que si un primo divide a un producto entonces no mas divide a uno
de los operandos de la multiplicacion:

Teorema 5.9
Para un primo p, p b c entonces p b o p c.
Demostracion:
Vamos a demostrar la afirmacion por contradiccion, para esto suponga que p b c, pero p no divide ni
a b, ni a c. De esa manera se tendra que (p, b) = 1 y (p, c) = 1, pero por el Teorema 5.8 tendramos que
(p, bc) = 1; pero esto contradice la suposicion de que p b c.

A partir de este teorema podemos demostrar el teorema fundamental de la aritm


etica, que nos
dice que cualquier n
umero compuesto se puede descomponer de manera u
nica en factores primos. La
demostracion de esta afirmacion se sigue por induccion sobre los factores de la descomposicion utilizando
de manera repetitiva el teorema anterior.

Teorema 5.10
Todo entero positivo n se puede escribir de manera u
nica como producto de primos:
n = p0 p1 . . . pm1 con p0 . . . pm1

Adicionalmente se puede demostrar que la descomposicion es u


nico salvo el ordenamiento de sus factores. Cabe resaltar que a partir de este teorema se demostro que existen infinitios n
umeros primos, dicha
demostracion fue realizada por Euclides en el a
no 325 a.c.
77

Cartilla Elementos de Teora en la Computaci


on

Divisibilidad

5.5.4: Congruencias
Cuando decimos la hora del da lo decimos como: son las 9 de la ma
nana o son las 3 de la tarde, es
decir, despues del medio da volvemos a decir las horas desde 1, es como si reiniciaramos nuestro contador
de horas pues de lo contrario en la tarde diramos son las 15 horas del da. De eso mismo se tratan las
congruencias, en el caso de las horas de da todos los m
ultiplo de 12 son cero, como ocurre cuando es el
medioda o la media noche (es nuestra hora cero).
Las congruencias consisten en contar n
umeros modulo alg
un otro n
umero, es decir, si contamos modulo
6, el 6, el 12, el 18 y en general cualquier m
ultiplo de 6 seran cero, de esa manera decimos que 6 y 12
son congruentes modulo 6, como tambien modulo 3. Decimos entonces que a es congruente a b m
odulo c
si a b es divisible por c.

n 5.2
Definicio

Dos enteros a, b son congruentes modulo m si m a b. Esta


relacion se representa como a =m b y lleva
por nombre congruencia y m se llama el modulo de la congruencia. a =m b se lee como a es congruente
modulo m a b o a y b son congruentes modulo m

Los siguientes ejemplos ilustran como demostrar afirmaciones sobre la congruecia:

Ejemplo 5.4
Demostrar que 15 =3 6.
Para demostrar que dicha congruencia es cierta tendramos que mostrar que 3 (15 6). Para esto note
que 15 6 = 9, como 9 = 3(3) entonces se tiene que 3 9; de esa manera se tiene la afirmacion que queriamos
mostrar.

Ejemplo 5.5
Demostrar que si 6 =2 4 entonces 63 =2 43 .
Primero hay que observar que 6 =2 4 porque 2 2. Ahora, para demostrar que 2 (63 43 ) hay que
notar que (6 4) (63 43 ) dado que 216 64 = 76(6 4) y como tenemos que 2 (6 4) entonces por la
transitividad de la division se tendra que 2 (63 43 ), es decir que 63 =2 43 .

La congruencia se puede ver como un tipo especial de igualdad, dado que dice que dos n
umeros son
iguales modulo otro n
umero (dicho modulo puede ser tambien alguno de los n
umeros involucrados en la
congruencia), razon por la cual uno pensara que cumple las mismas propiedades que la igualdad aritmetica.
Sin embargo, el siguiente toerema enuncia las propiedades mas importantes que esta relacion cumple, donde
podemos ver que algunas son semejantes al de la igualdad aritmetica pero hay otras donde se necesitan
unas condiciones extras para que se cumplan:

Teorema 5.11
Para a, b, m, c Z:
78

Cartilla Elementos de Teora en la Computaci


on

Divisibilidad

a) a =m b a mod m = b mod m, con mod como simbolo del modulo.


b) a =m b a + c =m b + c.
c) b =m c b =m c.
d) a =m b a c =m b c.
e) a =m b an =m bn .
f) (c, m) = 1 (a c =m b c a =m b).
g) a c =mc b c a =m c con c 0
h) (c, m) = 1 entonces existe un entero x tal que c x =m b.
i) (c, m) = 1 (c x =m b c y =m b x =m y).

Cabe resaltar que no se debe confundir =m con =, dado que ambas relaciones por definicion son diferentes
y cumplen propiedades diferentes aunque compartan algunas. Por ejemplo, sera interesante preguntarnos
si =m es una relacion de equivalencia tal como lo es la igualdad, pero esto lo dejamos como ejercicio en el
siguiente captulo.
El siguiente ejemplo muestra una de las propiedades enunciadas en el teorema anterior, de tal manera
que el estudiante conozca la manera tpica de demostrar este tipo de afirmaciones:

Ejemplo 5.6
Demostrar que a =m b a + c =m b + c.
Dado que es una equivalencia lo que tenemos que mostrar, entonces vamos a realizarla utilizando
implicacion mutua, es decir que nuestra demostracion se parte en las siguientes dos demostraciones:
1. a =m b a + c =m b + c.
2. a + c =m b + c a =m b.
Para demostrar a), vamos a suponer que a =m b y mostremos que a+c =m b+c. Para que a+c =m b+c se tiene
que demostrar que m ((a + c) (b + c)), de esa manera note que (a + c) (b + c) = a b; pero como tenemos
por hipotesis que a =m b, entonces m (ab). Entonces se tiene que m ((a+c)(b+c)), es decir, a+c =m b+c .
Par demostrar b), supongamos que a+c =m b+c y mostremos que a =m b. Al igual que en la demostracion
anterior (a + c) (b + c) = a b, pero como tenemos que m ((a + c) (b + c)) (por hipotesis) entonces
obtenemos que m (a b), es decir, a =m b.

79

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

Secci
on 5.6: Ejercicios
1. Demuestre las siguientes propiedades sobre los n
umeros enteros, sean a, b, c, d, x, y, z Z:
a) a 0 = 0.
b) a + z = a si y solamente si z = 0.
c) a b = 0 entonces a = 0 o b = 0.
d) x + a = 0 y y + a = 0 entonces x = y.
e) x + a = 0 entonces x = a.
f) a = b es lo mismo que decir que a = b.
g) (a) = a.
h) 0 = 0.
i) (a + b) = (a) + (b).
j) (a) b = a (b).
k) a (b) = (a b).
l) (a)(b) = ab.
m) a(b + c) = ab + ac.
n) (a b)(c d) = (ac + bd) (ad bc).
o) (a b)c = ac bc.
2. Demuestre las siguientes propiedes de operador mayor y menor en los enterios, sean a, b, c, d, x, y, z Z:
a) a < b y b < c entonces a < c.
b) a b y b < c entonces a < c.
c) a < b y b c entonces a < c.
d) a b y b c entonces a c.
e) a < b si y solamente si a + d < b + d.
f) Si d > 0 entonces decir que a < b es lo mismo que decir que ad < b d.
g) a < b o a > b o a = b, pero no se pueden cumplir dos al tiempo.
h) a b y b a entonces a = b.
i) a a.
3. Demuestre los Teoremas 5.2, 5.3, 5.8, 5.10, 5.11.
4. Demuestre que Si x = y + z y si a divide a dos de ellos entonces a divide al n
umero restante.
5. Demuestre que si a b y a c entonces a cx + by, para x, y Z.
6. Demuestre que si a bi , i {1, . . . , n}, entonces a b1 x1 + b2 x2 + . . . + bn xn , para xi Z con i {1, . . . , n}.
80

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

7. Demuestre que si n es un entero compuesto encontes existe un primo p talque p n.


8. Demuestre que hay infinitos n
umeros primos.
9. Demuestre que para p, q Z primos, entonces siempre se tiene que p q si y solamente si p = q.
10. Si a bc sera que a b o a c?.
11. Demuestre que para a, b Z+ , si b a y b a + 2 entonces b = 1 o b = 2.
12. Demuestre que para n Z + e impar entonces se tiene que 8 n2 1.
13. Demuetre que para a, b Z+ impares se tiene que 2 a2 + b2 pero que cuatro no divide a a2 + b2 .

14. Demuestre que para n Z + y compuesto existe un primo p tal que p n y p < n.
15. Sean n Z+ , con n = rk 10k + . . . + r2 102 + r1 10 + r0 (la representacion en base 10 de n). Demuestre
que:
a) 2 n si y solamente si 2 r0 .
b) 4 n si y solamente si 4 r1 10 + r0 .
c) 8 n si y solamente si 8 r2 102 + r1 10 + r0 .
16. Demuestre que para a, x, y Z, si a 0 y ax = ay entonces x = y.
17. Si a, b, c Z+ , la ecuacion ax + by = c tiene solucion entera x = x0 y y = y0 , si y solamente si (a, b) c.
18. Para cada par a, b Z+ , calcule (a, b) y expreselo como combinacion lineal de a, b.
a) 231,1820.
b) 1369,2597.
c) 2689,4001.
d) 7982,7083.
19. Calcule el mnimo com
un m
ultiplo de todos los literales del punto anterior.
20. Calcule (n, n + 1) y [n, n + 1].
21. Para a, b Z+ y c, d Z. Que que se puede decir sobre (a, b) si:
a) as + bt = 2.
b) as + bt = 4.
c) as + bt = 3.
d) as + bt = 6.
22. Demuestre que para a, b Z+ y d = (a, b) entonces (a d, b d) = 1.
23. Demuestre que para a, b, n Z+ se tiene que (na, nb) = n(a, b).
81

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

24. Demuestre que para a, b, c Z+ con (a, b) = 1 y si se tiene que a c y b c entonces ab c. Sera que se
tiene la conclusion anterior si (a, b) 1?.
25. Demuestre que si a, b Z si (a, b) = 1 entonces (a b, a + b) = 1 o (a b, a + b) = 2.
26. Demuestre que para a, b, c Z+ si (a, b) = 1 y si a bc entonces a c
27. Juan gasto 249 dolares en juguetes para sus hijos de sus empleados. Para cada ni
na compro una
mu
neca de 3.30 dolares, mientras que para cada ni
no compro un juego de soldaditos de 2.90 dolares.
Cuantos compro de cada tipo?.
28. Demuestre que para a, b, c Z+ con c = [a, b]. Si d es un m
ultiplo com
un de a y b, entonces c d.
29. Demuestre que para a, b Z+ entonces ab = [a, b](a, b).
30. Escriba los siguientes n
umeros compuestos como producto de primos:
a) 148600.
b) 7114800.
c) 7882875.
31. Demuestre que para p primo, si p ab entonces p a o p b.
32. Demuestre que para p primo, si p a1 a2 a3 . . . an entonces p ai para alg
un i 1, . . . , n.
33. Para n Z+ , se incluye la funcion Z+ Z, donde (n) = n
umero de divisores positivos de n. Por
ejemplo (2) = 2, (3) = 2, (4) = 3. Como se puede determinar (n) para cualquier n Z+ .
34. Demuestre que el siguiente algoritmo para calcular el maximo com
un div isor es correcto:
{Q 0 X O Y }
x, k = X, Y ;
{P (x, y) = (X, Y ) 0 x 0 y}
do ky 0 x, y = y, x mod y od
{R (X, Y ) = x}
35. Demuestre que si ar =m br y d = (m, r) entonces a = md b.
36. Demuestre que si f (x) es un poliomio en x con coeficientes enteros entonces a =m b implica que
f (a) =m f (b).
37. Soluciones las siguientes ecuaciones tomando a b = 7, 11, 12.
a) 5 + x =b 3.
b) 5x =b 13.
c) 4x =b 13.
En caso de que una de las ecuaciones no tenga solucion, explique claramente porque no la tiene.
82

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

38. Sea x =a m, x =b m, demuestre que si (a, b) = 1 entonces se tiene que x =ab m. Cual sera su conclusion
si (a, b) > 1?.
39. Como realizara el siguiente truco?, pidale a un amigo que piense en un n
umero, y que forme otro
intercambiando los dgitos. Despues debe restar el n
umero menor del mayor y decirle todos los dgitos
de la diferencia menos uno de ellos, se
nale entonces el faltante. Por ejemplo, su amigo puede escoger
57689 en intercambia los dgitos para obtener 98567 y al restar obtiene 40878, su amigo le dice los
dgitos 0, 4, 8, 8, y usted debe contestar que el faltante es 7.

83

Cartilla Elementos de Teora en la Computaci


on

84

Ejercicios

Captulo 6: Relaciones y Funciones

En este captulo se introducen los conceptos basicos de la teora de las relaciones tales como su definicion, los distintos tipos de relaciones, su propiedades mas importantes y su aplicacion en la computacion
y la programacion.
El contenido de este captulo se baso en su mayora de los autores [4], [2] y [1].

Secci
on 6.1: Introducci
on
Continuamente nos encontramos con todo tipo de relaciones entre los objetos, eventos y situaciones
que nos rodean. Encontramos relaciones familiares como padre e hijo, relaciones de objeto como teclado y
computador, y de esa manera encontramos muchos ejemplo mas. Las relaciones se utilizan muy a menudo
en matematicas y en computacion, dado que permite agrupar elementos que tienen caractersticas particulares y que tienen alg
un tipo de relacion ya sea de causa y efecto, de pertenencia, de contenencia, entre
otras (realmente existen muchos tipos de relaciones).
La teora de relaciones que veremos en este captulo abarca temas como producto cruz (la manera mas
simple de ver una relacion), relaciones de equivalencia y funciones. De cada uno de los temas abordados
veremos sus propiedades mas importantes con algunos ejemplos que dejen claro los conceptos que cada uno
de estos representa y mostrar algunas de sus aplicaciones en computacion, programacion y matematicas.
El captulo ira introduciendo gradualmente los conceptos asociados a la teora de las relaciones, empezando con la definicion producto cruz entre conjuntos, las operaciones que este cumple y como esta relacionado con la teora de las relaciones, se enunciaran propiedades y conceptos que aplica a cualquier
tipo de relacion para finalmente introducir dos tipos especiales de relaciones: relaciones de equivalencia y
funciones, para las cuales se mencionan las propiedades y resultados mas importantes.

Secci
on 6.2: Relaciones
6.2.1: Tuplas y producto cruz
La manera mas sencilla de representar una relacion es por medio de una tupla. Una tupla es una notacion matematica que permite representar una relacion como una coordenada, por ejemplo un punto en
el eje cartesiano se representa por una 2-tupla (x, y), donde x es la ubicacion horizontal del punto y y es
la ubicacion vertical. De esa manera cuando nos dicen el punto (1, 2) sabemos que para ubicarlo en el eje
cartesiano tenemos que movernos a la derecha una unidad (desde el punto cero) sobre el eje horizontal
y luego movernos dos unidades hacia arriba sobre el eje vertical. Nos preguntaremos porque este tipo de
coordenadas la llamamos una 2-tupla, esto es porque la tupla consiste de dos elementos (x y y), dado que
pueden existir tuplas de n elementos (n N), por ejemplo si tratamos de representar la relacion de abuelo,
padre e hijo la podemos usar una 3-tupla (a, p, h), es decir, si se tiene (Fernando, Mario, Alicia) sera lo
mismo quer decir que Fernado es el papa de Mario que es papa de Alicia o lo que lo mismo Fernando es el
85

Cartilla Elementos de Teora en la Computaci


on

Relaciones

abuelo de Alicia.
Ya entendiendo como se representan las relaciones como tuplas, definimos de manera mas formal que
es una 2-tupla o un par ordenado.

n 6.1 (Pareja Ordenada)


Definicio
a, b = {{b}, {b, a}}

Su definicion al principio no es nada intuitiva, pero al final del captulo se deja un ejercicio donde le permitira explicar porque la definicion de una tupla en terminos de conjuntos es de esa manera y no de otra.
Al igual que en herramientas de logica computacional (el curso anterior) en la teora de las relaciones existen axiomas y teoremas que permiten utilizar un sistema deductivo para demostrar resultados o
propiedades de esta. Para empezar enunciaremos el primer axioma:

Axioma 6.1 (Axioma de igualdad)


a, b = a , b a = a b = b

Este axioma nos permite comparar dos 2-tuplas de tal forma que podemos decir si estas son iguales o no.
Producto Cruz
Ahora, introduciremos el concepto de producto cruz o producto cartesiano S T de dos conjuntos S,
T . El producto cruz de S y T es el conjunto de todas las parejas a, b tal que a S y b T , dicho de otra
forma:

Axioma 6.2
S T = {a, b a S b T a, b}

La definicion anterior se puede ver mas claramente con el siguente ejemplo. El conjunto A = {1, 1, 1, 2}
es el conjunto generado por el producto cruz entre los siguientes conjuntos S = {1} y T = {1, 2}, dado que
todas las posibles parejas ordenadas que se pueden generar con la primera coordenada en el conjunto S y la
segunda coordenada con el conjunto T son todas las parejas que estan en A. Esto se puede comparar con la
propiedad de distributividad de la suma sobre la multiplicacion, dado que se distribuyen los elementos del
primer conjunto sobre los del segundo conjunto para generar todas las parejas que conforman el producto
cruz, siguiente esa estructura de pensamiento que conjunto dara si hicieramos Z Z?.
El producto cruz de dos conjuntos tiene varias propiedades, por ejemplo tenemos la propiedad de
pertenencia, la cual nos permite decir si una pareja ordenada esta o no esta en el producto cruz de dos
conjuntos:
x, y S T x S y T
Otras propiedades que tiene es la distributividad sobre la union, interseccion y diferencia de conjuntos,
monotona sobre la contenencia, entre otras.(Ver pag 266 de [4] o ver los ejercicios del captulo)
86

Cartilla Elementos de Teora en la Computaci


on

Relaciones

A continuacion mostramos una demostracion de una de las propiedades del producto cruz:

Ejemplo 6.1
Demostremos una distributividad del producto cruz sobre la union:
S (T V ) = (S T ) (S V )
Iniciamos de la parte izquierda y tenemos que llegar a la parte derecha de la formula.

=
=
=
=
=
=

S (T V )
Usando el axioma de producto cruz
{a, ba S b (T V ) a, b}
Definicion de union
{a, ba S (b T b V ) a, b}
Distributividad del / en el cuerpo
{a, b(a S b T ) (a S b V )) a, b}
Por es axioma de pertenencia del producto cruz: a, b S T a S b T , la aplicamos dos veces
{a, b(a, b S T ) (a, b S V )) a, b}
Definicion de union
{a, b(a, b S T ) (a, b S V )) a, b}
Usando el axioma de producto cruz, de nuevo para llegar al resultado que queremos
(S T ) (S V )

Basado en la demostracion trate de demostrar la otra distribucion del producto cruz sobre la union:
(S T ) V = (S V ) (T V )

Las propiedades del producto cruz son bastante intuitivas, pero su demostracion se basa tanto en propiedades y definiciones de la teora de conjuntos como en calculo proposicional y de predicados, adicionalmente
contempla las definiciones propias del producto cruz. Por ejemplo el teorema S = S T = T S = ,
es bastante claro por que si trato de operar un conjunto con el conjunto vaco, no tendra ning
un nuevo
elemento, es decir, vaco (es como cuando multiplicamos un n
umero por cero). Note que para demostrar ese
teorema se necesita entender que es el conjunto vaco, como es la igualdad de conjuntos y como se obtiene el
producto cruz de dos conjuntos, adicionalmente se tiene que usar el hecho que uno de los conjunto del producto cruz es vaco (usando la tecnica de demostracion de suponer el antecedente ) cuando se quiere operar
A continuacion mostramos la demostracion con mas detalle para ilustrar lo antes mencionado.

Ejemplo 6.2
Demostremos S = S T = T S = . Para esto supongamos el antecedente como verdadero, dicho de
87

Cartilla Elementos de Teora en la Computaci


on

Relaciones

otra manera suponga que S = .

=
=
=
=

S T
Axioma del producto cruz
{s, ts S t T s, t}
Como S = , entonces s S f also
{s, tf also t T s, t}
Sabemos que f alse q f alse
{s, tf also s, t}
Como el cuerpo del conjunto es falso, entonces el conjunto tiene que ser el conjunto vaco

En el u
ltimo paso de la demostracion vale la pena resaltar que el conjunto es vaco porque ning
un elemento
cumple el cuerpo del conjunto.

Sera que el producto cruz es conmutativo (S T ) y asociativo S (T V ) = (S T ) V ? que otras


propiedades tendra?, en los ejercicios del captulo podra responder a estas preguntas cuando trate de demostrar dichas propiedades.
Los conceptos vistos hasta ahora de tuplas o n-tuplas y el producto cruz se aplican mucho con bases
de datos, por ejemplo, cada fila de una tabla se modela como una n-tupla, donde en cada posicion va cada
uno de los datos de las columnas de la tabla, de igual manera en programacion el manejo de arreglos y
vectores para agrupar la informacion y poder manipularla mas facilmente es otro de los grandes ejemplos de
esta teora. Adicionalmente, las operaciones entre tablas de bases de datos se modela y funciona mediante
el producto cruz de conjuntos, porque muchas de las veces se necesitan relacionar tablas para obtener
informacion adicional a lo que tiene la tabla original. En fin, hay muchos usos en computacion y en otras
areas del conocimiento que hacen de esta teora una herramienta u
til en las ciencias aplicadas.
6.2.2: Operaciones y relaciones
Una relacion se puede modelar como un conjunto de tuplas que estan contenidas en un producto cruz
de distintos conjuntos (realmente de los conjuntos que estan involucrados en esa relacion) o lo que es lo
mismo una relacion es un subconjunto de un producto cruz de conjuntos B1 , B2 , . . . , Bn . En cambio una
relacion binaria es un caso particular de una relacion, porque solo contempla las tuplas de longitud dos o
2-tuplas, este tipo de relaciones pueden ser un subconjunto de B C o simplemente de B B, esta u
ltima
simplemente se llama una relacion en B. Cabe resaltar que en esta seccion solo contemplaremos relaciones
binarias1 , de esa manera cuando nos referimos a una relacion sera una relacion binaria.
Un ejemplo de una relacion es la relacion de en los naturales, dado que esta la podemos representar
como 2-tuplas de la siguietne forma:
{0, 1, 0, 2, 0, 3, . . . 1, 2, . . . 2, 3, . . . , i, j, . . .} donde i, j i j
1

Note que las propiedades y resultados que veamos son facilmente extendibles a relaciones narias, por ejemplo, podriamos
usar inducci
on

88

Cartilla Elementos de Teora en la Computaci


on

Relaciones

Como el conjunto anterior es infinito, es mas facil describirlo por compresion de conjuntos:
{i, j Nj i 0 i, j}
Realmente existen muchas relaciones en las matematicas que uno puede identificar, como por ejemplo
raiz(b) = {b, c Rc = b2 b, c} y predecesor(b) = {b Zb 1, b}. De esa manera uno podra inventarse
cualquier tipo de relacion y modelarla como un conjunto de 2-tuplas que cumplen ciertas condiciones.
Hay varias maneras de escribir la pertenencia de una tupla a una relacion, en el caso de la relacion ,
estamos acostumbrados a escribir a b la cual se hace verdad si a es menor que b, como es el caso de 1 2,
pero para 5 3 se hace falsa. Otra manera de escribirla es a, b , dado que una relacion es realmente
un conjunto que contiene parejas ordenadas, ademas esta manera de expresarlas ofrece mas herramientas
cuando hay que realizar demostraciones relacionadas con esta teora. De forma general, si es un relacion
entonces una elemento que pertenece de una relacion se puede escribir de las siguientes maneras:
a, b o a b
Como se dijo antes, la primera notacion ve a una relacion como un conjunto de parejas, la segunda ve la
relacion como una funcion booleana que relaciona el primero operando con el segundo y se puede afirmar
si es cierta o falsa tal relacion.
En las relaciones existen dos conceptos de vital importancia, el dominio y el rango. El dominio son
todos los elementos que pueden estar en la primera coordenada de las parejas que conforman la relacion,
mientras que el rango son todos los elementos que pueden ir en la segunda coordenada. Mas formalmente
lo podemos escribir de la siguiente manera.

n 6.2
Definicio
Sea una relacion en B C, es decir, B C:
Dom. = {b B (c b c)}.
Ran. = {c C (b b c)}.

Note que Dom. no necesariamente es todo B y el Ran. tampoco es necesariamente todo C. Por ejemplo,
suponga que B y C son el conjunto de las personas y que es la relacion:
a b a es padre de b y b tiene cancer
entonces Dom. son todas los hombres que tienen hijos que sufren cancer y Ran. son todos los ni
nos
que tiene cancer, es claro que no son todas las personas ni de B ni de C.

Operaciones sobre las relaciones


Al igual que en conjuntos tenemos operaciones con los cuales podemos crear nuevos conjuntos, en la
relaciones ocurre lo mismo (porque son conjunto de parejas ordenadas). En esta seccion vamos a enunciar
89

Cartilla Elementos de Teora en la Computaci


on

Relaciones

las operaciones mas utilizadas y algunas de sus propiedades.


Suponga que y son relaciones sobre B C, entonces , , y c son relaciones sobre B C.
Adicionalmente, estas relaciones tienen una operacion muy importante que se conoce como la inversa de
la relacion, la cual definimos a continuacion:

n 6.3
Definicio
La inversa 1 de una relacion en B C esta definida por :
c, b 1 b, c
para todo b B y c C

Para ilustrar este operador, suponga que es la relacion padre, entonces la relacion 1 es la relacion
hijo, dado que si se tiene a b, a es padre de b entonces se tendra que b es hijo de a, es decir que b 1 a.
En el siguiente teorema enunciamos las propiedades mas importantes que este operador tiene, pues
este juega un rol fundamental en la teora de las relaciones:

Teorema 6.1
Sean y relaciones:
1. Dom.1 = Ran..
2. Ran.1 = Dom..
3. Si es una relacion en B C, entonces 1 es una relacion en C B.
4. (1 )1 = .
5. 1 1 .

Cada uno de las propiedades enunciadas en el teorema anterior son resultados inmediatos de la definicion
6.3 de inversa de una relacion, el siguiente ejemplo ilustra la demostracion de unas de las afirmaciones del
teorema, las demas se le dejan de ejercicios al lector:

Ejemplo 6.3
Demostrar que (1 )1 = .
Para poder mostrar que dos relaciones son iguales, toca demostrar que cada una contiene a la otra,
dado que estas son conjuntos de 2-tuplas. De esa manera nuestra demostracion se conforma de dos partes:
a) (1 )1 .
b) (1 )1 .
90

Cartilla Elementos de Teora en la Computaci


on

Relaciones

Para demostrar a) tome una pareja ordenada a, b en 1 )1 y demostremos que dicha pareja esta en
.
a, b (1 )1
=
Definicion de inversa
b, a 1
=
Definicion de inversa
b, a
Note que la demostracion de b) es la misma que a) pero iniciando desde el final de dicha demostracion.

Ahora, vamos a definir la u


ltima operacion que se puede realizar entre relaciones. Esta propiedad se
conoce como el producto, pero antes de definirlo formalmente cabe resaltar que para poder multiplicar
dos relaciones se debe tener que el conjunto de la segunda coordenada de la primera relacion debe ser el
mismo conjunto de la primera coordenada de la segunda relacion. Dicho en otras palabras, sean B C
y C D, el producto de con se denota como y esta definido de la siguiente manera:
b( )d (c b c d)
La definicion en pocas palabras dice que si b esta relacionado con d por medio del producto de las relaciones
es que existe un c en el conjunto compartido en sus parejas que los relaciona, observe que para que esto
suceda se debe tener que Dom. Ran..
Para ilustrar el significado del producto de relaciones, suponga que y son la relacion padre, entonces
si decimos que b( )d, es porque existe un c que es hijo de b y que es padre de d, es decir b es el abuelo
de d. En el siguiente teorema se enuncian las principales propiedades que este operador cumple:

Teorema 6.2
Sean , , relaciones:
1. Asociatividad: ( ) ( ) .
2. Distribituvidad de sobre [1]: ( ) = ( ) ( ).
3. Distribituvidad de sobre [2]: ( ) = ( ) ( ).
4. Distribituvidad de sobre [1]: ( ) ( ) ( ).
5. Distribituvidad de sobre [2]: ( ) ( ) ( ).

En el siguiente ejemplo demostramos la asociatividad del producto, pero las demas propiedades se le dejan
de ejercicio al lector:
91

Cartilla Elementos de Teora en la Computaci


on

Relaciones

Ejemplo 6.4
Por el teorema de extensionabilidad de conjuntos, es suficiente con que mostremos la propiedad para
elementos arbitrarios del la relacion producto. De esa manera sea a, d ( ) entonces:

=
=
=
=

a ( )d
Definicion del producto
(b a b b( )d)
Definicion del producto
(b, c a b b c c d)
Definicion del producto
(b, c a c c d)
Definicion del producto
a( ) d

de relaciones
de relaciones y anidamiento
de relaciones y anidamiento
de relaciones

Es claro que podemos hacer producto de una relacion con ella misma , , cuya notacion mas usada es
2 . De esa manera uno puede escribir recursivamente una ecuacion que permite obtener n :
0 = iB
n+1 = n
Cabe resaltar que iB se denomina la relacion identidad, es decir que el elemento esta relacionado consigo mismo, por ejemplo si operamos las relaciones sucesor predecesor este nos dara la identidad iZ .
Recordemos como obtenamos en aritmetica la potencia de an .bm y (an )m , para el primero simplemente
sumabamos las potencias ,(a b)n+m , mientras que para el segundo las multiplicabamos, anm . Estas mismas
propiedades las cumple la potenciacion en relaciones, solo que tienen una condicion adicional y es que los
posibles valores de las potencias tienen que estar en los naturales (o son cero o son positivos), estos dos
resultados son faciles de probar utilizando induccion.
6.2.3: Tipos de relaciones
Un subconjunto de relaciones sobre un conjunto cualquiera B ( B B) tienen cierto tipo de propiedades que se usan frecuentemente. Estas propiedades se expresan tanto en terminos de relaciones (parejas)
como en terminos de conjuntos. La Tabla 6.1 resume los tipos de relaciones que existe.
Para entender mejor lo que significa cada una de estas propiedades tomemos una relacion binaria de
ejemplo de la cual podemos mostrar alguna de estas propiedades:

Ejemplo 6.5
Tomemos la relacion ( ) en los enteros y demostremos que es reflexiva, antisimetrica y transitiva:
92

Cartilla Elementos de Teora en la Computaci


on

Nombre
Reflexividad
Irreflexividad
Simetria
Antisimetria
Asimetria
Transitividad

Propiedad
(b b b)
(b (b b))
(b, c b c c b)
(b, c b c c b b = c)
(b, c b c (c b))
(b, c b c c d b d)

Relaciones

Alternativa
iB
iB =
1 =
1 iB
1 =
1 iB

Cuadro 6.1: Tipos de relaciones

a) Reflexividad de : es reflexiva porque para todo a Z siempre es verdad que a a:

aa
=
a a a < a a = a
a<aa=a
=
La igualdad aritmetica es reflexiva
a < a true
=
Cero del
true

b) Antisimetra de : es antisimetrica porque si a b y b a entonces se tiene que a = b:

=
=
=
=

abba
Definicion de a b
(a < b a = b) (b < a b = a)
Distributividad del sobre
(a < b b < a) (a < b b = a) (a = b b < a) (a = b b = a)
Tricotomia de los enteros
f alse f alse f alse (a = b b = a)
Cero del ,a = b b = a a = b
a=b

d) Transitivad de : es transitiva porque si para cualesquiera a, b, c Z se tiene que a b y b c


93

Cartilla Elementos de Teora en la Computaci


on

Relaciones

entonces a c:
=
=
=
=
=

abbc
Definicion de a b
(a < b a = b) (b < c b = c)
Distributividad del sobre
(a < b b < c) (a < b b = c) (a = b b < c) (a = b b = c)
Transitividad de <, a < b b = c a < c, transitividad del =
(a < c) (a < c) (a < c) (a = c)
Idempotencia del
(a < c) (a = c)
Definicion
ac

Pero observe que la relacion < en los enteros es irreflexiva y asimetrica (por que?).

6.2.4: Relaciones de equivalencia


Otro tipo de relacion importantes son las relaciones de equivalencia. Una relacion de equivalencia es
una relacion que es reflexiva, simetrica y transitiva. Por ejemplo, la relacion de igualdad (=) en los enteros
una relacion que es reflexiva, simetrica y transitiva.
Con una relacion de equivalencia sobre un conjunto B, se pueden generar particiones disyuntas del
conjunto B. Estas particiones se conocen como clases de equivalencia, estas clases agrupan elementos que
bajo son equivalentes y separa a los que no. Por ejemplo, la relacion ojos sobre las personas definida de
la siguiente manera:
a, b ojos a y b tienen el mismo color de ojos.
Esta relacion particiona el conjunto de las personas en subconjuntos distintos donde uno de ellos contendra a
las personas con ojos azules, otro seran las personas con ojos cafes, etc. Teniendo la correspondencia entre
las relaciones de equivalencia y las particiones es una manera de conectar la teora de las relaciones con la
teora de conjuntos, de esa forma a continuacion definiremos una clase de equivalencia de manera que sea
mas precisa y formal:

n 6.4
Definicio
Sea una relacion de equivalencia sobre B. Entonces [b] , la clase de equivalencia de b, es el subconjunto
de elementos de B que son equivalentes (bajo ) a b:
x [b]p x b

Note que la definicion anterior se puede deducir que si b c entonces c [b] , de igual manera b [c] (pues
es simetrica, b c c b ), luego [b] = [c] .

94

Cartilla Elementos de Teora en la Computaci


on

Relaciones

El siguiente ejemplo ilustra como a partir de una relacion de equivalencia se pueden obtener las particiones del conjunto en el cual esta definida la relacion:

Ejemplo 6.6
Considere la relacion b c sobre los enteros 0 . . . 9 tal que :
b c b c es m
ultiplo de 4.
De esa manera tenemos:
[0] = [4] = [8] = {0, 4, 8}
[1] = [5] = [9] = {1, 5, 9}
[2] = [6] = {2, 6}
[3] = [7] = {3, 7}
ahora mostremos que realmente [3] = {3, 7}, para eso calculamos 3 3, 3 4, 3 5, 3 6, 3 7, 3 8, 3 9
(porque no calculamos 3 i con i < 3?), esas restas nos dan: 0, 1, 2, 3, 4, 5 y el u
nico m
ultiplo de 4 de
esa lista es 0 y 4 y como da de la resta de 3 3 y 3 7, quiere decir que 3 [3] y 7 [3] .

A continuacion se enuncia un teorema que nos permite ver el vnculo entre la relacion de equivalencia y
sus respectivas clases de equivalencia:

Teorema 6.3
Sea una relacion de equivalencia sobre B y sean b, c B, entonces las siguientes afirmaciones son equivalentes:
1. b c
2. [b] [c]
3. [b] = [c]
Es decir, si tiene una de ellas se puede reemplazar por alguna de las otras (porque son equivalentes).
Demostracion:
En esta demostracion solo vamos a mostrar que b c [b] [c] , las demas equivalencias se dejan
como ejercicios al lector.Primero, suuponga que b c entonces b [c] , pero como es una relacion de
equivalencia entonces tambien se tiene que b b, es decir b [b] . Entonces b [b] [c] .
Ahora suponga que [b] [c] , de esa manera tome un d [b] [c] . Entonces se tiene que d [b]
y d [c] , de esa manera obtenemos que d b y d c. Sin embargo, es simetrica y transitiva, entonces se
tiene que b c.

Hemos visto hasta el momento como a partir de una relacion de equivalencia podemos obtener
sus clases de equivalencia respectivas, pero sera que a partir de clases de equivalencia de un conjunto B
95

Cartilla Elementos de Teora en la Computaci


on

Funciones

podemos obtener la relacion de equivalencia asociada?. Bueno, el siguiente teorema nos dice que s (su
demostracion esta planteada como ejercicio, note que lo que debe demostrar es que es reflexiva, simetrica
y transitiva).

Teorema 6.4
Sea P una particion del conjunto B, la siguiente relacion de equivalencia sobre B es una relacion de
equivalencia:
b c (p p P b p c p)

Secci
on 6.3: Funciones
Las funciones son un tipo especial de relaciones que tienen algunas propiedades y usos particulares
tanto en matematicas como en la computacion.
Para empezar definiremos que es una funcion, pero primero hagamos una analoga con una cadena de
produccion de una fabrica. En una fabrica en cada uno de los pasos del proceso se modifica la materia
prima, si nos imaginamos cada uno de esos pasos como cajas negras (no sabemos que hacen por dentro)
donde ingresan elementos y salen elementos transformados, que son aptos para entrar a la siguiente caja
negra, hasta llegar al u
ltimo paso del proceso del cual sale el producto final. Cada caja negra puede verse
como una funcion, la cual tiene algunos parametros de entrada que al cumplirse e ingresar en la caja negra
esas entradas se transforman en un resultado final.
Formalmente una funcion es una relacion entre dos conjuntos A y B cuya primera componente son
elementos de A que de alguna manera (eso depende de la funcion) se transforma en un elemento de B, de
esa manera una funcion es una aplicacion de un conjunto de inicio a un conjunto final. Una funcion de A
en B se denota por f A B y cuando se desea mostrar el resultado de enviar un elemento a A en un
elemento b B se escribe como f (a) = b, esto se denomina evaluar f en a.
Se preguntara por que una funcion es un caso particular de una relacion, la respuesta es bastante
sencilla, dado que se puede crear un conjunto de parejas ordenadas que representen todas las posibles
evaluaciones de la f A B y eso sera un subconjunto de A B, dicho de otra manera, f es una relacion
sobre A B. A diferencia de una relacion una funcion esta bien definida, que es esto?, bien definida quiere
decir que para cada elemento del conjunto de salida (si f A B entonces el conjunto de salida es A)
existe un u
nico elemento del conjunto de llegada (si f A B entonces el conjunto de llegada es B) al que
esta dirigido.
Al igual que en las relaciones existen distintos tipos de funciones que tienen ciertas propiedades. Existen funciones parciales y totales, un funcion total es una funcion cuyo dominio es todo el conjunto de
salida, de lo contrario es una funcion parcial (una funcion parcial de A en B generalmente se denota por
f A B). Aunque se suele trabajar mas seguido con funciones totales, dado que las funciones parciales
96

Cartilla Elementos de Teora en la Computaci


on

Funciones

pueden generar problemas pues no dice que pasa con un elemento que no estan en su dominio.
Note que cualquier funcion f es una relacion, pero no siempre una relacion es una funcion. Para esto
considere la relacion < en los enteros, esta relacion no es funcion porque para el 1 tenemos que se cumple
tanto 1 < 2, 1 < 3 . . ., es decir, la relacion < no esta bien definida. Mientras que para la relacion identidad
sobre el conjunto B si es una funcion, esta es una funcion: iB B B y esta definida para todo b B como
iB (b) = b.
Adicionalmente, a partir de dos funciones se puede decir si son iguales o no, dado que para que lo
sean el conjunto de parejas que cada una generan (a partir de su definicion) contienen exactamente los
mismos elementos. As mismo dos funciones se pueden multiplicar, el producto en este caso es mas conocido
como composicion de funciones y tambien se denota por el operador , cabe resaltar que esta operacion
esta definida para funciones totales. La siguiente definicion formaliza lo que acabamos de decir:

n 6.5
Definicio
Para dos funciones f B C, g A B totales, se define la composicion de funciones f g A C como:
Para todo a A f g(a) = f (g(a)).

Claramente la composicion de funciones es asociativa (trate de demostrarlo) pero no siempre conmutativa


(en que casos no lo es?).
En los siguientes ejemplos, mostramos casos de funciones totales y parciales, y como hacemos su
composicion:

Ejemplo 6.7
Sean f
Z R y g N R de tal forma que para a Z se tiene que f (a) =
g(a) = a.

a y para b N se tiene que

Note que f , es una funcion parcial dado que solo esta definida para los enteros que sean positivos,
porque de lo contrario la raz cuadrada no puede ser real, es decir que estara fuera del conjunto donde
esta su rango. De esa manera, cuando se vaya aplicar f a un entero se debe tener cuidado en escoger dicho
entero. Mientras que para el caso de g, todos los elementos de sus conjunto de salida tienen su raz cuadrada
en los reales; razon por la cual esta funcion es total y de esa manera cuando se aplique g a un natural no
tenemos porque estar pendientes del tipo del natural, dado que su dominio son todos los naturales.

Ejemplo 6.8
Sean f Z N y g N Q tal que para a Z se tiene que f (a) = a2 y tal que para b N se tiene que g(b) =
2

b
2

Entonces g f Z Q, y g f (a) = a2 , pues g f (a) = g(f (a)) = g(a2 ) = a2 . Sin embargo note que
f g no esta bien definida porque Q es mas grande que Z, entonces para aquellos n
umeros que no sean
racionales pero si enteros si se les puede aplicar f , de lo contrario no. De esa forma la composicion no es
conmutativa.

97

Cartilla Elementos de Teora en la Computaci


on

Funciones

6.3.1: Inversa de una funci


on
Definir la inversa de una funcion tiene sus sutilezas, no es tan sencillo como hicimos con las relaciones,
dado que la inversa de una funcion debe ser tambien funcion, dicho en otras palabras debe estar bien
definida; dicho en otras palabras la inversa de una funcion no siempre existe. Para poder saber si una
funcion tiene inversa o no, primero introducimos algunos conceptos importantes:

n 6.6
Definicio
Una funcion total f A B es sobre o sobreyectiva si Ran.f = C. Adicionalmente, se dice que f es inyectiva
o uno a uno (1-1) si para todo a1 , a2 A se tiene que a1 = a2 entonces f (a1 ) = f (a2 ), de igual manera si se
tiene que para todo a1 , a2 A f (a1 ) = f (a2 ) entonces a1 = a2 .

Note que la sobreyectividad es una propiedad que asegura que todos los elementos del conjunto de llegada
de la funcion tienen un elemento en su dominio, es decir, que una funcion f A B total es sobreyectiva
si para todo b B, se puede asegurar que existe un a A tal que f (a) = b. En cambio la inyectividad de
una funcion lo que asegura es que si se tiene que los elementos de llegada son iguales es porque parten
del mismo elemento de salida (y viceversa), es decir, que si a = b para a, b A entonces f (a) = f (b) y si
f (a) = f (b) entonces a = b, dicho en otras palabras la inyectividad asegura que ese a es el u
nico que llega
a f (a). Al b mencionado con anterioridad se le conoce como la imagen de a bajo f (para el a A que lo
genera) y a a se le conoce como la preimagen de b, adicionalmente a f (A) se le conoce como la imagen de
f y para todo subconjunto A1 A, f (A1 ) se le conoce como la imagen de A1 bajo f .

Ejemplo 6.9
Demostrar que la funcion f N Z+ definida por f (b) = b + 1 es sobreyectiva pero si f N N definida de
la misma manera no lo es.
La funcion f (b) = b + 1 es sobre cuando f N Z+ , dado que para cualquier n
umero positivo (> 0
o 1) le puedo restar uno y obtengo un n
umero natural, pero en cambio cuando f N N el cero no
tendra preimagen, dado que al restarle uno me dara negativo el cual claramente no puede ser un natural.

Ejemplo 6.10
Demostrar que f (x) = 2x con f Z Z es inyectiva.
Suponga que para un x1 , x2 Z se tiene que x1 = x2 y demostremos que f (x1 ) = f (x2 ). Pero como
x1 = x2 (por hipotesis) entonces se tiene que 2x1 = 2x2 , de esa manera se obtiene que f (x1 ) = f (x2 ). La
demostracion en la otra direccion es analoga

Ahora, ya estamos listos para enunciar el siguiente teorema, que nos permite saber si una funcion total
tiene inversa o no:

Teorema 6.5
Para una funcion total f A B, f 1 es su inversa si y solamente si f es uno a uno y sobre.
98

Cartilla Elementos de Teora en la Computaci


on

Aplicaciones en el an
alisis de algoritmos

Recordemos que la inversa de una relacion al multiplicarla por la relacion original nos daba la relacion
identidad, en el caso de las funciones tambien aplica, es decir que para f B C total y con inversa si se
opera f 1 f = iB y si f f 1 = iC . De esa manera hay una inversa derecha y un funcion izquierda para
una funcion, dicho en otras palabras:

n 6.7
Definicio
Para una funcion f A B, una funcion inversa izquierda de f es una funcion g B A tal que g f = iB .
Una funcion inversa derecha es una funcion g B A tal que f g = iC . La funcion g es la funcion inversa
de f si es su inversa izquierda y derecha

De la definicion anterior se puede deducir facilmente que si una funcion tiene inversa derecha entonces la
funcion es sobre, pero si en cambio la funcion es total y tiene inversa izquierda la funcion es uno a uno
(por que?).
A continuacion enunciamos un teorema que resume todo lo que se hemos mencionado sobre inversas:

Teorema 6.6
Sea f A B, una funcion total. Las siguientes afirmaciones son equivalentes:
1. f es uno a uno y sobre.
2. Existe una funcion g B A tal que es la inversa izquierda y derecha de f .
3. f tienen inversa izquierda y derecha.

Secci
on 6.4: Aplicaciones en el an
alisis de algoritmos
Ahora que ya se han introducido los conceptos de relacion y funcion, se mostrara el caso en el que mas
se utilizan estos conceptos: el analisis de algoritmos.
El objetivo del analisis de algoritmos es obtener una medida de eficiencia que cuenta el total de
instrucciones y operaciones que se realizan en un algoritmo. El ejemplo a continuacion ilustra como se
utilizan estos conceptos:

Ejemplo 6.11
Suponga que se quiere calcular el factorial de un n
umero n, para calcular este valor se debe multiplicar
todos los n
umeros que se encuentran entre 1 y n esto se puede calcular con el siguiente algoritmo:
Para esto defina f (n) el n
umero de total de operaciones que se realizan para obtener el n! (es claro
que f Z+ R). Ahora contemos las operaciones que se realizan dentro del algoritmo:
1. La inicializacion de la variable donde se lleva el valor del factorial, eso es una instruccion.
99

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

Algoritmo 6.1 Calculando n!


f act = 1
for i = 1 to n do
f act = f act i
i=i+1
end for
2. El ciclo que se ejecuta n veces, pero en cada vez se realiza un producto y una asignacion para la
primera instruccion y luego se suma uno al contador y se reemplaza por el nuevo valor, es decir
dentro del ciclo se realizan 4 instrucciones.
De esa manera f (n) = 1 + 4n, dicho de otras maneras la funcion es lineal o lo que es lo mismo f O(n).
Adicionalmente, notamos que el termino dominante es 4n,es decir si n es un n
umero muy grande (por
ejemplo 1000) el algoritmo tomara mas tiempo en terminarse (el 1 en f (n) es un valor constante que
es irrelevante cuando n es muy grande), dado que se supone que cada instruccion del algoritmo demora
aproximadamente el mismo tiempo en ejecutarse.

El algoritmo anterior es uno de los mas sencillos que podemos ejemplificar, pero en la seccion de
ejercicios encontrara algoritmos que requieren un analisis mas cuidadoso, pues las funciones f (n) no siempre
son lineales, estas pueden ser exponenciales (por ejemplo f (n) = 2n ) o logaritmicas (por ejemplo f (n) =
c log2 (n)), en general cualquier tipo de funcion matematica.

Secci
on 6.5: Ejercicios
1. Demuestre que la relacion de congruencia definida en 5.2 (pg. 78) es una relacion de equivalencia.
2. Demuestre los Teoremas 6.1, 6.2, 6.3, 6.4, 6.5, 6.6
3. Si U = N , A = {1, 2, 3, 4}, B = {2, 5}, C = {3, 4, 7}. Calcule A B, B A, A (B C),(A B) C,(A
C) (B C).
4. Si U = {1, 2, 3, 4, 5}, A = {1, 2, 3}, B = {2, 4, 5}, dense ejemplos de:
a) Tres relaciones no vacas de A a B.
b) Tres relaciones binarias no vacias en A.
5. Si U = R, dibuje la relacion {(x, y) x2 + y 2 = 4}.Que sucede si U = R+ .
6. El producto cruz es conmutativo?, es decir, si A y B son conjuntos entonces se tiene A B = B A?.
7. Para A, B, C U , demuestre que A (B C) = (A B) (A C).
8. Para conjuntos arbitrarios A, B, C U :
a) A (B C) = (A B) (A C).
b) A (B C) = (A B) (A C).
100

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

c) (A B) C = (A C) (B C).
d) (A B) C = (A C) (B C).
9. Si A = {1, 2, 3, 4}, de un ejemplo de una relacion en A que sea:
a) Reflexiva y simetrica, pero no transitiva.
b) Relexiva y transitiva, pero no simetrica.
c) Simetrica y transitiva, pero no reflexiva.
10. Determine si la relacion es reflexiva, simetrica, antisimetrica o transitiva para las siguientes relaciones:
a) es la relacion en Z, donde x y si x + y es par (impar).
b) es la relacion en Z, donde x y si x y es par (impar).
c) es la relacion en Z Z, donde (a, b)(c, d) si a c.
d) Sea T el conjunto de todos los triangulos en R2 . Defina en T por t1 t2 si t1 y t2 tienen alg
un
angulo de la misma medida.
11. De las relaciones de equivalencia del punton anterior calcule sus clases de equivalencia.
12. Sean y relaciones en un conjunto A, demuestre que si ambas son reflexivas entonces es
reflexiva. Responda la misma pregunta considerando:
a) y son simetricas.
b) y son transitivas.
c) y son antisimetricas.
13. Demuestre las mismas preguntas del ejercicio anterior pero en vez de usar , utilizar .
14. Para las siguientes afirmaciones sobre relaciones en un conjunto A, donde A = n, determine si la
proposicion es verdaderea o falsa. Si es falsa de un contrajemplo:
a) Si es una relacion reflexiva en A, entonces n.
b) Si es una relacion en A y n entonces es reflexiva,
c) Si y son relaciones en A y , entonces si es reflexiva (simetrica, transitiva, antisimetrica)
entonces es reflexiva (simetrica, transitiva, antisimetrica).
d) Si y son relaciones en A y , entonces si es reflexiva (simetrica, transitiva, antisimetrica)
entonces es reflexiva (simetrica, transitiva, antisimetrica).
e) Si es una relacion de equivalencia en A entonces n 2 n2 .
15. Determine si las siguientes relaciones son funciones o no. Si una relacion es una funcion, encuentre
su respectiva imagen:
a) {(x, y) x, y Z, y = x2 + 7}.
b) {(x, y) x, y R, y = 3x + 1}.
c) {(x, y) x, y R, y 2 x}.
101

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

d) {(x, y) x, y Q, x2 + y 2 = 1}.
16. La form
ula f (x) =

1
x2 2

para definir una funcion f R R? y una funcion f Z R.

17. Sean A = {1, 2, 3, 4}, B = {x, y, z}:


a) Enuncie cinco funciones de A a B.
b) Cuantas funciones f A B hay?.
c) Cuantas funciones f A B son uno a uno?.
d) Cuantas funciones g B A hay?.
e) Cuantas funciones g B A son uno a uno?.
f) Cuantas funciones g B A cumplen f (1) = x?.
g) Cuantas funciones g B A cumplen f (1) = f (2) = x?.
h) Cuantas funciones g B A cumplen f (1) = x y f (2) = y?.
18. Para las siguientes funciones determines cuales son uno a uno y calcule su imagen respectiva:
a) f Z Z con f (x) = 2x + 1.
b) f Z Z con f (x) = x3 x.
c) f Q Q con f (x) = 2x + 1.
c) f R R con f (x) = ex .

d) f [
2 , 2 ] R con f (x) = sin(x).

e) f [0, ] R con f (x) = sin(x).


19. Sea f R R, f (x) = x2 . Encuentre f (A) para los siguientes subconjuntos A R:
a) A = {2, 3}.
b) A = {3, 3, 2, 3}.
c) A = (3, 3).
d) A = (2, 2].
e) A = {7, 2}.
f) A = (4, 3] [5, 6].
20. Encuentre una funcion f A B con A1 , A2 A y f (A1 A2 ) f (A1 ) f (A2 ).
21. Sea f A B con A1 , A2 A, demuestre:
a) f (A1 A2 ) f (A1 ) f (A2 ).
b) f (A1 A2 ) f (A1 ) f (A2 ).
c) f (A1 A2 ) = f (A1 ) f (A2 ) cuando f es inyectiva.
22. Para cada una de las siguientes funciones f Z Z, determine si es uno a uno o si es sobreyectiva.
Si la funcion no es sobreyectiva, calcule la imagen:
102

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

a) f (x) = x + 7.
b) f (x) = 2x 3.
c) f (x) = x + 5.
d) f (x) = x2 .
e) f (x) = x2 + x.
f) f (x) = x3 .
23. Para cada una de las siguientes funciones g R R, determine si es uno a uno o si es sobreyectiva.
Si la funcion no es sobreyectiva, calcule la imagen:
a) g(x) = x + 7.
b) g(x) = 2x 3.
c) g(x) = x + 5.
d) g(x) = x2 .
e) g(x) = x2 + x.
f) g(x) = x3 .
24. Utilice el hecho que de que toda ecuacion polinomial que tiene como coeficientes n
umeros reales y
grado impar entonces tiene una raz real, para mostra que la funcion f R R definida por x5 2x2 +x,
es una funcion sobreyectiva. Sera que f tambien sera uno a uno?.
25. Demuestre que la relacion <Menor que, es una relacion de equivalencia.
26. Sera que la relacion a b es una relacion de equivalencia?, enuncie que propiedades cumple.
27. Sean f A B y g B C, demuestre:
a) Si f, g son uno a uno, entonces g f es uno a uno.
b) Si f, g son sobreyectivas entonces g f tambien lo es.
28. Demuestre que para f A B, g B C y h C D se tiene que:
(h g) f = h (g f )
.
29. Demuestre que si f es invertible entonces su inversa es u
nica.
30. Demuestre que si f A B, g B C son invertibles entonces g f es invertible y (g f )1 = f 1 g 1 .
31. Sea f A B con B1 , B2 B, demuestre:
a) f 1 (B1 B2 ) = f 1 (B1 ) f 1 (B2 ).
b) f 1 (B1 B2 ) = f 1 (B1 ) f 1 (B2 ).
c) f 1 (B1c ) = (f 1 (B1 ))c .
103

Cartilla Elementos de Teora en la Computaci


on

Ejercicios

32. Demuestre que si f A B y A = B entonces:


a) f es uno a uno.
b) f es sobreyectiva.
c) f es invertible.
33. Para las siguientes funciones f R R diga si es invertible o no, de serlo encuentre f 1 :
a) f = {(x, y) 2x + 3y = 7}.
b) f = {(x, y) y = x3 }.
c) f = {(x, y) ax + by = c, b 0}.
d) f = {(x, y) y = x4 x}.
34.

a) Encuentre la inversa de la funcion f R R+ definida por f (x) = e2x+5 .


b) Muestre que f f 1 = iR+ y que f 1 f = iR .
Diagrame en el plano cartesiano a f y f 1 .

35. Calcule f 1 para:


a) f R R, f (x) = x.
b) f R2 R2 , f (x, y) = (y, x).
36. Sea f R R definida por f (x) = x2 . Para los siguientes subconjuntos B de R halle f 1 (B):
a) B = {0, 1}.
b) B = {1, 0, 1}.
c) B = [0, 1].
d) B = [0, 1).
e) B = [1, 1].
f) B = [0, 4].
g) B = [0, 1] [4, 9].
h) B = (0, 1] (4, 9).
37. Determine tres subconjuntos infinitos B de R para los cuales f 1 (B) = , tome f como la del punto
anterior.
38.

a) De un ejemplo de una funcion f Z Z donde f sea uno a uno pero no sobre y que sea sobre
pero no uno a uno.
b) Las funciones del punto anterior contradicen los resultados del ejercicio 32?.

39. Si A = B = 5, cuantas funciones f A B son invertibles?.

104

Bibliografa

[1] Andres Forero Cuervo. Matematica Estructural. Editorial Uniandes, 2006.


[2] Ralph P. Grimaldi. Matematicas discretas y combinatoria. Addison-Wesley Iberoamericana, 1997.
[3] Burton W. Jones. Teora de los n
umeros. Editorial F. Trillas S.A, 1969.
[4] David Gries y Fred B. Schneider. A logical approach to discrete Math. Springer, 1994.

105

Das könnte Ihnen auch gefallen