Funções geratrizes e suas aplicações combinatóricas
Existem muitas formas de realizar contagens em problemas de olimpíada. Funções geratrizes são um jeito eficiente de expressar algebricamente alguma quantia e poder, a partir dela, manipular e obter novos resultados. Digamos que tenhamos uma sequência de naturais:
,
,
, … de reais. Dizemos que a função geratriz associada à sequência é a série formal:
.
Para que façamos bom uso dessa técnica, precisamos de certa familiaridade e conhecimento de alguns teoremas e técnicas:
Binômio de Newton generalizado
Geralmente quando falamos de binômio, lembramos sempre da definição usual que aprendemos no colégio de que
, onde
e
são inteiros não-negativos. Porém, como tratamos de funções geratrizes e queremos uma forma mais geral para isso, teremos agora um nova definição para o binômio, que ainda assim, mantém suas propriedades para
e
inteiros não negativos. Temos:
, onde
é um complexo qualquer e
é um inteiro não-negativo.
(obs:
é a representação do “fatorial em queda”, que funciona de forma semelhante ao fatorial, diminuindo de
em
, k vezes). Temos ainda, um lema muito importante para quando tivermos um número negativo na parte de cima do binômio.
Lema da Negação Superior: 
Prova: Exercício ao leitor (basta usar a definição).
Teorema do Binômio Generalizado
Agora que temos uma definição geral para o binômio, nada melhor do que generalizar o Teorema do Binômio, onde 

Convoluções e Números de Catalan
Observemos que, sendo
e
funções geratrizes das sequências
e
, respectivamente.

