Está en la página 1de 17

Capı́tulo 5

Técnicas avanzadas de conteo

Hemos visto que una relación de recurrencia relaciona el n-ésimo elemento de una sucesión
con sus predecesores. Como las relaciones de recurrencia tienen una relación cercana con los
algoritmos recursivos, las relaciones de recurrencia surgen de manera natural en el análisis de
éstos.
Estudiaremos otro paradigma algorı́tmico importante, el divide y vencerás. Los algoritmos
que siguen este paradigma se pueden usar para resolver un problema dividiéndolo recursiva-
mente en un número fijo de subproblemas que no se superponen hasta que estos problemas
puedan resolverse directamente. La complejidad de tales algoritmos se puede analizar usando
un tipo especial de relación de recurrencia. En este capı́tulo veremos algunos algoritmos de
divide y vencerás y analizaremos su complejidad usando relaciones de recurrencia.
Veremos que muchos problemas de conteo se pueden resolver usando series de potencias
formales, llamadas funciones generadoras, donde los coeficientes de potencias de x representan
términos de la secuencia que nos interesa. Además de resolver problemas de conteo, también po-
dremos usar funciones generadoras para resolver relaciones de recurrencia y probar identidades
combinatorias.

5.1. Aplicaciones de las relaciones de recurrencia


En el capı́tulo anterior hemos visto ejemplos de algunas sucesiones definidas recursivamente:
la sucesión de números de Catalan, la sucesión de Fibonacci. Estas tienen aplicaciones.
Ejemplo 5.1. Uno de los primeros ejemplos de una sucesión definida de forma recursiva
surge en los escritos de Leonardo de Pisa, más conocido como Fibonacci, que era el más
grande matemático europeo de la Edad Media. En 1202 Fibonacci plantea el siguiente problema:
¿Cuántas parejas de conejos habrá después de un año, si al comienzo solo hay una pareja, y
sabemos que cada pareja produce al mes una nueva pareja, la cual se vuelve productiva al mes?
Se da por hecho que no ocurren muertes y que la pareja inicial es recién nacida. Al resolver
este problema Fibonacci encontró la sucesión
f1 = 1, f2 = 1, y fn = fn−1 + fn−2 , n ≥ 3,
a la que se le dió su nombre.
Idea de la solución. Sea fi el número de parejas de conejos al final del mes i. Al comienzo,
sólo hay una pareja, entonces f1 = 1, Al final del primer mes todavı́a hay una pareja, debido
a que después del primer mes hay reproducción f2 = 1. Ası́ tenemos las condiciones inicales.
El aumento en las parejas fn−1 y fn del mes n − 1 al mes n se debe a que cada pareja del mes
n − 2 produce una pareja más. Ası́
fn − fn−1 = fn−2 ⇔ fn = fn−1 + fn−2

1
Ejemplo 5.2. Una estructura de datos muy importante en las ciencias de la computación es
la pila. Esta estructura permite guardar datos, con las siguientes restricciones:

1. Todas las inserciones se realizan en un extremo de la estructura, llamada parte superior


de la pila, y el proceso de inserción se conoce como push (empujar).

2. Todas las eliminaciones de la pila (no vacı́a) ocurren en la parte superior. Llamamos a
este proceso pop.

Debido a que el último (last) elemento insertado en (in) esta estructura es el primer (first)
elemento que debe salir (0ut) de ella, la pila se considera con frecuencia como una estructura
”last-in-fisrt-out”(LIFO)
Al resolver este problema se tiene un problema de permutación, y se encuentra la sucesión,
con a0 = 1 (solo hay una forma de no permutar nada)

a4 = a0 a3 + a1 a2 + a2 a1 + a3 a0

donde

Cada sumando aj ak satisface j + k = 3.

El subı́ndice j indica que existen j enteros a la izquierda del 1 en una permutación; en


particular, para j ≥ 1, éstos son los enteros de 2 a j + 1, inclusive.

El subı́ndice k indica que hay k enteros a la derecha del 1 en la permutación; para k ≥ 1,


éstos son los enteros de 4 − (k − 1) a 4.

El problema de permutación se generaliza para cualquier número n ∈ N de manera que

an+1 = a0 an + a1 an−1 + a2 an−2 + · · · + an−1 a1 + an a0 ,

con a0 = 1, resulta que  


1 2n
an = ,
(n + 1) n
los números de Catalan.
Idea de la solución. Consideramos una lista de datos (ordenada) 1,2,3,...,n con n entero
positivo, y usamos los procedimientos empujar y eliminar ara permutar la lista. En la figura
que sigue se presenta la manera en que cada elemento de la lista se empuja hacia la parte
superior de la pila, en ese orden. Hay que tener presente que una vez que se ha eliminado un
dato este no se puede utilizar como entrada, ni colocado en la pila. Esto se hace hasta que la
pila quede vacı́a. Ası́, la sucesión ordenada de elementos sacados de la pila da una permutación
de 1,2,3...,n.

1 2 34 5 n

2
Si n = 1, la lista de entrada sólo tiene un entero, 1. Se inserta 1 en la parte superior de la pila
vacı́a (vacı́a) y después lo eliminamos. Esto da la permutación 1.
Para n = 2, tenemos dos permutaciones posible para 1, 2, y las obtenemos por medio de
la pila. Ası́, usando esto, para 1 ≤ i ≤ 4, pongamos ai el número de formas de permutar los
datos 1, 2, 3, ..., i mediante la pila. Además, definimos a0 = 1 usando la pila. Por tanto

a4 = a0 a3 + a1 a2 + a2 a1 + a3 a0

con la forma indicada en el enunciado.


La generalización es

an+1 = a0 an + a1 an−1 + a2 an−2 + ... + qn−1 a1 + an a0

