Академический Документы
Профессиональный Документы
Культура Документы
Funciones generatrices y
Combinatoria
En los usos que de las funciones generatrices hemos hecho hasta ahora partı́amos de
una sucesión de números (an ), que codificábamos con una función generatriz f (x). De la
sucesión (an ) conocı́amos habitualmente una fórmula (quizás escrita como una complicada
suma) o una regla de recurrencia. Manipulando la función generatriz, con las reglas que
aprendimos en su momento, conseguı́amos extraer conclusiones sobre la sucesión (an ) como,
por ejemplo, fórmulas a partir de la recurrencia.
El objetivo fundamental de este capı́tulo, no lo ocultamos, pese a que el tı́tulo pudiera ha-
cer sospechar que nuestros intereses son más amplios, es el de estudiar la cuestión del número
de particiones que podemos hacer de un entero positivo n, las que cuenta la función p(n)
(véase la subsección 3.3.3), o quizás también particiones con determinadas caracterı́sticas.
Pero, por el camino, y como parte de un lenguaje general, analizaremos otras cuestiones
combinatorias como, por ejemplo, los multiconjuntos con ciertas peculiaridades o, de forma
equivalente, el número de soluciones de una ecuación diofántica con ciertas restricciones.
En la sección 10.6 ya adelantamos, en cierta manera, el espı́ritu del análisis que nos
disponemos a iniciar. La cuestión combinatoria que nos interesaba entonces, el número de
permutaciones con ciertas restricciones se codificaba, primero, como un tablero en el distri-
buı́amos torres y, tras esta representación simbólica, las respuestas pertinentes se integraban
en una función generatriz (un polinomio, en realidad).
Al procedimiento de representación simbólica de diversas cuestiones combinatorias está de-
dicada la primera sección de este capı́tulo.
La sección 12.2 estará dedicada a aplicar esta técnica al problema de las particiones.
Nuestro objetivo es descubrir las funciones generatrices asociadas a los distintos tipos de
particiones de interés, para luego extraer de ellas conclusiones relevantes (como, por ejemplo,
reglas de recurrencia).
En la sección 12.3 trataremos una cuestión fascinante, pero que requiere ciertas herra-
mientas de Análisis Complejo, como es la de estudiar comportamientos asintóticos, funda-
mentalmente las de las sucesiones relacionadas con las particiones de enteros.
849
850 Capı́tulo 12. Funciones generatrices y Combinatoria
Cada uno de ellos se puede describir, de forma compacta e informativa, de la manera siguiente:
{1α , 2β , 3γ } con 0 ≤ α ≤ 2, 0 ≤ β ≤ 1 y 0 ≤ γ ≤ 2.
donde α indica el número de veces que aparece el elemento 1 en el multiconjunto, β el número
de veces que lo hace el 2 y γ, el 3.
Por otro lado, la propia notación anterior nos invita a considerar el siguiente producto de
polinomios
(1 + x1 + x1 2 ) (1 + x2 ) (1 + x3 + x3 2 ) .
Si desarrollamos este producto y agrupamos los términos que nos aparecen según su grado
total (la suma de los grados con que aparezcan las variables x1 , x2 y x3 ), obtenemos:
⎧
⎪
⎪ grado 0 → 1
⎪
⎪ grado 1 → x1
⎪
⎪ x2 x3
⎨
grado 2 → x1 2 x1 x2 x1 x3 x2 x3 x3 2
Sumandos:
⎪
⎪ grado 3 → x1 x2 2 x1 x3 x1 x2 x3 x1 x3 2 x2 x23
2
⎪
⎪
⎪
⎪ grado 4 → x1 2 x2 x3 x21 x23 x1 x2 x23
⎩
grado 5 → x1 2 x2 x3 2
Todos los sumandos son de la forma
xα1 xβ2 xγ3 con 0 ≤ α ≤ 2, 0 ≤ β ≤ 1 y 0 ≤ γ ≤ 2.
De manera que los multiconjuntos y los monomios son la misma cosa: en ambos casos, basta
con dar una lista de tres números, (α, β, γ), que cumplan las restricciones señaladas arriba,
para tener, en un caso, un multiconjunto de los que queremos contar, y en el otro un sumando
en el desarrollo del polinomio. La regla (biyección) que nos permite pasar de unos objetos a
otros será
α veces β veces γ veces
x1 α x2 β x3 γ ←→ {1α , 2β , 3γ } = 1, · · · , 1, 2, · · · , 2, 3, · · · , 3 .
Además, el grado total de cada monomio coincide con el tamaño del multiconjunto que tiene
asociado.
Hemos transformado el problema de contar el número de multiconjuntos de tamaño diga-
mos k que podemos formar con los elementos {1, 2, 3}, respetando las restricciones señaladas,
en el de contar cuántos términos de grado total k aparecen en el desarrollo del producto de
polinomios escrito anteriormente.
Resta un último paso en el esquema de representación del método simbólico. Suele ser el
caso que sólo nos interesa el número de multiconjuntos con las propiedades requeridas, y no
una lista con todos ellos. Si en el producto
(1 + x1 + x21 )(1 + x2 )(1 + x3 + x23 )
ponemos x1 = x2 = x3 = x, entonces todos los monomios de grado k se transforman en xk ,
y el coeficiente de xk de
(1 + x + x2 )(1 + x)(1 + x + x2 )
nos dice, finalmente, cuántos k-multiconjuntos hay con las restricciones impuestas.
La idea es general: digamos que, partiendo de los sı́mbolos {1, . . . , n}, nos interesa formar
los multiconjuntos en los que el sı́mbolo 1 aparece, a lo sumo, r1 veces, el sı́mbolo 2 a lo sumo
r2 veces, etc. Con argumentos análogos a los de antes, podemos establecer una biyección
entre los dos siguientes colecciones de objetos:
⎧ ⎫ ⎧ ⎫
⎪ Multiconjuntos extraı́dos ⎪ ⎪
⎪ Sumandos que aparecen en el desarrollo ⎪
⎪
⎪
⎨ ⎪
⎬ ⎪
⎨ del producto de polinomios en n variables ⎪ ⎬
de {1, . . . , n} en los que
←→ n
⎪
⎪ cada elemento j aparece, ⎪ ⎪ ⎪
⎪ r
1 + xj + · · · + xj j ⎪
⎪
⎩ ⎭ ⎪
⎩ ⎪
⎭
a lo sumo, rj veces. j=1
Fijémonos en que el número de elementos {1, . . . , n} que conforman los multiconjuntos coinci-
de con el de variables que consideramos, x1 , . . . , xn . Y que el número de apariciones permitidas
de cada elemento j (entre 0 y rj ) se traduce en el tipo de polinomio en la variable xj que
consideramos (en este caso, un polinomio con todos los términos entre grado cero y grado rj ).
Si lo que queremos es contar el número de multiconjuntos de tamaño k con estas carac-
terı́sticas, es decir, conocer el número de soluciones de
x1 + · · · + xn = k
,
xj ≤ rj
el truco de cambiar, en el producto de polinomios, a una única variable x, nos permite afirmar
que la respuesta está en el coeficiente que acompaña a xk en el desarrollo en serie de
n
1 + x + x2 + · · · + xrj .
j=1
Ésta es la esencia del método simbólico. Veámoslo ahora en acción en unos cuantos ejemplos.
Ejemplo 12.1.1 Multiconjuntos formados con los sı́mbolos {1, . . . , n}.
Si no queremos imponer restricciones sobre cuántas repeticiones se permiten a los elementos,
entonces debemos considerar el producto siguiente:
(1 + x1 + x1 2 + · · · )(1 + x2 + x2 2 + · · · ) · · · (1 + xn + xn 2 + · · · ) ,
que contiene infinitos términos, cada uno de los cuales se corresponde con un multiconjunto
extraı́do de {1, . . . , n} sin restricciones sobre el número de veces que aparece cada elemento.
Si lo que nos interesa es el número de multiconjuntos de tamaño k, entonces sustituimos
cada una de las variables x1 , x2 , . . . , xn por una única variable x para obtener
n
2
n 1
1 + x + x + ... = .
1−x
La respuesta que buscamos, el número R(n, k), es el coeficiente de xk de la serie de potencias
anterior, una de nuestras favoritas:
∞
1 n+k−1 k
= x .
(1 − x)n k
k=0
(1 + x1 )(1 + x2 )(1 + x3 ) · · · (1 + xn ) .
Nótese que el que cada sı́mbolo aparezca al menos una vez en el multiconjunto se traduce
en que los polinomios considerados no tienen término independiente. Ahora, de todos estos
multiconjuntos, nos interesa contar cuántos hay con tamaño n. El ya habitual paso a una
única variable nos dice que la respuesta está en el coeficiente n-ésimo de la función
k ∞
x 1 m+k−1 m
= xk = xk
x
1−x (1 − x)k k−1
j=1 m=0
∞ ∞
m + k − 1 m+k n − 1 n
= x = x .
m=0
k−1 k−1
n=k
porque 10 euros son 1000 céntimos de euro y debemos tener en cuenta el valor de cada
moneda. Obsérvese que no es una ecuación diofántica como las escritas hasta aquı́.
Pero pongamos en marcha la maquinaria simbólica: Llamemos, por ejemplo, P2 al con-
junto de todas las posibles combinaciones de dos céntimos y representémoslas simbólicamente
como
P2 −→ 2 2 2 2 2 2 2 2 2 2 2 ...
donde el primer sı́mbolo significa que no se utiliza ninguna moneda de dos céntimos. Hagamos
lo mismo con las monedas de cinco céntimos:
P5 −→ 5 5 5 5 5 5 5 5 5 5 5 ...
Supongamos, por el momento, que se nos permite dar cambio utilizando monedas de dos
y cinco céntimos. Las posibles combinaciones (que llamaremos P2,5 ) serán
P2,5 −→ 2 5 2 5 2 5 5 2 5 5 5 2 5 5 5 5 ···
2 5 2 5 2 5 5 2 5 5 5 2 5 5 5 5 ···
2 2 5 2 2 5 2 2 5 5 2 2 5 5 5
···
.. .. ..
. . .
(Obsérvese que el orden de presentación de las monedas no importa). Intentemos ahora
expresar estos sı́mbolos en términos de objetos más conocidos: por ejemplo, podemos asociar
a P2 un polinomio en una variable x2 ,
Esta representación será útil si podemos reproducir el álgebra de las monedas, es decir, si al-
guna combinación de los polinomios P2 (x2 ) y P5 (x5 ) nos produce todas las configuraciones de
monedas que se pueden obtener al mezclar los dos tipos. Si multiplicamos los dos polinomios,
P2 (x2 ) P5 (x5 ) = 1 + x2 + x22 + x32 + · · · 1 + x5 + x25 + x35 + · · ·
= 1 1 + x5 + x25 + · · · + x2 1 + x5 + x25 + · · · + x22 1 + x5 + x25 + · · · + · · ·
Perfecto, ¡funciona!. Porque a cada configuración de monedas que puede aparecer le corres-
ponde un término (y sólo uno) en este producto de polinomios: por ejemplo, dos monedas de
dos y tres de cinco se corresponde con el término x22 x35 .
Vamos a definir, de forma análoga, otros polinomios para cubrir el resto de los casos: para
las monedas de uno, el polinomio P1 (x1 ), y para las de veinte, P20 (x20 ). De esta manera, toda
la información sobre las configuraciones de monedas que pueden aparecer usando los cuatro
tipos está codificada en el producto de polinomios
P1 (x1 ) P2 (x2 ) P5 (x5 ) P20 (x20 ) = 1 + xj + x2j + x3j + · · · .
j=1,2,5,20
Pero lo querı́amos contar, recordemos, era de cuántas maneras se puede dar cambio de diez
euros con estos cuatro tipos de monedas. Consideremos una configuración de monedas cual-
quiera, por ejemplo, la que contiene a monedas de 1, b de 2, c de 5 y d de 20. El “valor” de
esta combinación es a + 2b + 5c + 20d. Pero el término que en la representación simbólica
anterior lleva asociada esta configuración es
De manera que, si hacemos el cambio habitual de pasar a una única variable x, este término se
transforma en xa+b+c+d . El grado de este monomio no es el que querrı́amos, a + 2b + 5c + 20d.
Luego el cambio habitual no es el apropiado aquı́. Aunque más adelante formalizaremos
la técnica general, ya podemos intuir, por la estructura del problema (los diferentes valores
de cada moneda), que el cambio adecuado es
x1 = x , x2 = x2 , x5 = x5 y x20 = x20 ,
xa1 xb2 xc5 xd20 pasa a ser xa x2b x5c x20d = xa+2b+5c+20d ,
12.1.1 Compruébese que, si L(k) son los números de Leibniz (véase el ejemplo 6.1.14), es decir, el
resultado de escribir k en binario y sumar luego las cifras de este desarrollo, se cumple que
N +1
N
2 −1
j
1 + y x2 = y L(k) xk para cada N ≥ 0.
j=0 k=0
Compruébese que
2N
+1
−1
N +1
(a) 3 = 2L(k) ;
k=0
2N
+1
−1
N +1
(b) (1 + y) = y L(k) ;
k=0
N +1
(c) #{0 ≤ k ≤ 2N +1 / L(k) = j} = para cada 0 ≤ j ≤ N + 1 ;
j
∞
∞
2j 1
(d) (1 + x ) = xk = si |x| < 1.
j=0
1−x
k=0
Esta cuestión nos recuerda a la del cambio de monedas que vimos en el ejemplo 12.1.4.
Vamos a transformarla en una con un aspecto más familiar de la siguiente manera: para cada
j = 1, . . . , k, consideramos el cambio de variables xj = j yj . Con esto, nos enfrentamos con
la cuestión de contar el número de soluciones de la ecuación diofántica
x1 + x2 + · · · + xk = n ,
donde ahora las restricciones son algo distintas, pues cada xj ha de ser un múltiplo (no
negativo) de j. Esto es, x1 puede ser un entero no negativo cualquiera, pero x2 ha de ser par,
x3 múltiplo de 3, etc.
Este planteamiento, junto con los ejemplos que vimos en la sección 12.1, nos convencen de
la necesidad de desarrollar una metodologı́a general para abordar las siguientes cuestiones:
contar el número de multiconjuntos de tamaño n formados con los sı́mbolos {1, . . . , k}
con restricciones del siguiente tipo: para cada j = 1, . . . , k, el sı́mbolo j puede aparecer
un número de veces que pertenece a un cierto conjunto Lj ⊆ N ∪ {0}.
x1 + x2 + · · · + xk = n ,
O, equivalentemente, contar el número de soluciones de
x1 ∈ L1 , x2 ∈ L2 , . . . , xk ∈ Lk .
Los datos del problema son n, k y cada uno de los Lj . Como podrá comprobar el lector, todos
los ejemplos que hemos visto hasta aquı́ se ajustan a esta estructura, sin más que establecer
adecuadamente los papeles de k y n y tomar los Lj apropiados.
Ahora recurrimos al método simbólico. Buscamos primero un producto de k series
de potencias en cuyo desarrollo cada término se corresponda con uno de los multiconjuntos
que estamos manejando. Para que se cumplan las restricciones del problema, ese producto
habrá de ser de la siguiente forma:
j j
P (x1 , . . . , xk ) = x1 x2 · · · xjk .
j∈L1 j∈L2 j∈Lk
Como lo que nos interesa es el número de términos que tienen grado total n, empleamos el
truco habitual de cambiar a una única variable x. Ası́ obtenemos
k k
P (x) = xj
x ···
j j
x = xm
= QLj (x) ,
j∈L1 j∈L2 j∈Lk j=1 m∈Lj j=1
Observe el lector que el coeficiente de xn de P (x) es R(k, n) pues, como ya habrá notado,
hemos cambiado los papeles habituales de n y k.
Si ahora estuviéramos interesados en los multiconjuntos de tamaño n con sı́mbolos del
conjunto {1, . . . , k} en los que cada sı́mbolo aparece al menos una vez, esto es, en las com-
posiciones de n con k sumandos, tendrı́amos que Lj = N para cada j = 1, . . . , k. Ası́ que
∞
k ∞
m x xk n−1 n
QLj (x) = x = =⇒ P (x) = QLj (x) = = x
m=1
1−x (1 − x)k n=0
k−1
j=1
n−1
La respuesta es, como bien sabemos, k−1 . Veamos otro ejemplo:
Ejemplo 12.2.1 Queremos contar el número de multiconjuntos de tamaño n que se pueden
formar con los sı́mbolos {1, 2, 3} de manera que haya un número par (o cero) de unos, un
número impar de doses y, a lo sumo, 2 treses. Esto es, las soluciones de x1 + x2 + x3 = n,
con x1 par, x2 impar y 0 ≤ x3 ≤ 2.
La respuesta está en el coeficiente n-esimo del desarrollo de
2
m m m 1 x x + x2 + x3
P (x) = x x x = (1+x+x2 ) = ,
m par
1 − x2 1 − x2 (1 − x)2 (1 + x)2
m impar m=0
porque
∞
∞
∞
m 2m 1 m 2m+1 x
x = x = y x = x =x x2n = .
m par
1 − x2 1 − x2
m=0 m impar m=0 m=0
Utilizando fracciones simples, desarrollamos en serie de potencias P (x) para obtener que su
sucesión de coeficientes, las respuestas buscadas para cada n, viene dada por
n ∞
3 − (−1)n = (0, 1, 1, 3, 2, 5, 3, 7, 4, 9, 5, 11, 6, 13, 7, 15, 8, 17 . . . ) .
4 n=0
El lector puede entretenerse listando los multiconjuntos con estas caracterı́sticas que hay
para los primeros valores de n. ♣
Volvamos sobre el ejemplo 12.1.4 sobre el cambio de monedas, ahora con este enfoque
general. Hay cuatro sı́mbolos, {1, 2, 5, 20}, y los conjuntos asociados son los siguientes: L1 =
N ∪ {0}, L2 son los números pares, L5 son los múltiplos de 5, mientras que L20 los de 20. El
número de maneras de dar cambio de n céntimos de euro con estas monedas es el coeficiente
que acompaña a xn en
∞
∞
∞
∞ 1 1 1 1
P (x) = xm x2m x5m x20m = .
m=0 m=0 m=0 m=0
1 − x 1 − x 1 − x 1 − x20
2 5
Ahora no es tarea sencilla obtener una expresión para el coeficiente n-esimo de P (x), aunque
el ordenador los calcula muy eficientemente. Volveremos sobre este ejemplo en la sección 12.3
(véase en particular el ejemplo 12.3.4).
Consideremos las particiones de n cuyos sumandos son, a lo sumo, de tamaño k. Como
vimos al principio de esta sección, el problema es equivalente a extraer multiconjuntos de
tamaño n de {1, . . . , k} de manera que cada sı́mbolo j pertenezca a Lj = {0, j, 2 j, 3 j, . . . }.
O bien, si queremos, a contar el número de soluciones de x1 + · · · + xk = n, donde xj ∈ Lj ,
para cada j = 1, . . . , k. Las sumas de interés son
∞
1
QLj (x) = xm = xj m = para cada j = 1, . . . , k.
1 − xj
m múltiplo de j m=0
De manera que la función generatriz de los números p(n | partes de tamaño a lo sumo k) es
k
k
1 1 1 1
P (x) = QLj (x) = = ... .
1−xj 1−x 1−x2 1 − xk
j=1 j=1
donde todos los yj son no negativos. Observe el lector que, para un n dado, la suma es finita
pues, por ejemplo, no podemos elegir números mayores que el propio n para la partición. Pero
no nos preocupemos por eso, que esa información ya está contenida en la función generatriz.
x1 + x2 + x3 + x4 + · · · = n ,
donde cada xj debe pertenece ahora al conjunto {0, j, 2 j, 3 j, . . . }. Con argumentos análogos
a los empleados en el caso de las particiones con partes de tamaño limitado, llegamos a que
la sucesión p(n) son los coeficientes de la función
∞
1
P (x) = .
1 − xj
j=1
En las subsecciones 12.2.3 y 12.3.3 nos dedicaremos a extraer información sobre p(n) a partir
de esta identidad. ♣
y queremos formar multiconjuntos con ellos. Pero todos los isótopos del 1 (11 , 12 , etc.) han
de aparecer un número de veces perteneciente a L1 , los del 2 a L2 , etc.
Nada de esto es una novedad, simplemente estamos agrupando los sı́mbolos que dan contribu-
ciones iguales a la función generatriz global. Pero es una notación conveniente para estudiar
ciertos problemas. En particular, uno sobre el número de árboles no isomorfos. Veamos antes
un par de ejemplos más sencillos.
Llegamos ası́, directamente, al resultado que habrı́amos obtenido con el método habitual. ♣
Ejemplo 12.2.4 Llamemos d(n) al número de árboles no isomorfos con n vértices, y h(n)
al número de bosques no isomorfos con n vértices.
En la sección 8.2.1 estudiamos los primeros valores de d(n):
n 1 2 3 4 5 6 7 8 ···
d(n) 1 1 1 2 3 6 11 23 · · ·
Para formar un bosque con n vértices basta escoger unos cuantos árboles, de manera que en
total tengamos n vértices. Etiquetemos con 1 a los árboles con un único vértice, con 2 a los
que tienen dos vértices, etc. En general, el sı́mbolo j representa a los árboles con j vértices
(este sı́mbolo tiene d(j) isótopos).
Todo lo que tenemos que hacer es formar multiconjuntos de tamaño total n formados
con los sı́mbolos {1, 2, . . . } de manera que cualquiera de los d(j) isótopos de cada sı́mbolo j
aparezca un número de veces perteneciente al conjunto Lj = {0, j, 2 j, 3 j, . . . } (porque cada
vez que escogemos un isótopo de éstos para el bosque, aportamos j vértices). El número de
maneras de hacer esto, que llamábamos h(n), será entonces
∞
h(n) = Coefn QLj (x)d(j) .
j=1
Pero como
∞
1
QLj (x) = xm j = ,
m=0
1 − xj
obtenemos finalmente que
∞
∞
1
h(n) xn = .
n=0 j=1
(1 − xj )d(j)
Esta expresión liga los valores de h(n) con los d(j): si conociéramos alguna de las sucesiones,
podrı́amos calcular los términos de la otra. Pero ninguna de esas dos cantidades son sencillas
de obtener, como bien sabemos. La dificultad, por supuesto, estriba en que aquı́ no hay
etiquetas1 . ♣
Si añadimos estructura al problema, podemos obtener un resultado mejor.
Ejemplo 12.2.5 Llamemos ahora d(n) al número de árboles no isomorfos con n vértices,
pero donde señalamos un vértice especial, la raı́z. De la misma forma,
h(n) describe el número
de bosques no isomorfos con n vértices tales que todos sus árboles tienen raı́z.
Los mismos argumentos que en el ejemplo anterior nos permiten deducir que
∞
∞
1
h(n) xn = .
n=0 j=1 (1 − xj )d(j)
Pero ahora tenemos una ventaja, y es que ocurre que + 1), para cada n ≥ 0. La
h(n) = d(n
biyección que permite relacionar ambas cantidades está representada en el siguiente esquema
(en oscuro, los vértices que son raı́z):
-
1
Si las hubiera, sabemos, por el teorema de Cayley (teorema 8.8), que árboles distintos con n vértices
hay nn−2 . Pero ¡atención!: si consideráramos etiquetas, los argumentos sobre la forma en que se combinan
los árboles para formar bosques se complican: las funciones generatrices exponenciales que veremos en el
capı́tulo 13 nos ayudarán en ese caso.
En palabras, dado un bosque con n vértices (de manera que todos sus árboles tengan raı́z),
añadimos un nuevo vértice que unimos con todas las raı́ces para obtener un árbol con raı́z
y un vértice más. Y al revés: dado un árbol con raı́z y n + 1 vértices, eliminamos la raı́z
y todas las aristas que parten de él: obtenemos ası́ un bosque con n vértices cuyos árboles
tienen todos raı́z (son los “hijos” de lo que era la raı́z original).
Con este ingrediente extra, podemos escribir que
∞
∞
+ 1) xn = 1
d(n .
n=0 j=1 (1 − xj )d(j)
En esta identidad, que ya obtuvo Cayley en 1857, sólo aparecen los d(n); a partir de ella
podrı́amos implementar un procedimiento recursivo para obtener los valores de la sucesión
(d(n)), cuyos primeros términos son
n 1 2 3 4 5 6 7 8 ···
d(n) 1 1 2 4 9 20 48 115 · · ·
De esta expresión podemos obtener, de manera casi inmediata, la función generatriz de los
números pk (n), las particiones de n con exactamente k partes. Observemos primero que
pk (n) = 0 si n < k (porque cada parte, al menos, es de tamaño 1). Si además recordamos el
teorema 3.7, que nos decı́a que
obtenemos que
k ∞
1
= p(m | partes de tamaño a lo sumo k) xm
1 − xj
j=1 m=0
∞ ∞
∞
= pk (m + k) xm = pk (n)xn−k = pk (n)xn−k .
m=0 n=k n=0
De donde
∞
k
n k 1
pk (n)x = x .
n=0
1 − xj
j=1
Ejemplo 12.2.6 La función generatriz de las particiones de n en las que cada parte aparece,
a lo sumo, k veces.
Si llamamos, como siempre, yj al número de veces que aparece el sı́mbolo j en la partición,
contar esas particiones es lo mismo que contar el número de soluciones de
y1 + 2y2 + 3y3 + · · · = n x1 + x2 + x3 + · · · = n
o bien el de
0 ≤ yj ≤ k xj ∈ {0, j, 2 j, . . . , k j}
(nótese que ahora cada conjunto Lj es finito, ası́ que aparecerán polinomios). Con las herra-
mientas habituales, llegamos a que
∞ ∞
∞
n 1 − x(k+1)j
p n cada parte, a lo sumo k veces x = 1 + x + ··· + x
j kj
=
1 − xj ♣
n=0 j=1 j=1
Ejemplo 12.2.7 Obtengamos la función generatriz de las particiones de n que tienen todas
sus partes distintas.
No hay más que considerar el ejemplo anterior en el caso en que k = 1:
∞
∞
∞
1 − x2j
p(n | partes distintas) xn = = 1 + xj .
1−x j ♣
n=0 j=1 j=1
Ejemplo 12.2.8 Supongamos que sólo queremos contar las particiones con partes impares.
En general, si las partes han de estar en un cierto conjunto L, entonces
∞
1
p(n | partes en L)xn = .
1 − xj
n=0 j∈L
Con esto podemos probar, casi de forma inmediata, un resultado que anunciábamos al
final de la sección 3.3.3:
Teorema 12.1 (Euler)
p(n | partes impares) = p(n | partes distintas) .
Demostración. Sólo hay que comprobar que ambas sucesiones de números tienen la misma
función generatriz. Manipulando la correspondiente a las particiones con todas sus partes
distintas (ejemplo 12.2.7),
∞
1 − x2j j par (1 − x )
j 1
= ∞ = ,
1 − xj j=1 (1 − x j) 1 − xj
j=1 j impar
Cada partición de n cuyas partes sean todas distintas contribuye con un 1 al coeficiente de xn
del desarrollo de la función P (x). ¿Y si consideráramos la función
∞
P(x) = (1 − xj ) ?
j=1
Es como la función P (x), pero cambiamos un signo (aunque, ¡ojo!, no es P (−x)). Cada
partición de n con partes distintas sigue contribuyendo al coeficiente de xn de P(x); pero
ahora con un (−1)s , donde s es el número de partes que tenga la partición: si tiene un número
impar de partes, contribuirá con un −1 y si un número par, con un 1. Es decir,
∞
Coefn (1 − x ) = ppar (n) − pimpar (n) ,
j
j=1
Esta sorprendente identidad tiene su aplicación, como ya viera Euler, al cálculo de p(n).
Porque la función generatriz de los p(n)
∞
∞
1
p(n)xn =
1 − xj
n=0 j=1
Ası́ que el coeficiente n-ésimo de este producto de series es cero para cada n ≥ 1. Utilizando
la regla habitual de multiplicación de series de potencias, se obtiene que, para cada n ≥ 1,
∞
m
m
0 = p(n) + (−1)m p n − (3m − 1) + p n − (3m + 1) .
m=1
2 2
O, escrito de otra manera,
∞
m
m
p(n) = (−1)m+1 p n − (3m − 1) + p n − (3m + 1)
2 2
m=1
Esta serie de potencias converge para los valores de z tales que |z| < R, donde R es el radio
de convergencia de la serie que, como vimos ya en la sección 10.3, se calcula mediante
1
= lı́m sup |an |1/n .
R n→∞
En otras palabras, la serie converge para todos los z que estén dentro del disco centrado
en el origen y de radio R, que nombraremos2 como D(0, R). En términos cualitativos, si el
radio de convergencia es muy grande, los coeficientes
an deberán tender a 0 muy rápidamente
con n. Piénsese que, si R es grande, la serie ∞ a
n=0 n z n tendrá sentido para valores de z muy
grandes (en módulo); y sólo un decrecimiento rápido de los coeficientes puede compensar el
crecimiento del módulo de z n .
La definición del radio de convergencia nos dice dos cosas: por un lado, que
1 n
|an | < +ε para cualquier ε > 0 que tomemos,
R
si n es suficientemente grande (es decir, a partir de un N = N (ε) en adelante). Y, por otro,
que hay infinitos valores de n para los cuales
1 n
− ε < |an | .
R
Esta información es, en ocasiones, poco útil y precisa. Por ejemplo, si consideramos
∞
1
f (z) = = zn
1−z
n=0
entonces los an son todos 1 y el radio de convergencia es R = 1, pero las acotaciones anteriores
sólo nos informan de que 1 < (1 + ε)n para n grande, y de que hay infinitos valores de n para
los que 1 > (1 + ε)n .
2
Los discos, ubicuos en la Teorı́a de funciones de variable compleja, reciben una notación de alta cate-
gorı́a, D, que los sitúa a la par de los conjuntos de números como C.
En el caso en que f (z) sea una función entera, esto es, holomorfa en todo el plano, la
estimación anterior sı́ da una información muy buena. El radio de convergencia es R = +∞
y entonces obtenemos que, dado ε > 0,
|an | < εn
para n ≥ N (ε). Es decir, los an tienden a cero muy rápidamente. Una información, en esta
situación, bastante precisa.
La mayorı́a de las funciones generatrices que nos encontramos en las aplicaciones son
cocientes de funciones enteras por polinomios, es decir, funciones meromorfas en todo C con
un número finito de polos (los ceros de los polinomios). Como veremos, en la ubicación de
estos polos reside una importante información para determinar cómo crecen los coeficientes3 .
Sabemos que estos números son, aproximadamente, como e cuando n es grande, pero aquı́ nos
interesa obtener este comportamiento estudiando f (z) como función. Obsérvese primero que
del radio de convergencia de la serie, que es 1, obtenemos una información muy pobre:
La función f (z) puede ser desarrollada, utilizando, por ejemplo, fracciones simples (o quizás
usando que es un producto de series geométricas); con cierto trabajo, se obtiene que el
coeficiente n-ésimo de f (z) es
2 2
2 − 2−n−1 si n es par; 1 − 2−n−1 si n es impar.
3 3
Lo que esta fórmula nos dice es que el coeficiente n−ésimo de la función es, cuando n es
grande, aproximadamente 4/3 si n es par, y aproximadamente 2/3 si n es impar.
Ası́ que
(−1)n
1 n
Coefn [f (z)] = 1 + +O +ε ,
3 2
el comportamiento asintótico que anunciábamos antes. ♣
Ejemplo 12.3.3 El comportamiento asintótico de los números de Bell ordenados B(n).
Recordemos, del ejercicio 10.4.8, que estos números se pueden calcular, para cada n ≥ 1,
mediante
n ∞
kn
B(n) = S(n, k) k! , o bien con B(n) =
2k+1
k=1 k=0
(además, B(0) = 1). Ninguna de estas dos fórmulas nos da una idea clara de cómo crecen los
números B(n).
log(2) + 4πi En el citado ejercicio también vimos que la función gene-
ratriz de los B(n) era f (z) = 1/(2 − ez ). Hagamos el análisis
asintótico correspondiente a esta función. Observemos prime-
log(2) + 2πi
ro que la función 2 − ez se anula en los puntos de la forma
R log(2)
z = log(2) + 2 k π i, para cada entero k, ası́ que éstos son los
polos (simples) de f (z). El más cercano al origen, como se apre-
R cia en el dibujo, es z = log(2). La parte principal de la función
log(2) − 2πi f (z) es
−1/2
g(z) = ,
log(2) − 4πi z − log(2)
que, desarrollada en serie de potencias, es
∞
zn
1 1 1
g(z) = = .
2 log(2) 1 − z/ log(2) 2 log(2) log(2)n
n=0
Por otro lado, se tiene que f (z) − g(z) encuentra sus primeras singularidades en los puntos
z = log(2) ± 2 π i, cuya distancia al origen es
R = log(2)2 + 4 π 2 .
Para hacernos una idea de la precisión que hemos conseguido con esta aproximación, hagamos
el cálculo de los primeros valores:
n 1 2 3 4 5 6 ···
B(n) 1 3 13 75 541 4683 ···
n!/(2 (log 2)n+1 ) 1,041 3,002 12,996 74,999 541,002 4683,001 · · ·
La función
k
1 1 1 1
= ··· .
1 − zj 1 − z 1 − z2 1 − zk
j=1
tiene muchos polos, un total de k(k + 1)/2 de ellos, pero todos son números complejos de
módulo 1. En realidad son raı́ces de la unidad: los polos de cada factor 1/(1 − z j ) son las
soluciones de z j = 1, es decir, las raı́ces j−ésimas de la unidad, los números de la forma
Y esto, para cada valor de j entre 1 y k. Hay una de estas raı́ces que es especial: z = 1 es un
polo de todos los factores que aparecen, ası́ será un polo de multiplicidad k para la función
generatriz completa. Como veremos, el resto de los polos tiene multiplicidad menor.
Ası́ que vamos a necesitar una estimación asintótica de los coeficientes de una función
generatriz que tenga todos sus polos a distancia 1 del origen, de los cuales uno tiene mul-
tiplicidad máxima. Uno dirı́a que es este polo de “más peso” el que va a determinar el
comportamiento asintótico. Lo confirma el siguiente resultado.
Lema 12.2 Consideremos una función racional f (z), que tiene una serie de polos no nulos
p1 , . . . , pN , de multiplicidades m1 , . . . , mN , respectivamente. Todos los polos son de módulo 1
y uno de ellos, digamos p1 , tiene multiplicidad mayor que la de los demás: m1 > mj para cada
j = 2, . . . , N . La función f (z) es holomorfa en D(0, 1) y, si escribimos su serie de potencias,
∞
f (z) = an z n ,
n=0
a los coeficientes de la parte principal del desarrollo de Laurent de f (z) en torno al polo pj .
Con lo visto hasta aquı́, ya sabemos que los coeficientes de f (z) son, asintóticamente, como
los de la función
N mj (j)
ck
g(z) = ,
(pj − z)k
j=1 k=1
la suma de las partes principales de f (z) en cada polo.
Estimemos la contribución de cada uno de estos términos. Para ello vamos a necesitar
recordar (véase el ejercicio 3.1.3) que
n+k−1 nk−1
∼ cuando n → ∞.
k−1 (k − 1)!
Esto lo obtenı́amos sin más que aplicar la habitual fórmula de Stirling.
Tomemos entonces uno de los términos y desarrollémoslo en serie de potencias:
(j) ∞ n
ck n + k − 1
(j) (j)
ck ck 1 z
= = k .
(pj − z)k k
pj (1 − z/pj )k pj k−1 pj
n=0
Ası́ que
(j) (j) (j)
ck ck n+k−1 ck nk−1
Coefn = ∼ .
(pj − z)k pk+n
j
k−1 pk+n
j
(k − 1)!
Hay muchas contribuciones de este tipo, pero como todos los pj tienen módulo 1, la que más
va a influir cuando n es muy grande es aquélla en la que n lleve la mayor potencia. Esto es,
el término correspondiente al polo p1 cuando consideramos su multiplicidad m1 ,
nm1 −1
(1)
cm1
,
pm
1
1 +n (m1 − 1)!
que es lo que querı́amos demostrar.
Los números h(n) cuentan también cuántos multiconjuntos hay con tamaño n, formados con
los sı́mbolos {1, . . . , k}, y en los que cada sı́mbolo j aparece un número de veces que es un
múltiplo del aj correspondiente.
El argumento simbólico habitual nos sugiere considerar los conjuntos Lj = {0, aj , 2aj , . . . },
para cada j, y sus funciones asociadas
∞
1
QLj (z) = z n aj = ,
1 − z aj
n=0
de manera que
k
1 1 1 1
H(z) = = ··· .
1−z aj 1−z 1−z
a1 a2 1 − z ak
j=1
Ya disponemos de una expresión para H(z), y ahora sólo resta buscar sus polos, que son las
raı́ces aj -ésimas de la unidad, para cada aj ; en todo caso, números de módulo 1.
4
Issai Schur (1875-1941), nacido en la actual Bielorusia, destacó en sus estudios sobre representaciones de
grupos, ecuaciones algebraicas y Teorı́a de Números (veremos otro resultado suyo en el capı́tulo 20, dedicado
a la Teorı́a de Ramsey). Trabajó la mayor parte de su vida en Berlı́n (entre sus alumnos destacan nombres
como Brauer y Radó). Por su condición de judı́o tuvo que renunciar a sus puestos académicos. Finalmente,
emigró a Palestina, donde murió.
Puede haber números de módulo 1 que sean polos de “alta” multiplicidad para H(z).
Por ejemplo, si fuera a1 = 2 y a2 = 4, entonces el número z = −1 serı́a solución, tanto de
1 − z a1 = 0, como de 1 − z a2 = 0. Y, por tanto, un polo (al menos) doble de H(z). Obsérvese
también que la máxima multiplicidad que puede tener un polo de la función es k.
Desde luego, z = 1 tiene esa multiplicidad máxima, y, si consiguiéramos probar que los
demás polos tienen multiplicidad menor, entonces estarı́amos en las condiciones del lema 12.2,
que nos darı́a una estimación asintótica de los coeficientes de H(z).
Consideremos entonces un polo z0 de H(z), que ha de ser una raı́z aj −ésima de la unidad,
a
para algún aj . Es decir, 1 − z0 j = 0. La multiplicidad de z0 como polo de H(z) será el número
de ı́ndices j (o de números aj ) para los que esta ecuación se verifique.
Como z0 tiene módulo 1, lo podremos escribir como z0 = e2 π i θ , para cierto θ ∈ [0, 1), y
la condición sobre θ se escribe de la siguiente manera:
1 − e2 π i θ aj = 0 =⇒ e2 π i θ aj = 1 .
Esto supone que θ debe ser un número racional, digamos θ = p/q, con mcd(p, q) = 1, de
manera que, además, q divida a aj .
Pero si además queremos que z0 sea un polo de H(z) de multiplicidad k, entonces q ha
de dividir a todos los a1 , . . . , ak . Como mcd(a1 , . . . , ak ) = 1, sólo cabe la posibilidad de que
q = 1 y, por tanto, θ ha de ser un entero. Ası́ que necesariamente θ = 0, y z = 1 es el único
polo de H(z) que tiene multiplicidad máxima, k.
Ahora sólo tenemos que aplicar el lema 12.2 para obtener que
nk−1
h(n) ∼ C cuando n → ∞.
(k − 1)!
k
1−z
k
1
k
1
C = lı́m H(z)(1 − z)k = lı́m = lı́m = ,
z→1 z→1 1 − z aj z→1 1 + z + z 2 + · · · + z aj −1 aj
j=1 j=1 j=1
concluye la demostración.
Apliquemos este resultado asintótico a un par de ejemplos.
Ejemplo 12.3.4 Seguimos preguntándonos de cuántas maneras podemos dar cambio de 10
euros con monedas de uno, dos, cinco y veinte céntimos de euro.
La respuesta, como vimos en el ejemplo 12.1.4, está en el coeficiente de z 1000 de la función
1 1 1 1
f (z) = .
1 − z 1 − z 2 1 − z 5 1 − z 20
Con ayuda de algún paquete matemático de cálculo, obtenemos que hay 868751 maneras
de hacerlo. Observemos además que los coeficientes de la ecuación diofántica asociada al
problema, los números 1, 2, 5 y 20, cumplen que mcd(1, 2, 5, 20) = 1.
Ası́ que podemos aplicar el resultado de Schur, que nos da la respuesta aproximada
10003 1
= 833333, 3333 . . .
3! 1 × 2 × 5 × 20
una diferencia de apenas el 4 %. La estimación es mejor cuanto mayor sea n. Si, por ejemplo,
consideramos el caso del cambio de 100 euros, entonces la respuesta exacta es 836837501,
mientras que la aproximada es 833333333,33, y la discrepancia es de apenas un 0,4 %. ♣
Ejemplo 12.3.5 Las particiones de n cuyas partes tienen, a lo sumo, tamaño k.
Estas particiones son, como vimos en su momento, las soluciones de la ecuación
x1 + 2 x2 + · · · + k xk = n .
Ası́ que basta aplicar el teorema de Schur tomando aj = j para cada j = 1, . . . , k (por
supuesto, se cumple que mcd(1, . . . , k) = 1), para deducir que
nk−1
p(n | partes de tamaño a lo sumo k) ∼ ,
(k − 1)! k!
puesto que
k
1
k
1 1
C= = = .
aj j k!
j=1 j=1
En la subsección 3.3.3 ya obtuvimos, con argumentos combinatorios, una estimación seme-
jante para pk (n), las particiones de n con exactamente k partes5 . ♣
El método que hemos expuesto en la subsección anterior, y que hemos aplicado con tanto
éxito en ésta, está pensado para funciones que sólo tienen un número finito de polos en
un cierto disco alrededor del origen. Las funciones generatrices asociadas a las particiones
restringidas cumplen ese requerimiento de finitud. Entender las particiones restringidas parece
una tarea más complicada que entender las particiones generales. Pero, en realidad, para
la cuestión que aquı́ hemos estado investigando, las restringidas suponen una ventaja: las
restricciones significan que sólo tenemos que vérnoslas con un número finito de polos. Las
particiones generales tiene como función generatriz a
∞
∞
1
P (z) = = p(n)z n
1 − xj
j=1 n=0
donde p(n) es el número de particiones del número n. Las singularidades no son aisladas.
Todos los puntos del cı́rculo unidad son singularidad de P (z).
En la subsección siguiente, para los últimos cálculos del capı́tulo, vamos a abandonar
la variable compleja para volver a la habitual variable real. Veremos cómo, con sencillos
argumentos de monotonı́a (y convexidad) de series de potencias con coeficientes positivos
(y crecientes), podemos obtener una buena estimación asintótica de cómo crecen los p(n),
aunque la estimación exacta requiere técnicas muy refinadas, a las que sólo aludiremos.
5
Alguien podrı́a preguntarse cómo es posible que p(n | partes ≤ k), que sabemos, véase el teorema 3.7, que
coincide con pk (n + k), tenga el mismo comportamiento asintótico que pk (n) (cuando, desde luego, pk (n)
y pk (n + k) no son iguales, el segundo número es claramente mayor). Pero es que esto es una estimación
asintótica y, efectivamente, para k fijo, las dos cantidades son asintóticamente iguales.
Cada p(n) es la suma de los dos anteriores, p(n − 1) y p(n − 2), y luego hay unas correcciones
(más pequeñas), a veces con signo positivo, otras con negativo. Por ejemplo,
p(7) = p(6) + p(5) − p(2) + p(1)
..
.
p(15) = p(14) + p(13) − p(10) + p(8) + p(3)
p(16) = p(15) + p(12) − p(11) + p(9) + p(4) + p(1)
Ası́ que uno podrı́a suponer que en realidad esas correcciones
(más pequeñas y alternadas en signo) no alteran mucho el compor-
tamiento asintótico de p(n), y que, por tanto, p(n) deberı́a crecer
como los números de Fibonacci, como C n = en log(C) , para cierta
constante C. Sin embargo, no es ası́: p(n) crece mucho más lenta-
mente. Se sabe que
1 2n
p(n) ∼ √ exp π cuando n → ∞
4 3n 3
Éste es un resultado muy profundo, debido a Hardy y Ramanujan6 ,
y luego completado por Rademacher. Lo que esto nos dice es que el
crecimiento de p(n) no es exponencial,√ como el de los números de
Figura 12.2: Ramanujan
Fibonacci, sino, esencialmente, como e n .
Aquı́ nos limitaremos a obtener una estimación como la siguiente:
π 1 2n
p(n) < √ √ exp π si n > 2,
6 n−1 3
que, en fin, tampoco está nada mal; al menos nos dice que el crecimiento no es exponencial.
6
Srinivasa Ramanujan (1887-1920), nacido en la ciudad india de Madrás, es quizás el personaje más fas-
cinante de la Historia de las Matemáticas: un genio en estado puro, prácticamente autodidacto, pues apenas
recibió educación matemática formal. En 1913 escribió a Hardy pidiéndole que examinara una serie de teo-
remas que adjuntaba. El impacto que causaron en Hardy aquellos resultados, sin demostraciones rigurosas, a
veces no convenientemente escritos, pero sin duda profundos, fue tal que éste consiguió que en 1914 Rama-
nujan se trasladara al Trinity College, en Cambridge. Allı́ comenzarı́a una fructı́fera relación entre Hardy y
Ramanujan, de la que la estimación asintótica de p(n) es, quizás, el resultado más sobresaliente. Ramanujan
murió en 1920, tras regresar a su paı́s, ya gravemente enfermo. No podemos dejar de mencionar una famosa
anécdota que quizás ilustra el talento del personaje: Hardy visita en el hospital a Ramanujan y comenta
despreocupadamente que ha llegado en un taxi cuyo número es 1729. Un número bastante insı́pido, añade
Hardy. Ramanujan le responde:
No, Hardy. Es un número muy interesante: es el menor número que se puede escribir como suma
de dos cubos de dos maneras diferentes.
Y es que 13 + 123 = 93 + 103 = 1729.
Como ya comentamos antes, las técnicas basadas en el análisis de los polos no se pueden
aplicar. Pero vamos a continuar con este enfoque analı́tico de estudiar la función generatriz
en sı́, como función, aunque en este caso nos restringiremos a los valores que toma en el
intervalo (0, 1) de la recta real y no en un disco alrededor del origen en el plano complejo; en
otras palabras, no necesitamos considerar a la función generatriz como de variable compleja
sino, sólo, como función de variable real.
Vale la pena describir un argumento asintótico más general, como hacemos a continuación.
Consideremos una serie de potencias,
∞
Q(x) = q(n)xn
n=0
donde los q(n) son una sucesión creciente de número reales positivos y con q(0) = 1 (esto
último es sólo una normalización). Obsérvese que usamos x como variable, y no z, para
indicar que sólo nos interesan ahora los valores que Q toma en número reales. De hecho,
consideraremos a Q(x) como función en el intervalo (0, 1).
Nos interesa obtener una buena estimación superior del tamaño de q(n), cuando n es
grande, utilizando el comportamiento de Q(x) cuando x se aproxima a 1.
Fijemos un n > 2 (y recordemos que x ∈ (0, 1)). El primer paso consiste en partir la serie
de potencias infinita que define a Q(x) en el ı́ndice n:
n−1 ∞
Q(x) = q(k) xk + q(k) xk .
k=0 k=n
En la primera suma, vamos, simplemente, a olvidarnos de los q(k); los sustituiremos por 1.
Y en la segunda, como los q(k) son una sucesión creciente, los sustituiremos por el primer
valor, q(n). Ası́ obtenemos una cota inferior para el valor de Q(x). En ella aparecen series de
potencias que sabemos sumar, ası́ que operamos un poco:
n−1 ∞
n−1
∞
n−1
Q(x) > k
x + q(n) k
x = k
x + q(n) x −
k
xk
k=0 k=n k=0 k=0 k=0
n−1 ∞
1 − xn q(n)
= (1 − q(n)) k
x + q(n) xk = (1 − q(n)) +
1−x 1−x
k=0 k=0
1 xn
= 1 − xn + q(n) xn > q(n)
1−x 1−x
(en el último paso hemos desechado la cantidad 1 − xn , que es positiva). Es decir,
1−x
q(n) < Q(x) para cualquier n > 2.
xn
De manera que
1 π2 1
p(n) < exp (n − 1) t + .
t 6 t
Una elección adecuada de t, concretamente
π 1
t= √ √ ,
6 n−1
lleva al resultado buscado. Ası́ que p(n) es mucho menor que exp(π 2n/3) (hay un factor
√
n en el denominador). Mejorar la estimación y situar un n en el denominador, y de hecho
probar que es una fórmula asintótica, son, como ya hemos comentado, otra historia.
12.3.1 Sea f (z) una función cuyo desarrollo en serie de potencias en torno al cero tiene radio de
convergencia R. Sus coeficientes pueden ser calculados mediante la fórmula de Cauchy:
!
f (z)
an = n+1
dz , para cada n = 0, 1, 2, . . . ,
γ z
donde γ es una curva simple cerrada en torno al origen que está incluida en D(0, R). Dedúzcase de
ella, tomando como γ a la circunferencia de radio r, que
M (r)
|an | ≤ ,
rn
para cualquier 0 < r < R, donde M (r) es el máximo de |f (z)| en la circunferencia |z| = r.