Em particular, se as sequências são iguais,
![[A(x)]^2=\sum_{n=0}^{\infty}(a_0a_n+a_1a_{n-1}+\dots+a_{n-1}a_1+a_na_0)x^n](https://i0.wp.com/noic.com.br/wp-content/plugins/latex/cache/tex_9709204dc07c89baf46880ae46b9c69e.gif?ssl=1)
um padrão muito interessante para alguns problemas de Combinatória. Em particular, definimos o
-ésimo número de Catalan como
tal que
e
, para
. Encontrar a fórmula fechada de
é um dos problemas propostos. Os números de Catalan aparecem em diversos problemas de Combinatória como:
- a quantidade de modos de dividir um
-ágono convexo em
triângulos com diagonais desse polígono que não se intersectam; - o número de caminhos em um grid
x
com
quadrados unitários passando apenas por lados dos quadrados e caminhando apenas para a direita e para cima, começando do canto inferior esquerdo; - a quantidade de sequências de
parênteses com
abre parênteses e
fecha parênteses tal que, considerando uma soma
, ao percorrermos a sequência da esquerda para a direita, adicionando
a cada abre parênteses e subtraindo
a cada fecha parênteses, essa soma nunca é negativa.
Abaixo apresentamos alguns exemplos para nos familiarizarmos mais com essas técnicas:
Exemplos: tente fazê-los antes de ler a solução.
Exemplo 1. Defina
uma recorrência, com
. Ache
em função de
.
Solução: Essa recorrência é facilmente resolvível apenas telescopando isso. Mas como estamos treinando funções geratrizes, que tal usa-las? Para isso, faremos o seguinte. Veja que:

Agora, multiplique a
-ésima equação por
, de modo que ficamos com:

E agora, somando as infinitas equações:

Agora, defina
a função geratriz da nossa recorrência. Assim:




Agora, expandindo
com o Teorema do Binômio:

e agora, usando o lema da negação superior:


Assim, concluimos que o coeficiente de
é exatamente
em
, ou seja,
, e logo nossa recorrência está resolvida. 
Veja que este método pode parecer muito mais trabalhos que apenas telescopar, e nesse caso, de fato é. Porém, estamos diante de uma recorrência bem simples. O uso de funções geratrizes em recorrências mais robustas se mostrará muito poderoso mais futuramente. A ideia de transformar recorrências em somas de funções geradoras consegue resolver boa parte das recorrências definidas que você se dará de cara na sua vida olímpica, com certa facilidade até (Não te garanto que sempre…)! De qualquer maneira, vejamos mais alguns problemas interessantes que podem ser massacrados por funções geratrizes.
Exemplo 2. Vejamos outro exemplo de uso de funções geratrizes para encontrarmos fórmulas fechadas para recorrências.
Seja
uma sequência de modo que
,
e
, para
. Determine a fórmula fechada de
.
Solução: Seja
. Então,

Usando a recorrência,



![\implies A(x)=1+3x[A(x)]-2x^2[A(x)]](https://i0.wp.com/noic.com.br/wp-content/plugins/latex/cache/tex_24af7bcfc53902d5b2bbc682e0d7beac.gif?ssl=1)

Note que
e podemos obter fórmulas fechadas para
e
, então seria interessante encontrarmos
e
tais que



Resolvendo o sistema, obtemos
e
.
Então,




Portanto,
. 
Exemplo 3. (Identidade de Vandermonde) Prove que

Solução: Temos que

Então, pelo teorema do binômio,

E, comparando os coeficientes de
,

como queríamos. 
Problemas:
Problema 1. (Combinação completa) Sejam
inteiros não-negativos. Encontre o número de k-tuplas
tais que:

onde Seja onde na penúlitma igualdade usamos o lema da negação superior. Assim, temos que
. Defina, ainda,
. Veja que o coeficiente
de
em
é exatamente o número que queremos pois é a quantidade de formas que os expoentes de
no produtório dos
por eles mesmos em
somaram juntos
. Porém, veja que podemos ver
como um somatório infinito de uma p.g, que é definido para
(veja que isso não faz diferença no que estamos calculando). Assim:


, que é a resposta para o nosso problema. 














































































![[x^k]](https://i0.wp.com/noic.com.br/wp-content/plugins/latex/cache/tex_65e5f7036bb5e947c2b1bf11710dad45.gif?ssl=1)


![[x^k]=k-1](https://i0.wp.com/noic.com.br/wp-content/plugins/latex/cache/tex_981258207af5022ba527d3fe951b1381.gif?ssl=1)

![[x^k]=k-1-2(k-n-1)=2n-k+1](https://i0.wp.com/noic.com.br/wp-content/plugins/latex/cache/tex_d2becc9e4894428678ede86ab5c33aee.gif?ssl=1)
























![[C(x)]^2=\sum_{n \ge 0}\sum_{i=0}^{n-1}c_ic_{n-1-}x^n](https://i0.wp.com/noic.com.br/wp-content/plugins/latex/cache/tex_f20688f22a3cba2b9cba1d75b0d573b2.gif?ssl=1)
![\implies [C(x)]^2=\sum_{n \ge 0}c_{n+1}x^n](https://i0.wp.com/noic.com.br/wp-content/plugins/latex/cache/tex_6fe6d058a23f0e194e961dc325daed73.gif?ssl=1)
![\implies x[C(x)]^2=\sum_{n \ge 1}c_{n}x^n \implies x[C(x)]^2+1=\sum_{n \ge 0}c_nx^n\implies x[C(x)]^2+1=C(x)](https://i0.wp.com/noic.com.br/wp-content/plugins/latex/cache/tex_6cad2d569bca8959d15539f4676f48e2.gif?ssl=1)
![\implies x[C(x)]^2-C(x)+1=0](https://i0.wp.com/noic.com.br/wp-content/plugins/latex/cache/tex_b382459ab98dbc7c7e1493d4603a5fa3.gif?ssl=1)






















































































































































![f(w^i,w^j) = \prod_{k=1}^{2p}(1+w^{ik}w^j) = \prod_{k=1}^{2p}(1+w^{ik+j})=[\prod_{k=1}^{p}(1+w^k)]^2](https://i0.wp.com/noic.com.br/wp-content/plugins/latex/cache/tex_703afb41f853198e5b252d8898395cd7.gif?ssl=1)