con a0 = 1.
La función

X
g (x) = an+1 xn+1
n=0
es una serie formal; la escribimos como

X
f (x) = an xn
n=0

y se llama la ”función generadora”de la sucesión

a0 , a1 , a2 , . . .

Justamente, los coeficientes de f son de la forma


 
1 2n
an = ,
n+1 n

y es la sucesión de números de Catalan.


Ejemplo 5.3. Problema (juego) de las torres de Hanoi. Considérese que se tienen n
discos y 3 torres. Los discos están apilados en la torre 1, ordenados de mayor a menor.
El objetivo es pasar los discos uno por uno a la torre 3, colocados en el orden original. No
obstante, en el proceso no se permite que un disco mayor se coloque sobre otro menor.
Si an es el número de movimientos que se requieren para pasar los disco de la torre 1 a la
torre 2, determinar la relación de recurrencia para calcular an .
La solución del problema está dada por la sucesión

a1 = 1, an = 2an−1 + 1, para todo n ≥ 2

El juego de la Torre de Hanoi fue inventado por el matemático francés Édouard Lucas a finales
del siglo XIX. (Lucas fue la primera persona en llamar a la sucesión 1, 1, 2, 3, 5, ... la sucesión
de Fibonacci).
Idea de la solución. Para mover n discos bastará mover n-1 discos a una torre libre,
mover el disco mayor a la otra torre libre y mover de nuevo los n-1 discos sobre el mayor. Por
tanto, an cumple la relación de recurrencia

an = 2an−1 + 1,

pero es necesario tener un valor inicial. Por tanto, si

a1 = 1

3
entonces

a2 = 2 × 1 + 1 = 3
a3 = 2 × 3 + 1 = 7
a4 = 2 × 7 + 1 = 15
a5 = 2 × 15 + 1 = 31

por ejemplo.

5.2. Solución de relaciones de recurrencia lineales.


Resolver una relación de recurrencia que implica una sucesión a0 , a1 , ... significa encontrar
una fórmula explı́cita para el término general an . En esta sección se estudian dos métodos
para resolver relaciones de recurrencia: el de iteraciones y un método especial que se aplica a
relaciones de recurrencia homogéneas lineales con coeficientes constantes. Hay métodos más
poderosos, por ejemplo, los que utilizan las funciones generadoras.
Una relación de recurrencia homogénea lineal de orden k con coeficientes constantes es una
relación de recurrencia de la forma

an = c1 an−1 + c2 an−2 + + ck an−k , ck 6= 0.

Una relación de recurrencia homogénea lineal de orden k con coeficientes constantes junto con
k condiciones iniciales
a0 = C0 , a1 = C1 , ..., ak−1 = Ck−1 ,
define de manera única una sucesión a0 , a1 , ....

Ejemplo 5.4. La relación de recurrencia an = 2an−1 + 5an−2 − 6an−3 es una relación de


recurrencia lineal homogénea de tercer orden con coeficientes constantes.

Para resolver una relación de recurrencia que implica la sucesión a0 , a1 , ... por iteración, se
usa la relación de recurrencia para escribir el n − ésimo término an en términos de algunos
de sus predecesores an−1 , ..., a0 . Después se usa la relación de recurrencia de manera sucesiva
para sustituir cada uno de an−1 , ... por algunos de sus predecesores. El proceso continúa hasta
obtener una fórmula explı́cita.

5.2.1. El método de iteración


El método más básico para encontrar una fórmula explı́cita para una sucesión defini-
da de forma recursiva es la iteración. La iteración funciona como sigue: Dada una sucesión
a0 , a1 , a2 , ..., definida por una relación de recurrencia y condiciones iniciales, inicie a partir de
las condiciones iniciales y calcule los términos sucesivos de la sucesión hasta que aparezca un
patrón de desarrollo. En ese momento, proponga una fórmula explı́cita.

Ejemplo 5.5. Sea a0 , a1 , a2 , ... la sucesión definida recursivamente de la siguiente manera:


para todo entero k ≥ 1,
a0 = 1, ak = ak−1 + 2
Utilice iteración para proponer una fórmula explı́cita para la sucesión.

La sucesión del ejemplo anterior, es nuestra conocida sucesión aritmética.

4
Ejemplo 5.6. Sea r una constante fija distinta de cero y supongamos una sucesión a0 , a1 , a2 , ...
definida en forma recursiva de la siguiente manera
a0 = a, ak = rak−1 para todo entero k ≥ 1.
Utilice iteración para inferir una fórmula explı́cita para esta sucesión.
Este ejemplo muestra una sucesión geométrica, cada término es igual al término anterior
por una constante fija. Las sucesiones geométricas se presentan en una gran variedad de apli-
caciones, tales como los modelos de interés compuesto, en ciertos modelos de crecimiento de la
población, en desintegración radiactiva y en el número de operaciones necesarias para ejecutar
ciertos algoritmos informáticos.
Ejemplo 5.7. La solución del problema de las torres de Hanoi está dada por la sucesión
a1 = 1, an = 2an−1 + 1, para todo n ≥ 2
Use iteración para dar una fórmula explı́cita para esta sucesión.

5.2.2. Recurrencias homogéneas lineales de segundo orden con coeficientes


constantes
Una relación de recurrencia homogénea lineal con coeficientes constantes es una relación
de recurrencia de la forma
an = Aan−1 + Ban−2 (1)
para todo entero n mayor o igual que algún entero fijo, donde A y B son números reales fijos
con B 6= 0.
Asociamos a la relación (1) un polinomio cuadrático de la forma
p (λ) = λ2 − Aλ − B,
al que llamamos el polinomio caracterı́stico de la relación de recurrencia, y las raı́ces del
polinomio las llamamos las raı́ces caracterı́sticas.
Teorema 5.8. Suponga que el polinomio caracterı́stico p (λ) = λ2 − Aλ − B de la relación de
recurrencia an = Aan−1 + Bank−2 , tiene raı́ces diferentes λ1 y λ2 . Entonces la solución general
de la relación de recurrencia es de la forma
an = c1 λn1 + c2 λn2
para toda n ≥ 0, donde c1 y c2 son constantes.
Ejemplo 5.9. Considere la siguiente relación de recurrencia homogénea an = 2an−1 + 3an−2 .
Encontrar la solución general.
Ejemplo 5.10. La sucesión de Fibonacci está definida por la relación de recurrencia ho-
mogénea lineal de segundo orden
fn − fn−1 − fn−2 = 0, n ≥ 3,
y las condiciones iniciales f1 = 1, f2 = 1. Encuentre una fórmula explı́cita para esta sucesión.
Teorema 5.11. Suponga que el polinomio caracterı́stico p (λ) = λ2 − Aλ − B de la relación
de recurrencia an = Aan−1 + Bank−2 , tiene dos raı́ces iguales λ1 = λ2 . Entonces la solución
general de la relación de recurrencia es de la forma
an = c1 λn1 + c2 nλn1 |
para toda n ≥ 0, donde c1 y c2 son constantes.

5
Ejemplo 5.12. Supongamos que una sucesión b0 , b1 , b2 , ... , satisface la relación de recurrencia
bk = 4bk−1 −4bk−2 para todo entero k ≥ 2, con condiciones iniciales b0 = 1 y b1 = 3. Determine
una fórmula explı́cita para b0 , b1 , b2 , ... .
Ejemplo 5.13. Consideremos la siguiente relación de recurrencia homogénea: an = 6an−1 −
9an−2 y las condiciones iniciales a1 = 3, a2 = 27. Encuentre una fórmula explı́cita para esta
sucesión.

5.2.3. Recurrencias homogéneas lineales de orden n con coeficientes cons-


tantes
Tenemos el siguiente teorema
Teorema 5.14. Sea c1 , c2 , ..., ck sean números reales. Suponga que la ecuación caracterı́stica

λk − c1 λrk−1 − − ck = 0

tiene k raı́ces distintas λ1 , λ2 , ..., λk . Entonces una sucesión {an } es una solución de la relación
de recurrencia
an = c1 an−1 + c2 an−2 + + ck an−k
si y sólo si
an = α1 λn1 + α2 λn2 + · · · + αk λnk
para n = 0, 1, 2, ... , donde α1 , α2 , . . . , αk son constantes.
Pueden presentarse las siguientes situaciones:

1. Que se tengan todas las raı́ces diferentes.

2. Que se tengan raı́ces repetidas.

Veremos el uso del teorema con dos ejemplos


Ejemplo 5.15. Considere la siguiente relación de recurrencia homogénea de tercer orden
an = 11an−1 − 39an−2 + 45an−3 . Suponga que se dan las condiciones iniciales a0 = 5, a1 =
11, a2 = 25. Encuentre una fórmula explı́cita para esta sucesión.
Ejemplo 5.16. Hallar la solución a la relación de recurrencia an = 6an−1 − 11an−2 + 6an−3
con las condiciones iniciales a0 = 2, a1 = 5 y a2 = 15.

5.3. Algoritmos y relaciones de recurrencia divide y conquista.


Muchos algoritmos recursivos toman un problema con una entrada determinada y lo dividen
en uno o más problemas más pequeños. Esta reducción se aplica sucesivamente hasta que las
soluciones de los problemas menores se puede encontrar rápidamente. Es ası́ que, el problema
de encontrar un número particular en un rango dado de números, se reduce en cada etapa a
la búsqueda de un número particular en un rango de números aproximadamente la mitad del
rango anterior. Estos procedimientos siguen un paradigma algorı́tmico importante conocido
como divide y vencerás.
Los algoritmos que emplean la estrategia de divide y vencerás, en general son muy eficientes
y casi siempre tienen órdenes que implican funciones logarı́tmicas. En esta sección definimos el
algoritmo de la búsqueda binaria. Entonces desarrollamos un algoritmo divide y vencerás para
ordenar, ordenamiento por mezcla y comparar su eficiencia con los ordenamientos que vimos
en el capı́tulo 4.

6
5.3.1. Búsqueda binaria
Mientras que una búsqueda sucesiva se puede efectuar en un arreglo cuyos elementos están
en cualquier orden, una búsqueda binaria sólo se puede realizar en un arreglo cuyos elemen-
tos están colocados en orden ascendente (o descendente). Dado un arreglo a[1], a[2], . . . , a[n]
de distintos elementos colocados en orden ascendente, consideremos el problema de intentar
encontrar un elemento particular x en el arreglo.
Para usar búsqueda binaria, primero comparamos x con el “elemento medio” del arreglo.
Si los dos son iguales, entonces la búsqueda fue exitosa. Si no coinciden, entonces como los
elementos del arreglo están en orden ascendente, comparamos los valores de x y el elemento
medio del subarreglo inferior (que consiste de todos los elementos del arreglo bajo el elemento
medio inicial) o del superior (que consiste de todos los elementos del arreglo arriba del elemento
medio inicial).
a [1] , a [2] , a [3] , a [4] , a [5] , a [6] , a [7] , a [8] , a [9]
si tomamos un elemento x y lo comparamos con los a [i] y resulta que x = a [5] se terminó la
búsqueda. En caso contrario, subdividimos el arreglo en dos

a [1] , a [2] , a [3] , a [4] , a [5]

y
a [6] , a [7] , a [8] , a [9]
Ahora se compara x con el elemento medio del primer subarreglo a [3] ó del otro subarreglo.
Y si x = a [3] terminó la búsqueda.
La búsqueda continúa mediante repetición de este proceso básico en subarreglos más y
más pequeños y termina cuando ocurre una igualdad o cuando el subarreglo, al cual se le está
aplicando la búsqueda ya no contiene elementos. La eficiencia del algoritmo es resultado del
hecho de que en cada paso, la longitud del subarreglo a ser investigado es prácticamente la
mitad de la longitud del subarreglo anterior.
Para escribir un algoritmo formal de búsqueda binaria, introducimos una variable ı́ndice
cuyo valor final nos dirá si x está o no en el arreglo y si es ası́, indicará la ubicación de x.
Como el arreglo va de a[1] a a[n], entonces ı́ndice queda inicializada en 0. Si se encuentra x,
se cambia el valor de ı́ndice al subı́ndice del elemento del arreglo que coincide con x. Si ı́ndice
mantiene el valor 0 cuando el algoritmo finaliza, entonces x no está en el arreglo.
El formalizar un algoritmo de búsqueda binaria también requiere que seamos más precisos
sobre el significado del “elemento medio” de un arreglo. Si el arreglo consiste de un número
par de elementos, hay dos elementos en la parte media. Por ejemplo, a[6] y a[7] están por igual
en la parte media del siguiente arreglo

a [3] , a [4] , a [5] , a [6] , a [7] , a [8] , a [9] , a [10] .

En un caso como este, el algoritmo debe elegir cuál tomar de los dos elementos medios,
el más pequeño o el más grande. La opción es arbitraria, cualquiera que sea. Escribiremos el
algoritmo para elegir el más pequeño. El ı́ndice del más pequeño de los dos elementos medios
es el piso del promedio de los ı́ndices superior e inferior del arreglo. Es decir, si inf = el ı́ndice
inferior del arreglo, sup = el ı́ndice superior del arreglo y med = el menor de los dos ı́ndices
medios del arreglo, entonces
ı́nf + sup
med = ⌊ ⌋
2
En este caso, inf = 3 y sup = 10, ası́ el ı́ndice del “elemento medio” es
3 + 10 13
med = ⌊ ⌋ = ⌊ ⌋ = ⌊6,5⌋ = 6
2 2

7
El siguiente es un algoritmo formal para una búsqueda binaria.
Algoritmo Búsqueda binaria
[El objetivo de este algoritmo es buscar un elemento x en un arreglo ascendente de elementos
a[1], a[2], . . . , a[n]. Si se encuentra x, la variable ı́ndice es igual al ı́ndice del elemento del arreglo
en donde x fue localizado. Si x no se encuentra, la variable ı́ndice continúa con su valor inicial,
que es 0. Las variables inf y sup denotan los ı́ndices inferior y superior del arreglo bajo análisis].
Entrada: n [un entero positivo], a[1], a[2], . . . , a[n] [un arreglo de datos dados en orden
ascendente], x [un dato del mismo tipo de datos como los elementos del arreglo]
Cuerpo del algoritmo
ı́ndice := 0, inf := 1, sup := n
[Calcule el ı́ndice medio del arreglo, med. Compare x con a[med]. Si los dos coinciden, la
búsqueda ha sido exitosa. Si no, repita el proceso para el subarreglo
inferior o superior ya sea dando a sup el nuevo valor med - 1 o dando a inf el nuevo valor
med + 1. Cada iteración del bucle disminuye el valor de sup o incrementa el valor de inf. Ası́,
si las iteraciones no son detenidas por el éxito en el proceso de búsqueda, eventualmente el
valor de sup será menor que el valor de inf. Este hecho detiene el proceso iterativo e indica que
x no es un elemento del arreglo.]
while (sup ≥ inf e ı́ndice = 0)
med :=⌊ med+sup 2 ⌋
if a[med] = x then ı́ndice := med
if a[med] > x
then sup := med - 1
else inf := med + 1
end while
[Si ı́ndice tiene el valor 0 en este punto, entonces x no está en el arreglo. De otra forma,
ı́ndice da el ı́ndice del elemento del arreglo en donde se localiza x.]
Salida: ı́ndice [un entero no-negativo]
Ejercicio:

1. Se deberá hacer un seguimiento del algoritmo de búsqueda binaria.

2. Se deberá presentar brevemente la deducción de la eficiencia del algoritmo.

Eficiencia del algoritmo de ordenamiento por mezcla


En el capı́tulo anterior se vió el algoritmo de ordenamiento por mezcla (es del tipo divide
y vencerás). Veremos ahora, su eficiencia. Para tal efecto, pongamos mn = máximo número de
comparaciones empleadas cuando se aplica ordenamiento por mezcla a un arreglo de longitud
n.
Entonces m1 = 0 porque ninguna comparación se emplea cuando se aplica el ordenamien-
to por mezcla a un arreglo de longitud 1. También, para cualquier entero k > 1, conside-
re un arreglo a[inf ], a[inf + 1], · · · , a[sup] de longitud k que se divide en dos subarreglos,
a[inf ], a[inf + 1], · · · , a[med] y a[med + 1], a[med + 2], · · · , a[sup], en donde med := ⌊ inf +sup
2 ⌋.
k
Queda como ejercicio demostrar que el subarreglo derecho tiene longitud ⌊ 2 ⌋ y el arreglo
izquierdo tiene longitud ⌈ k2 ⌉. Del análisis anterior del proceso de mezclado, se sabe que para
mezclar dos subarreglos en un arreglo de longitud k, a lo más se necesitan k − 1 comparaciones.
Por tanto
mk = m⌊ k ⌋ + m⌈ k ⌉ + (k − 1) (g)
2 2

8
para todo k > 1. Siguiendo el procedimiento hecho para el de búsqueda binaria, usando la
relación de recurrencia (g) se llega a que
n
log2 (n) ≤ mn ≤ 2n log2 (n)
2
para todo n ≥ 1. Se tiene que el ordenamiento por mezcla es Θ(n log2 (n)) en el peor caso.

Observación 5.17. Podemos ver que en la mayorı́a de los algoritmos de divide y vencerás el
tamaño de los l subproblemas es aproximadamente m/b, para alguna constante b, en donde m
es el tamaño del problema (o subproblema) original (cada subproblema es aproximadamente del
tamaño 1/b del problema original). El análisis de tiempos de ejecución para estos algoritmos
es el siguiente: Sea g(n) el tiempo requerido por divide y vencerás en problemass de tamaño
n, sin contar el tiempo necesario para llamadas recursivas. El tiempo total f (n) requerido por
este algoritmo de divide y vencerás es parecido a

f (n) = lf (n/b) + g(n)

para l = 1, b =
 2, siempre que n sea suficientemente grande. Si existe un entero k ≥ 0 tal que
g (n) ∈ Θ nk , se puede concluir que
 
 Θ nk ,  si l < bk
f (n) ∈ Θ nk log2(n) , si l = bk

Θ nlog2 (l) , si l > bk

5.4. Funciones generadoras


El concepto de función generadora permite trabajar con la sucesión entera .almacenándola.en
una función. En esta sección veremos de qué manera se hace esto y qué ventajas supone para
la resolución de los problemas de conteo.
Dada una sucesión de números {un }, n ≥ 0, se llama función generadora ordinaria de esta
sucesión a la expresión
X
U (x) = u0 + u1 x + u2 x2 + · · · = uk x k (ab)
k≥0

La expresión del lado derecho de (ab) se llama una serie formal. La sucesión {un } se llama la
sucesión de coeficientes.
El nombre de “función” viene de su posible, mas no recomendada, interpretación como fun-
ción en x y la parte “generadora” viene del hecho que las sucesiones que usaremos tı́picamente
cuentan algún tipo de objetos asociados a un ı́ndice i ∈ N.
En rigor, las series formales no son más que otra forma de escribir sucesiones.
Vamos a considerar series de potencias formales y trataremos, en lo posible, de evitar el
problema de la convergencia. Pero cuando sea necesario se usarán criterios de convergencia.
Cuando se utilizan funciones generadoras para resolver problemas de conteo, generalmente
se las considera como series formales de potencias. El hecho de que una función tenga una serie
de potencia única alrededor de x = 0 será importante. Se pueden consultar libros de texto
sobre este tema para obtener detalles sobre las series de potencias, incluida la convergencia de
las series que consideramos aquı́.
A continuación, expondremos algunos hechos importantes sobre las series infinitas utilizadas
cuando se trabaja con funciones generadoras. Se puede encontrar una discusión de estos y otros
resultados relacionados en los textos de cálculo.

9
Se pueden definir las operacionas algebraicas de suma y producto ası́ como también la
operación de derivación. En primer lugar, diremos que dos series formales
P son iguales P
si tienen
la misma sucesión de coeficientes. Dadas dos expresiones U (x) = uk xk y V (x) = v k xk ,
k≥0 k≥0
definimos su suma como la expresión
X
U (x) + V (x) = (uk + vk ) xk
k≥0

y su producto como X
U (x) V (x) = w k xk
k≥0
donde wk = u0 vk + u1 vk−1 + · · · + uk−1 v1 + uk v0 . Esta última expresión se precisará más
adelante en la Proposición 5.26
Otra de las operaciones útiles
P enk el conjunto de las series formales es la de derivación. La
derivada de la serie U (x) = uk x se define como
k≥0
X
U ′ (x) = kuk xk−1
k≥1

P Unak de las ventajas de concentrar la sucesión {un }, n ≥ 0 en una expresión global U (x) =
uk x es justamente la posibilidad de efectuar el tipo de manipulaciones algebraicas que
k≥0
necesitemos. Muchas veces, el uso de estas manipulaciones proporciona expresiones explı́citas
de los términos un de la sucesión. En lo que sigue veremos una primera ilustración de la versa-
tilidad de las funciones generadoras revisando los coeficientes binomiales y algunos problemas
combinatorios asociados a estos números en la perspectiva de las funciones generadoras.

5.4.1. Propiedades de las funciones generadoras


Entre las más importantes tenemos:

1. Adición Si U (x) es la función generadora de la sucesión a0 , a1 a2 , . . . y V (x) es la función


generadora de la sucesión b0 , b1 , b2 , . . ., entonces αU (x) + βV (x) es la función generadora
de la sucesión αa0 + βb0 + αa1 + βb1 , . . ..
2. Desplazamiento. Si U (x) es la función generadora de la sucesión a0 , a1 a2 , . . ., entonces
xn U (x) es la función generadora de
n ceros
z }| {
0, . . . , 0, a0 , a1 , a2 , . . .
Análogamente 
U (x) − a0 − a1 x − · · · − an−1 xn−1 /xn
es la función generadora de an , an+1 , . . ..
3. Multiplicación. Si U (x) es la función generadora de la sucesión a0 , a1 a2 , . . . y V (x) es
la función generadora de la sucesión b0 , b1 , b2 , . . ., entonces
 
U (x) V (x) = a0 + a1 x + a2 x2 + · · · b0 + b1 x + b2 x2 + · · ·
= (a0 b0 ) + (a0 b1 + a1 b0 ) x + (a0 b2 + a1 b1 + a2 b0 ) x2 + · · ·
es la función generadora de la sucesión s0 , s1 , s2 , . . ., donde
X
sn = ak bn−k .
0≤k≤n

10
4. Cambio de variable. Si U (x) es la función generadora de la sucesión a0 , a1 a2 , . . .,
entonces U (cx) es la función generadora de la sucesión a0 , ca1 , c2 a2 , . . .. En particular,
1
la función generadora de la sucesión 1, c, c2 , c3 , . . ., es , para |cx| < 1.
1 − cx
n
Ejemplo 5.18. Para un
 n ∈ N dado, la función U (x) = (1 + x) es la función generadora de
n
la sucesión ak = .
k
Ejemplo 5.19. Si tomamos x = 1 en el ejemplo anterior, obtenemos
n  
X
nn
U (1) = 2 =
k
k=0

que no es más que el número total de subconjuntos de un conjunto de n elementos. Si A es tal


conjunto entonces n (P (A)) = 2n .

Teorema 5.20. El teorema del binomio generalizado. Sea x un número real con |x| < 1 y sea
m un número real. Entonces
∞  
m
X m
(1 + x) = xk .
k
k=0

Cuando el parámetro superior es un número entero negativo, el coeficiente binomial gene-


ralizado se puede expresar en términos de un coeficiente binomial ordinario. Para ver que este
es el caso, tenemos en cuenta que
 
−n (−n) (−n − 1) · · · (−n − kr + 1) (−1)k n (n + 1) · · · (n + k − 1)
= =
k k! k!
(−1)k (n + k − 1) (n + k − 2) · · · n (−1)k (n + k − 1)!
= =
k! k! (n − 1)!
 
n+k−1
= (−1)k
k

Usando esto podemos escribir


n  
−n
X k n+k−1
(1 + x) = (−1) xk
k
k=0

y ası́
n   ! X
n   !
X n n + k − 1
(1 + x)n (1 + x)−n = 1 = xk (−1)k xk
k k
k=0 k=0

Ejemplo 5.21. W (x) = (1 − x)−1 es la función generadora de la sucesión de término general


an = 1.
Prueba. Sabemos
n
2
X xn+1 − 1
V (x) = 1 + x + x + · · · = xk =
x−1
k=0

y
1
V (x) = W (x) = = 1 + x + x2 + x3 + · · ·
x−1

11
pues, primero V (x) es la función generadora de la sucesión constante 1,1,1,1,1,..., y ası́ xV (x)
es la función generadora de 0,1,1,1,1,1,..., obteniéndose

(1 − x) V (x) = 1

Siempre que |x| < 1

Ejemplo 5.22. Del ejemplo anterior


n
1 X
W (x) = = 1 + x + x2 + x3 + · · · + xn = xk
1−x
k=0

y derivando ambos lados tenemos


1
W ′ (x) = 2 3
2 = 1 + 2x + 3x + 4x + · · · + nx
n−1
(1 − x)
1
Resulta, entonces que es la función generadora de la sucesión 1, 2, 3, 4, . . .; usando la
(1 − x)2
propiedad del desplazamiento
x
H (x) =
(1 − x)2
genera la sucesión 0, 1, 2, 3, . . ..

Ejemplo 5.23. Del ejemplo anterior


 
′ d x 1 x+1
H (x) = =− 3 (x + 1) =
dx (1 − x)2 (x − 1) (1 − x)3

genera la sucesión n2 , n ≥ 1 y

x (x + 1)
(x) H ′ (x) =
(1 − x)3

es la función generadora de la sucesión {bn } , n ≥ 0 con bn = n2 .

Ejemplo 5.24. Si U (x) es la función generadora de la sucesión a0 , a1 , a2 , . . ., entonces


Z Z
1 x 1 x  1 a1 a2 
Z (x) = U (s) ds = a0 + a1 x + a2 x2 + · · · ds = a0 x + x2 + x3 + · · ·
x 0 x 0 x 2 3
1 1
= a0 + a1 x + a2 x2 + · · ·
2 3
 
an
es la función generadora de la sucesión .
n+1
Además de la función generadora ordinaria de una sucesión {an }, n ≥ 0, se consideran habi-
tualmente otros tipos de funciones generadoras. Particularmente interesantes son las funciones
generadoras exponenciales.
La función generadora exponencial de la sucesión {an }, n ≥ 0, es

X an
E (x) = xn (abc)
n!
n=0

12
Ejemplo 5.25. Si hacemos an = 1 para todo n ∈ N en (abc) entonces

X xn
= ex
n!
n=0

y obtenemos la función generadora de la sucesión {1, 1, 1, . . .}.


1 1 1
Es de observar que ex es la función generadora ordinaria de la sucesión 1, 1, , , , . . ..
2! 3! 4!
El uso de funciones generadoras exponenciales proporciona una herramienta alternativa
para describir combinaciones de sucesiones en términos de funciones generadoras. La ventaja
de esta modificación respecto de las funciones generadoras ordinarias consiste sobre todo en la
propiedad enunciada en la siguiente proposición.

Proposición 5.26. Si E(x) y G(x) son las funciones generadoras exponenciales de las sucesio-
nes {an }, n ≥ 0 y {bn }, n ≥ 0, respectivamente, entonces E(x)G(x) es la función generadora
de la sucesión {sn }, n ≥ 0 con
n  
X n
sn = ak bn−k
k
k=0
y
n
X n
X
E (x) = ak xk , G (x) = bk xk
k=0 k=0

1
Ejemplo 5.27. Sea f (x) = . Determinar los coeficientes del desarrollo en serie para
(1 − x)2

P
f (x) = ak xk .
k=0

5.5. Inclusión – Exclusión. Aplicaciones.


5.5.1. Conteo de elementos de conjuntos disjuntos: la regla de la suma
En esta sección trabajamos con problemas de conteo que se pueden resolver contando el
número de elementos en la unión de los dos conjuntos, la diferencia de dos conjuntos o la
intersección de dos conjuntos.
La regla básica subyacente en el cálculo del número de elementos en una unión o diferencia
o intersección es la regla de la suma. Esta regla establece que el número de elementos en una
unión de conjuntos finitos mutuamente disjuntos es igual a la suma del número de elementos
en cada uno de los conjuntos componentes.

Proposición 5.28. La regla de la suma.

Suponga un conjunto finito A que es igual a la unión de k subconjuntos distintos mutua-


mente disjuntos A1 , A2 , . . . , Ak . Entonces

n(A) = n(A1 ) + n(A2 ) + · · · + n(Ak ).

Ejemplo 5.29. Una contraseña de acceso a la computadora consta de una a tres letras elegidas
de 26 letras de un alfabeto con repeticiones permitidas. ¿Cuántas contraseñas diferentes son
posibles?

Ejemplo 5.30. ¿Cuántos enteros de tres dı́gitos (enteros de 100 a 999 inclusive) son divisibles
por 5?

13
Una consecuencia importante de la regla de adición es el hecho de que si el número de
elementos en un conjunto A y el número en un subconjunto B de A son ambos conocidos,
entonces el número de elementos que se encuentran en A y no se encuentran en B se puede
calcular.

Proposición 5.31. La regla de la diferencia.


Si A es un conjunto finito y B es un subconjunto de A, entonces

n (A − B) = n (A) − n (B) .

Ejemplo 5.32. El número de palabras de cinco letras que contienen al menos una vocal se
calcula fácilmente como el total de palabras menos las que no tienen ninguna vocal, 526 − 521 .

Una de las operaciones entre conjuntos que admite una traducción directa en términos de
cardinales es la del producto cartesiano.

Proposición 5.33. Sean A y B dos conjuntos finitos y A×B su producto cartesiano. Entonces

n (A × B) = n (A) · n (B)

La proposición anterior se puede extender por inducción a cualquier número finito de fac-
tores. Si A1 , . . . , Ar son conjuntos finitos, entonces

n (A1 × · · · × Ar ) = n (A1 ) · · · n (Ar )

El resultado de la proposición anterior se conoce a veces como la regla del producto y se


expresa diciendo que, si para realizar un proceso en dos etapas hay n1 maneras de hacer la
primera y, para cada una de ellas, n2 de realizar la segunda, entonces el número total de
maneras de realizar el proceso es el producto n1 n2 . Si llamamos A al conjunto de maneras de
realizar la primera etapa y B al conjunto de maneras de realizar la segunda, el conjunto de
maneras de realizar el proceso es A × B. Este es el procedimiento que se usa para calcular
el número de permutaciones. Por ejemplo, las permutaciones de n elementos sin repetición se
pueden formar en un proceso de n etapas. En la primera hay n elecciones posibles del primer
elemento, en la segunda n − 1 elecciones, y ası́ sucesivamente hasta la última que admite una
única opción, de manera que el número total de permutaciones es el producto n!

Proposición 5.34. El número de palabras de longitud n, sin repetición de letras, sobre un


alfabeto de k elementos es k(k − 1)(k − 2) (k − n + 1)

Ejemplo 5.35. ¿Cuántos números de 3 cifras existen sin cifras repetidas?

5.5.2. Principio de inclusión-exclusión


En la sección anterior se ha relacionado el cardinal de la unión A de k conjuntos disjuntos
con el cardinal de cada uno de ellos a través de la igualdad

n(A) = n(A1 ) + n(A2 ) + · · · + n(Ak ).

Cuando los conjuntos no son disjuntos se puede obtener una fórmula que hace intervenir el
cardinal de la intersección.

Proposición 5.36. Sean A y B dos conjuntos finitos. Entonces

n (A ∪ B) = n (A) + n (B) − n (A ∩ B)

14
El llamado principio de inclusión-exclusión es una extensión de este resultado al caso de
la unión de n conjuntos y tiene una expresión un poco más compleja.
Teorema 5.37. (Principio de inclusión-exclusión). Sean A1 , A2 , . . . , An conjuntos finitos. En-
tonces
n
X X
n (A1 ∪ A2 ∪ · · · ∪ An ) = n (Ai ) − n (Ai ∩ Aj ) + · · ·
i=1 i<j
r
X
+ (−1) n (Ai1 ∩ · · · ∩ Air )
i1 <···<ir
n−1
+ · · · + (−1) n (A1 ∩ A2 ∩ · · · ∩ An )

Ejemplo 5.38. Un profesor en una clase de matemáticas discretas, pasa una encuesta en la
que se solicita a los estudiantes que indiquen los cursos de matemáticas y de informática en
los que se han matriculado recientemente. De un total de 50 alumnos, encontró que
30 alumnos se matricularon en análisis 3, 18 se matricularon en análisis 4, 26 se matri-
cularon en Java, 9 se matricularon en análisis 3 y análisis 4, 16 se matricularon en análisis
3 y Java, 8 se matricularon en análisis 4 y Java y 47 se matricularon en al menos uno de los
tres cursos.
a. ¿Cuántos estudiantes no se matricularon en ninguno de los tres cursos?
b. ¿Cuántos estudiantes se matricularon en los tres cursos?.
Ejemplo 5.39. Conteo de elementos de una unión general
a. ¿Cuántos enteros del 1 al 1000 son múltiplos de 3 o múltiplos de 5?
b. ¿Cuántos enteros del 1 al 1000 ni son múltiplos de 3 ni son múltiplos de 5?
Ejemplo 5.40. Hallar el número de enteros positivos n tales que 1 ≤ n ≤ 100 y n no es
divisible entre 2, 3 o 5.
Principio de Dirichlet
Otro principio muy útil en combinatoria es el denominado principio de Dirichlet, también
conocido como el principio del palomar, debido a que este se concibe a partir del siguiente
problema: “si se introducen n palomas a un palomar con k nidos, k < n, al menos en un nido
habrá 2 o más palomas”.
La razón por la que esta afirmación es cierta se aprecia mediante un argumento por contra-
dicción. Si la conclusión es falsa, cada palomar contiene cuando mucho una paloma y, en este
caso, se puede rendir cuenta de a lo más k palomas. Como hay n palomas y n > k, se tiene
una contradicción.
Este principio no hace referencia al hecho de cómo localizar el nido que contiene 2 o más
palomas, solo afirma la existencia de un nido con 2 o más palomas.
Para aplicar ese principio, primero se debe establecer cuáles objetos desempeñan el papel
de las palomas y cuáles el de los nidos.
Ejemplo 5.41. Se tiene un operador de una computadora que tiene una unidad de disco duro
externo para respaldar la información de la oficina donde trabaja. Un dı́a le dan otro disco
duro externo que contiene 600 000 “palabras” de cuatro o menos letras minúsculas. En el disco
duro las palabras consecutivas se separan con un carácter en blanco. ¿Puede suceder que las
600 000 palabras sean distintas entre sı́?
Ejemplo 5.42. Demostrar que cualquier subconjunto de tamaño seis del conjunto

S = {1, 2, 3, 4, 5, 6, 7, 8, 9}

contiene al menos dos elementos cuya suma es 10.

15
5.6. Ejercicios
1. Se quiere determinar el número de regiones en las cuales queda dividido un plano al
trazar en este n rectas, de forma que estas se corten de dos en dos, y de tal manera que
tres rectas no tengan un punto común. Si an es el número total de regiones, encontrar
una relación de recurrencia para calcular an .

2. Resolver la relación de recurrencia

an = an−1 + 3

sujeta a la condición inicial a1 = 2 mediante iteraciones.

3. Sea Sn el número de subconjuntos de un conjunto de n elementos y al pasar de un


conjunto de (n − 1) elementos a un conjunto de n elementos se duplica el número de
subconjuntos, se obtiene la relación de recurrencia Sn = 2Sn−1 . La condición inicial es
S0 = 1. Resolverla mediante iteraciones.

4. En cada uno de los ejercicios siguientes se define en forma recursiva una sucesión. Utilice
iteración para inferir una fórmula explı́cita para la sucesión. Simplificar sus respuestas
siempre que sea posible.

a) ak = kak−1 , para todo entero k ≥ 1, a0 = 1


bk−1
b) bk = , para todo entero k ≥ 1, b0 = 1
1 + bk−1
c) ck = 3ck−1 + 1, para todo entero k ≥ 2, c1 = 1

5. Sea b0 , b1 , b2 , ..., la sucesión definida por la fórmula explı́cita bn = C · 3n + D · (−2)n para


todo entero n ≥ 0, donde C y D son números reales.

a) Encuentre C y D tal que b0 = 0 y b1 = 5. ¿A qué es igual b2 en este caso?


b) Encuentre C y D tal que b0 = 3 y b1 = 4. ¿A qué es igual b2 en este caso?

6. En cada uno de los ejercicios siguientes, suponga una sucesión que satisfaga la relación
de recurrencia dada y las condiciones iniciales. Encuentre una fórmula explı́cita para la
sucesión.

a) rk = 2rk−1 − rk−2 , para todo entero k ≥ 2, r0 = 1, r1 = 4


b) sk = −4sk−1 − 4sk−2 , para todo entero k ≥ 2, s0 = 0, s1 = −1
c) tk = 6tk−1 − 9tk−2 , para todo entero k ≥ 2, t0 = 1, t1 = 3

7. Considere el segmento de algoritmo: Para cada entero positivo n, sea an el número de


iteraciones del bucle while
while (n > 0)
n := n div 2
end while

a) Represente la acción de este segmento de algoritmo sobre n cuando el valor inicial


de n es 27.
b) Encuentre una relación de recurrencia para an .
c) Obtenga una fórmula explı́cita para an .

16
8. Encontrar la función generadora para la sucesión de Fibonacci

fn = fn−1 + fn−2 , n ≥ 3, f1 = 1, f2 = 1.

9. En cierto sistema informático, una contraseña válida tiene entre 6 y 8 caracteres válidos.
El primero tiene que ser un carácter alfabético, los siguientes son alfabéticos o numéricos.
Hay 52 caracteres alfabéticos autorizados. Son

A = {a, b, c, ..., z, A, B, C, ..., Z}

y 10 caracteres numéricos autorizados

N = {0, 1, 2, ..., 9}.

¿Cuántas contraseñas válidas hay ?

10. En una cierta empresa, las contraseñas deben tener de 3 a 5 sı́mbolos largos y compuestos
de las 26 letras del alfabeto, los diez dı́gitos del 0 al 9 y los 14 sı́mbolos !, @, #, $, %, ˆ, &, ∗, (, ), −, +, {

a) ¿Cuántas contraseñas son posibles si se permite la repetición de sı́mbolos?


b) ¿Cuántas contraseñas no contienen sı́mbolos repetidos?
c) ¿Cuántas contraseñas tienen al menos un sı́mbolo repetido?
d ) ¿Cuál es la probabilidad de que una contraseña elegida aleatoriamente tenga n
sı́mbolos repetidos?

17

También podría gustarte