Análise Combinatória Rodrigo Machado [email protected] Instituto de Informática Universidade Federal do Rio Grande do Sul Porto Alegre, Brasil http://www.inf.ufrgs.br Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 2/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 3/168 Problemas de contagem Contagem: determinar o número de elementos de uma determinada coleção sem precisar necessariamente enumerá-la. Exemplos de problemas que envolvem contagem: • Quantos números inteiros pares existem entre 0 e 100? Considere os limites na contagem. • Você precisa construir todas as funções totais f : A → A, onde A = {1, 2, . . . , 8}. Quanto de memória você precisa alocar? A seguir, veremos alguns princípios de contagem a partir dos quais as fórmulas para contagem de diversos tipos de objetos matemáticos serão derivadas. 4/168 Princípio aditivo Sejam A e B conjuntos finitos. Princípio aditivo: Se A ∩ B = ∅, então |A ∪ B| = |A| + |B|. Aplicável quando escolhemos elementos do conjunto A OU do conjunto B, exclusivamente. Exemplo: Suponha que tenham entrado em cartaz 3 filmes e 2 peças de teatro e que Carlos tenha dinheiro para assistir a apenas 1 evento. Quantos são os programas que Carlos pode fazer no sábado? 5/168 Princípio multiplicativo Sejam A e B conjuntos finitos. Princípio multiplicativo: |A × B| = |A| × |B|. Aplicável quando escolhemos elementos do conjunto A E do conjunto B, simultaneamente. Exemplo: Suponha que tenham entrado em cartaz 3 filmes e 2 peças de teatro. Se Carlos tem dinheiro para assistir a um filme e a uma peça de teatro, quantos programas ele pode fazer no sábado? 6/168 Princípio aditivo e multiplicativo: exercícios Exercício: 1. Dados 5 livros diferentes de matemática, 7 livros diferentes de física, 10 livros diferentes de química, de quantas maneiras podemos escolher 2 livros de forma que eles não sejam da mesma matéria? 2. De quantas maneiras 2 pessoas podem estacionar seus carros numa garagem com 6 vagas? 3. Quantos números naturais de três algarismos distintos (na base 10) existem? 4. De quantas maneiras podemos escolher 1 consoante e 1 vogal de um alfabeto formado por 18 consoantes e 5 vogais? 5. De quantas maneiras podemos escolher 2 consoantes diferentes dentre um conjunto de 8 consoantes? 6. Quantas diagonais possui um polígono regular de n lados? 7/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 8/168 Permutações Sejam a1 , a2 , . . . , an elementos distintos de uma coleção A. Definição: uma permutação de elementos de A é uma n-tupla (b1 , b2 , . . . , bn ) tal que exista uma bijeção f : {1, . . . , n} → {1, . . . , n} onde ai = bf(i) Uma permutação representa um ordenamento de todos os elementos da coleção A. Nota: é importante para contagem de permutações que todos os elementos da coleção A sejam distintos. 9/168 Permutações: contagem Exemplo: todas as permutações do conjunto {a,b,c}: (a,b,c) (a,c,b) (b,a,c) (b,c,a) (c,a,b) (c,b,a) Pergunta: quantas permutações distintas existem para sequências com n elementos? Resposta: n × (n – 1) × (n – 2) × . . . × 1 = n! Definição: Pn representa o número de permutações de um conjunto com n elementos. Pn = n! 10/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 11/168 Arranjos Definição: um arranjo é uma tupla de k elementos distintos retirados de uma coleção com n elementos. Exemplo: todos os arranjos de tamanho 2 do conjunto {1, 2, 3}. (1,2) (1,3) (2,1) (2,3) (3,1) (3,2) Nota: note que ordem é importante: (1,2) 6= (2,1) 12/168 Arranjos: contagem Definição: Akn representa o número de arranjos de tamanho k cujos elementos são extraídos de uma coleção de tamanho n. Akn k }| z { = n × (n – 1) × · · · × (n – k + 1) = n! (n – k)! Nota: perceba que Ann = Pn = n! 13/168 Arranjos: exercícios Exercício: 1. Quantas são as palavras de 4 letras que não repetem letras, considerando o alfabeto convencional (de A a Z, 26 letras)? 2. Uma empresa precisa preencher 8 vagas de trabalho distintas. Houve 5 pessoas interessadas em ocupar um cargo qualquer dentre os 8. De quantas formas distintas podemos alocar as pessoas interessadas para vagas nessa empresa? 3. Quantas funções injetoras existem do conjunto {a, b, c} para o conjunto {1, 2, 3, 4, 5, 6, 7, 8}? 14/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 15/168 Combinações Definição: uma combinação é um subconjunto de k elementos tomados de uma coleção de n elementos distintos. Exemplo: seja A = {1, 2, 3, 4, 5}. Todas as combinações de 3 elementos tirados de A: {3,4,5} {2,3,5} {1,4,5} {1,3,4} {1,2,4} {2,4,5} {2,3,4} {1,3,5} {1,2,5} {1,2,3} Nota: combinações não são ordenadas! {1,4,2} = {2,4,1} 16/168 Combinações: contagem Considere k, n ∈ {0, 1, 2, . . .}. Definição: Ckn representa o número de combinações de tamanho k extraídas de uma coleção de n elementos distintos. Ckn = 0 Ckn = n! (n – k)! k! quando k > n quando k ≤ n Outra notação para contagem de combinações : n Ckn = (lê-se “n escolhe k”) k Nota: atenção com a ordem dos índices! 17/168 Combinações: exercícios Exercício: 1. De quantas maneiras podemos arrumar em fila 5 sinais ‘-’ e 7 sinais ‘|’ ? 2. Considere uma grade de 5 linhas e 7 colunas. Considere que estamos no cantos superior esquerdo da grade. De quantas formas distintas podemos alcançar o canto inferior direito, supondo que somente movimentos para baixo e para a direita são possíveis? 3. Em um jogo do tipo loteria, existem 25 números ao total, dos quais 5 são sorteados semanalmente. Uma aposta consiste da escolha de 5 números, e o jogador ganha somente se acertar exatamente os números sorteados. Qual a chance de alguém ser sorteado se fizer quatro apostas distintas? 18/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 19/168 Coeficientes de potências de binômios Observe os coeficientes das seguintes potências de um binômio (a + b): (a + b)0 (a + b)1 (a + b)2 (a + b)3 .. . = = = = .. . 1 × a0 b0 1 × a0 b1 + 1 × a1 b0 1 × a0 b2 + 2 × a1 b1 + 1 × a2 b0 1 × a0 b3 + 3 × a1 b2 + 3 × a2 b1 + 1 × a3 b0 .. . Notamos que o coeficiente de um termo ai bj , na expansão de uma multiplicação (a + b)n corresponde à ni . Intuição: o coeficiente na frente de ai bj conta o número de formas distintas de enumerar i letras a e j letras b, pois é obtido do agrupamento de todas as tuplas de tamanho (i + j) com exatos i a’s e j b’s. 20/168 Teorema binomial Teorema: para n ∈ N temos: n (a + b) = n X n i=0 i ai bn–i Nota: esse teorema relaciona potências de polinômios com contagem de combinações. Tal relação será melhor explorada quando estudarmos funções geradoras. Demonstração: por indução sobre n ∈ N. 21/168 Teorema binomial: comentário sobre 00 Nota: a fim de garantir que o teorema binomial seja válido para todos os valores reais de a e b, vamos assumir que 00 = 1 Contudo, essa identidade é controversa: em outras áreas da matemática (como cálculo) 00 é considerada uma forma indefinida. Para quem se interessar, há boas explicações e referências sobre esse tópico nos links abaixo (em inglês) • http: //www.askamathematician.com/2010/12/q-what-does-00-zero-raised-to-the-zeroth-power- • http://mathforum.org/dr.math/faq/faq.0.to.0.power.html • http://math.stackexchange.com/questions/11150/zero-to-the-zero-power-is-00-1 22/168 Teorema binomial: consequências Corolário: podemos obter o resultado de expansão de (x + 1)n (x + 1)n = n i “lendo” o coeficiente de xi na n X n i=0 i xi 23/168 Teorema binomial: consequências (2) Corolário: o resultado da expressão n n n n n – + – · · · + (–1) 0 1 2 n é sempre 0 (para n ≥ 1): n X n i=0 i (–1)i = 0 24/168 Teorema binomial: exercícios Exercício: 1. Calcular o quarto termo da expansão de (1 + x)8 2. Calcular o sexto termo da expansão de (x – 5y)10 25/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 26/168 Triângulo de Pascal O triângulo de Pascal é uma matriz infinita onde cada elemento an,k corresponde a Ckn = nk n\k 0 1 2 3 4 5 6 7 .. . 0 1 1 1 1 1 1 1 1 .. . 1 2 3 4 5 6 7 ··· 1 2 3 4 5 6 7 .. . 1 3 6 10 15 21 .. . 1 4 10 20 35 .. . 1 5 15 35 .. . 1 6 21 .. . 1 7 .. . 1 .. . .. . Obs: espaços em branco contêm o valor 0. 27/168 Propriedades de combinações Os números construídos pela expressão nk possuem diversas identidades, que podem ser visualizadas sobre o triângulo de Pascal. 1. Combinação complementar: n n = k n–k n\k 0 1 2 3 4 5 .. . 0 1 1 1 1 1 1 .. . 1 2 3 4 5 ··· 1 2 3 4 5 .. . 1 3 6 10 .. . 1 4 1 10 5 .. .. . . 1 .. . .. . 28/168 Propriedades de combinações (2) 2. Relação de Stifel: n\k 0 1 2 3 4 5 .. . n+1 k+1 n n + k+1 k 0 1 1 1 1 1 1 .. . 1 2 4 5 ··· 1 2 3 4 5 .. . 1 3 1 6 4 1 10 10 5 .. .. .. . . . 1 .. . .. = 3 . 29/168 Propriedades de combinações (3) 3. Soma horizontal: n X n k k=0 n\k 0 1 2 3 4 5 .. . 0 1 1 1 1 1 1 .. . = 2n 1 2 4 5 ··· 1 2 3 4 5 .. . 1 3 1 6 4 1 10 10 5 .. .. .. . . . 1 .. . .. 3 . 30/168 Propriedades de combinações (4) 4. Soma vertical: k+x X n=k n\k 0 1 2 3 4 5 .. . 0 1 1 1 1 1 1 .. . n k+x+1 = k k+1 1 2 4 5 ··· 1 2 3 4 5 .. . 1 3 1 6 4 1 10 10 5 .. .. .. . . . 1 .. . .. 3 . 31/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 32/168 Regra da subtração Lembre que A \ B = {x | x ∈ A ∧ x ∈ / B}. Regra da subtração: Sejam A e B conjuntos finitos tal que B ⊆ A. Então |A \ B| = |A| – |B| Demonstração: 1. (A \ B) ∩ B = ∅ 2. |(A \ B) ∩ B| = |∅| 3. |A \ B| + |B| – |(A \ B) ∪ B| = 0 4. |A \ B| + |B| – |A ∪ B| = 0 5. |A \ B| + |B| – |A| = 0 (pois B ⊆ A) 6. |A \ B| = |A| – |B| 33/168 Regra da subtração: exemplo A regra da subtração é útil quando é mais fácil contar o complemento de um conjunto do que o conjunto em si. Exemplo: Considere um baralho normal • quatro naipes: ♠, ♦, ♣, ♥ • valores: A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K Pergunta: Quantas mãos (conjuntos) de 5 cartas contém alguma figura (cartas de valor J, Q ou K)? Resposta: A contagem direta é difícil, porém podemos calcular o número de mãos sem figuras e subtrair do total de mãos existentes: 52 5 – 52 – 12 5 = 2598960 – 658008 = 1940952 34/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 35/168 Regra do quociente Seja A um conjunto finito e seja R uma relação de equivalência sobre A onde cada classe de equivalência contém exatamente r elementos. Denotemos A/R o conjunto de todas as classes de equivalência de R em A (subconjuntos maximais de elementos R-equivalentes em A). Regra do quociente: |A/R| = |A| r 36/168 Regra do quociente: exemplo A regra do quociente é útil quando é possível caracterizar o objeto de interesse da contagem como uma classe de equivalência sobre elementos de outro conjunto (mais fácil de ser contado). Exemplo: Considere A sendo o conjunto de todos os arranjos de tamanho k contendo elementos do conjunto N, onde |N| = n. Defina que dois arranjos (a1 , a2 , . . . , ak ) e (b1 , b2 , . . . bk ) são R-equivalentes sss um for uma permutação do outro. Note que cada classe de equivalência corresponde a uma k-combinação. Como n! |A| = (n–k)! e cada classe de equivalência possui k! elementos, |A/R| = |A| k! ⇔ n = k n! (n–k)! k! = n! (n – k)!k! 37/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 38/168 Distribuição de elementos idênticos Problema: contar de quantas formas podemos distribuir m elementos idênticos em r caixas enumeradas x1 , . . . , xr . Variações: • cada caixa deve conter 1 ou mais elementos • cada caixa deve conter 0 ou mais elementos • quantidades mínimas distintas para as caixas Equivale a contar soluções (em números naturais) da equação x1 + . . . + xr = m sujeito às restrições de cada caso. 39/168 Distribuição: solução em inteiros positivos Variação 1: conte soluções em naturais para x1 + . . . + xr = m que não deixem nenhuma caixa vazia (xi > 0 para todo 1 ≤ i ≤ r) Para realizar essa contagem, podemos considerar a inserção de r – 1 separadores idênticos | entre pontos da representação unitária de m. Exemplo: m = 5, r = 3. x1 •␣ • ␣ • ␣ • ␣• =⇒ x2 x3 z}|{ z}|{ z}|{ •␣• | •␣• | • Solução: Cr–1 m–1 = m–1 r–1 40/168 Distribuição: solução em inteiros positivos Exercício: Encontre o número de soluções em inteiros positivos da seguinte equação: x1 + x2 + x3 + x4 = 11 41/168 Distribuição: solução em inteiros não-negativos Variação 2: conte soluções em naturais para x1 + . . . + xr = m permitindo caixas vazias (xi ≥ 0 para todo 1 ≤ i ≤ r) Para realizar essa contagem, podemos escolher posições para r – 1 símbolos | na string composta de m + (r – 1) símbolos | ou •. Exemplo: m = 5, r = 4. posição: símbolo 1 • 2 • 3 | 4 | 5 • 6 • 7 | 8 • ⇐⇒ x1 = 2 x3 = 2 x2 = 0 x4 = 1 Solução: Cr–1 m+r–1 = m+r–1 r–1 = m+r–1 m 42/168 Distribuição: solução em inteiros não-negativos Exercício: Encontre o número de soluções em inteiros não-negativos da equação x1 + x2 + x3 = 10 43/168 Distribuição: caixas com conteúdo mínimo Variação 3: conte soluções em naturais para x1 + . . . + xr = m mantendo um número mínimo de elementos em certas caixas (xi ≥ ni para todo 1 ≤ i ≤ r e ni fixos) Exemplo: de quantas formas podemos distribuir 10 elementos idênticos em 3 caixas enumeradas, cada uma contendo no mínimo 2 elementos? (n1 , n2 , n3 = 2) Equivale a remover do total de elementos a quantidade obrigatória em cada caixa, e distribuir os demais (verificando soluções em inteiros não-negativos). Solução: particionamento em inteiros não-negativos da equação x1 + . . . + xr = m – r X ni i=1 44/168 Distribuição: caixas com conteúdo mínimo Exercício: Encontrar o número de soluções em inteiros positivos maiores que 3 da equação x1 + x2 + x3 = 17 Em outras palavras: determinar o número de soluções inteiras de x1 + x2 + x3 = 17, onde xi > 3 para i ∈ {1, 2, 3}. 45/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 46/168 Combinações com repetição Seja A um conjunto finito, onde |A| = n. Definição: uma k-combinação com (possível) repetição de A é um multiconjunto de tamanho k onde todos os elementos pertencem a A. A contagem de k-combinações com repetição é equivalente a contar as soluções não-negativas para a seguinte equação: x1 + x2 + · · · + xn = k Notação: denotamos por CRkn o número de k-combinações com repetição sobre um conjunto A de tamanho n. CRkn = Cn–1 k+n–1 = k+n–1 n–1 = k+n–1 k 47/168 Combinações com repetição: exercícios 1. De quantos modos podemos comprar 4 refrigerantes em um bar que vende 2 tipos de refrigerante? 2. De quantos modos diferentes podemos distribuir 10 bombons idênticos em 4 caixas diferentes? 3. Dispondo de 4 cores diferentes, de quantas maneiras distintas podemos pintar 5 objetos idênticos? (Cada objeto deve ser pintado com uma única cor) 48/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 49/168 Arranjos com repetição Seja A um conjunto finito, onde |A| = n. Definição: um k-arranjo com (possível) repetição é uma k-tupla formada com elementos de A. Como temos n possibilidades para cada posição, certamente teremos nk tuplas distintas. k z }| { n × n × · · · × n = nk Notação: denotamos ARkn o número de k-arranjos com repetição sobre um conjunto A de tamanho n. ARkn = nk 50/168 Arranjos com repetição: exercícios 1. Qual o total de placas de carro que podem ser construídas constando de 7 símbolos, sendo os 3 primeiros contituídos por letras e os 4 últimos por dígitos? 2. Quantas funções totais existem entre os conjuntos A = {1, 2, 3} e B = {α, β, γ, δ}? 51/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 52/168 Permutações circulares Pergunta: de quantas maneiras 4 crianças podem dar as mãos para brincar de roda? A seguinte fórmula conta o número de permutações circulares a partir de um conjunto de tamanho n. (PC)n = n! = (n – 1)! n Resposta: no caso de 4 crianças, temos 3! = 6 formas distintas de formar uma roda. 53/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 54/168 Permutações com repetição Pergunta: quantos anagramas existem para a palavra ABACATE ? Note que há menos de 7! anagramas, pois algumas trocas de letras não geram palavras distintas (primeira letra com a quinta, por exemplo). Uma estratégia é distinguir as letras repetidas com índices: A1 B A2 C A3 T E Após, podemos definir uma relação de equivalência determinando que duas palavras são equivalentes sss uma for obtida a partir da outra por uma permutação das letras repetidas. No caso de ABACATE, há 3! formas de enumerar os A’s, o que leva a 6 palavras por classe de equivalência. Pela regra do quociente o número de anagramas de abacate é igual a 7! 3! . 55/168 Permutações com repetição Note que cada permutação com repetição consiste de uma forma de enumerar um multiconjunto de tamanho n. A seguinte fórmula conta o número de permutações com repetição de um multiconjunto de tamanho n, PR(n; r1 , r2 , . . . , rk ) = n r1 , r2 , . . . , rk = n! r1 ! × r2 ! × · · · × rk ! onde r1 , r2 , . . . , rk correspondem às repetições de cada uma das letras da palavra. Nota: se k1 + k2 = n, então n k1 , k2 = n k1 = n k2 56/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 57/168 Teorema multinomial Considere a expansão de potências de trinômios. Exemplo: (a + b + c)n = ??? 58/168 Teorema multinomial (2) O que vimos para trinômios pode ser generalizado para multinômios. Teorema: n (x1 + · · · + xm ) = X r1 +···+rm =n n xr1 · · · xrmm r1 , . . . , rm 1 59/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 60/168 Princípio da inclusão e exclusão Considere as seguintes contagens da união de conjuntos: 2 conjuntos: |A ∪ B| = |A| + |B| – |A ∩ B| 3 conjuntos: |A ∪ B ∪ C| = + |A| + |B| + |C| – |A ∩ B| – |A ∩ C| – |B ∩ C| + |A ∩ B ∩ C| 61/168 Princípio da inclusão e exclusão (cont.) Princípio da inclusão e exclusão: O número de elementos da união de n conjuntos finitos A1 , . . . , An é dado por: |A1 ∪ A2 ∪ . . . ∪ An | = + X |Ai | 1≤i≤n – X |Ai ∩ Aj | 1≤i<j≤n + X |Ai ∩ Aj ∩ Ak | 1≤i<j<k≤n – X |Ai ∩ Aj ∩ Ak ∩ Al | 1≤i<j<k<l≤n .. . (–1)n–1 |A1 ∩ A2 ∩ . . . ∩ An | 62/168 Princípio da inclusão e exclusão: exemplo Pergunta: Quantas são as permutações das letras da palavras BRASIL em que o B ocupa o primeiro lugar, ou o R o segundo lugar, ou o A o terceiro lugar? Podemos começar contando os seguintes conjuntos separadamente: • PB = conjunto de permutações que mantém B na 1ł posição • PR = conjunto de permutações que mantém R na 2ł posição • PA = conjunto de permutações que mantém A na 3ł posição A solução consiste de |PB ∪ PR ∪ PA |. Contudo, nesse cálculo não podemos aplicar o princípio aditivo, pois PB , PR e PA não são disjuntos. Exemplo: BLARSI ∈ PB e BLARSI ∈ PA 63/168 Princípio da inclusão e exclusão: exemplo (cont.) Portanto, necessitamos do princípio da inclusão e exclusão, que diz: |PB ∪ PR ∪ PA | = + |PB | + |PR | + |PA | – |PB ∩ PR | – |PB ∩ PA | – |PR ∩ PA | + |PB ∩ PR ∩ PA | Note que: • |PB | = |PR | = |PA | = 5! • |PB ∩ PR | = |PB ∩ PA | = |PR ∩ PA | = 4! • |PB ∩ PR ∩ PA | = 3! Resposta: O número de permutações de BRASIL que mantém ou B, ou R ou A na posição original é |PB ∪ PR ∪ PA | = 3 × 5! – 3 × 4! + 3! = 294 64/168 Princípio da inclusão e exclusão: exercícios Exercício: 1. Quantos inteiros entre 1 e 3600, inclusive, são divisíveis por 3, 5 ou 7? 2. Considere um baralho normal (quatro naipes, treze valores de Ás a K). Quantas mãos (conjuntos) de 9 cartas contém 4 cartas do mesmo valor? 65/168 Contagem de funções sobrejetoras Pergunta: Quantas funções sobrejetoras existem entre dois conjuntos finitos A e B? Consideramos dois casos: • se |A| < |B|: 0 funções sobrejetoras • se |A| ≥ |B|: vamos contar todas as funções cuja imagem é igual ao contradomínio. Suponha |B| = n e B = {b1 , b2 , . . . , bn }. Notação: Denotamos E1 o conjunto de todas as funções do tipo A → B que não mapeiam nenhum elemento de A para b1 (ou seja, funções que “erram” b1 ). Definimos da mesma forma Ei para 1 ≤ i ≤ n. 66/168 Contagem de funções sobrejetoras (2) As funções sobrejetoras são aquelas que não “erram” nenhum elemento do contradomínio. Portanto, pela regra da subtração: |funções sobrejetoras| = |funções| - |funções que “erram” algum b ∈ B| Ou seja: n|A| – |E1 ∪ E2 ∪ . . . ∪ En | Por inclusão e exclusão: = n|A| – ( + |E1 | + |E2 | + . . . + |En | – |E1 ∩ E2 | – |E1 ∩ E3 | – · · · – |En–1 ∩ En | + |E1 ∩ E2 ∩ E3 | + · · · + |En–2 ∩ En–1 ∩ En | .. . (–1)n–1 |E1 ∩ E2 ∩ · · · ∩ En | ) 67/168 Contagem de funções sobrejetoras (3) Absorvendo a negação: = n|A| – |E1 | – |E2 | – . . . – |En | + |E1 ∩ E2 | + |E1 ∩ E3 | + · · · + |En–1 ∩ En | – |E1 ∩ E2 ∩ E3 | – · · · – |En–2 ∩ En–1 ∩ En | .. . (–1)n |E1 ∩ E2 ∩ · · · ∩ En | Cardinalidade das interseções: • |E1 | = (n – 1)|A| • |E1 ∩ E2 | = (n – 2)|A| (nro de funções do tipo A → (B – {b1 })) (nro de funções do tipo A → (B – {b1 , b2 })) • e assim sucessivamente . . . Note também que |Eb1 | = |Eb2 | = · · · |Ebn |. O mesmo vale para as demais interseções, isto é os tamanhos dos conjuntos na mesma linha são iguais. 68/168 Contagem de funções sobrejetoras (4) Logo (lembrando que n = |B|): Número de termos por linha: n 1 • Interseções de 1 conjunto: = • Interseções de 2 conjuntos: .. . n 2 • Interseções de n conjuntos: n n + (–1)0 n0 (n – 0)|A| + (–1)1 n1 (n – 1)|A| + (–1)2 n2 (n – 2)|A| .. . + (–1)n nn (n – n)|A| Resposta: O número de funções sobrejetoras entre A e B é: |B| X i=0 (–1)i |B| (|B| – i)|A| i 69/168 Função φ de Euler Definição: A função φ de Euler associa o inteiro positivo n ao número de inteiros positivos menores que n e que são primos em relação a n. Em outras palavras, φ(n) é a cardinalidade do conjunto {x | 1 ≤ x < n ∧ MDC(x, n) = 1}. Teorema: (fórmula fechada para φ) φ(m) = m 1 – 1 p1 1– 1 p2 ··· 1 – 1 pr α2 αr 1 onde m = pα 1 × p2 × · · · × pr é a decomposição de m em fatores primos. Exercício: 1. Calcular φ(m) para m = 2100 70/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 71/168 Permutações caóticas Definição: Permutações caóticas (ou desarranjos) são as permutações que não deixam nenhuma letra na sua posição original. Teorema: o número de permutações caóticas de uma palavra sem letras repetidas de tamanho n (denotado Dn ) é dado pela seguinte fórmula: Dn = n! 1 – 1 1 1 1 + – + . . . + (–1)n 1! 2! 3! n! = n X (–1)i i=0 n! i! Teorema: para todo inteiro n > 2, temos n! 1 Dn – < e 2 Exercício: 1. De quantas formas distintas podemos realizar um sorteio de amigo secreto entre 10 pessoas de forma que ninguém tire o próprio nome no sorteio? 72/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 73/168 Princípio dos escaninhos Princípio dos escaninhos: Sejam n e k inteiros positivos onde n > k. Suponha a distribuição de n envelopes idênticos em k escaninhos. Logo, haverá no mínimo um escaninho contendo dois ou mais envelopes. Nota: também é conhecido como • princípio das gavetas de Dirichlet • princípio da casa dos pombos (pidgeonhole principle) 74/168 Princípio dos escaninhos: exemplos Exemplo: 1. Dado um conjunto de 13 pessoas (ou mais), pelo menos duas aniversariam no mesmo mês. 2. Dado um conjunto de 32 pessoas (ou mais), pelo menos duas aniversariam no mesmo dia do mês. 3. Dado um conjunto de 367 pessoas (ou mais), pelo menos duas aniversariam no mesmo dia do ano. 75/168 Princípio dos escaninhos: caráter existencial Pode-se notar que o princípio dos escaninhos é de natureza distinta dos demais princípios de contagem. Ele essencialmente não conta elementos, nem especifica qual gaveta apresenta repetição. Ele simplemente garante a existência de tal gaveta. Essa garantia de existência é tipicamente utilizada como fato auxiliar em provas de propriedades mais interessantes. Além disso, o princípio dos escaninhos ajuda a determinar quantidades mínimas em certos parâmetros para a garantia de ocorrência de certos eventos. 76/168 Princípio dos escaninhos: exercícios Exercício: 1. Em uma gaveta há 12 meias brancas e 12 meias pretas. Quantas meias devemos retirar ao acaso para termos certeza de obter um par de meias de cores diferentes? E de mesma cor? 2. Mostre que em um conjunto de n pessoas há sempre duas pessoas que conhecem exatamente o mesmo número de outras pessoas do conjunto. Suponha que a relação “conhecer” é simétrica (se a conhece b então b conhece a) e irreflexiva (a não conhece a). 77/168 Princípio dos escaninhos: exemplo Exemplo: Mostrar que na sequência infinita de números a = 7, 77, 777, 7777, 77777, 777777, . . . há ao menos um número que é múltiplo de 2003. Demonstração: Vamos provar algo mais forte: que existe um múltiplo de 2003 dentre os primeiros 2004 números de a. Vamos chamar a1 , a2 , . . . , a2004 os 2004 primeiros elementos de a. Para cada ai (1 ≤ i ≤ 2004), calculamos o resto da divisão inteira ri = ai % 2003. Note que o valor de cada ri varia de 0 a 2002, e existem 2004 restos. 78/168 Princípio dos escaninhos: exemplo (2) Logo, pelo princípio dos escaninhos, há dois índices distintos i e j entre 1 e 2004 tal que ri = rj . Portanto, há valores na sequência a com o mesmo resto na divisão por 2003. Vamos chamá-los ai e aj , considerando i < j. ai = ki ∗ 2003 + ri aj = kj ∗ 2003 + rj Considere agora a subtração aj – ai : aj – ai = (kj ∗ 2003 + rj ) – (ki ∗ 2003 + ri) = (kj – ki ) ∗ 2003 O que garante que aj – ai é múltiplo de 2003. 79/168 Princípio dos escaninhos: exemplo (3) Note que, se observarmos a forma de aj – ai , temos o seguinte: j aj = z }| { 77 · · · 777777 · · · 7 –ai = z }| { – 77777 · · · 7 = z }| { z }| { 77 · · · 7 × 100000 · · · 0 i aj–i aj – ai 10i Portanto, sabemos que aj–i × 10i é múltiplo de 2003. Também sabemos que 2003 é primo em relação a 10i . Portanto, só resta que aj–i é múltiplo de 2003. Note também que 1 ≤ (j – i) ≤ 2004. 80/168 Princípio dos escaninhos generalizado Princípio dos escaninhos generalizado: Se k escaninhos são ocupados por x × k + 1 envelopes, então ao menos um escaninho deverá conter pelo menos x + 1 envelopes. Reformulando: Teorema: Se colocarmos n envelopes em k escaninhos , então pelo menos um escaninho deverá conter no mínimo n–1 +1 k envelopes. 81/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 82/168 Princípios de contagem: revisão Princípio aditivo: se A ∩ B = ∅ então |A ∪ B| = |A| + |B| Regra da subtração: (derivada do princípio aditivo) se B ⊆ A então |A – B| = |A| – |B| Princípio multiplicativo: |A × B| = |A| × |B| Regra do quociente: (derivada do princípio multiplicativo) se R é uma relação de equivalência sobre A onde toda classe de equivalência tem |A| tamanho r, então |A/R| = r 83/168 Princípios de contagem: revisão (cont) Princípio da inclusão/exclusão: |A1 ∪ A2 ∪ . . . ∪ An | = + X |Ai | 1≤i≤n – X |Ai ∩ Aj | 1≤i<j≤n + X |Ai ∩ Aj ∩ Ak | 1≤i<j<k≤n .. . (–1)n–1 |A1 ∩ A2 ∩ . . . ∩ An | Princípio dos escaninhos: se n objetos são colocados em k escaninhos e n > k, há ao menos um escaninho contendo mais de um envelope. 84/168 Resumo de arranjos e combinações Contagem de estruturas construídas a partir de um conjunto com n elementos. sem reposição onde n! (n–k)! com reposição k-tuplas Akn = ARkn = nk k-conjuntos Ckn = n k Ckn = k-multiconjuntos Ckn = n k CRkn = n k k+n–1 k n n! = k (n – k)!k! 85/168 Resumo de permutações Permutações simples: formas distintas de enumerar um conjunto de tamanho n. Pn = n! Permutações com repetição: formas distintas de enumerar um multiconjunto de tamanho n, sendo r1 , . . . , rn as repetições de símbolo. n n! PR(n; r1 , r2 , . . . , rn ) = = r1 , r2 , . . . , rn r1 !r2 ! · · · rn ! 86/168 Resumo de permutações (2) Permutações circulares: formas de dispor circularmente os elementos de um conjunto de tamanho n. (PC)n = (n – 1)! Permutações caóticas: formas de embaralhar uma sequência de valores distintos sem que nenhum valor acabe na sua posição original. 1 1 1 n! n 1 Dn = n! 1 – + – + . . . + (–1) ≈ 1! 2! 3! n! e 87/168 Resumo de contagem de funções Sejam A e B conjuntos finitos, onde |A| = a e |B| = b. Número de funções f : A → B: ba Número de funções bijetoras f : A → B (considerando a = b): b! Número de funções injetoras f : A → B (considerando a ≤ b): b! (b–a)! Número de funções sobrejetoras f : A → B (considerando a ≥ b): b X i=0 (–1)i b (b – i)a i 88/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 89/168 Sequências Definição: uma sequência (an ) é uma lista infinita de números reais. (an ) = (a0 , a1 , a2 , . . .) Exemplo: (an ) = (0, 1, 2, 3, 4, 5, 6, . . .) (bn ) = (1, 1, 1, 1, 1, 1, . . .) (cn ) = (0, 1, 0, –1, 0, 1, 0, –1, 0, 1, . . .) Notação: sempre consideraremos que sequências começam no índice zero (primeiro elemento é a0 ). 90/168 Sequências (cont.) Notação: usamos (an ) = expressão para descrever uma sequência de números com base em sua estrutura: Exemplo: (an ) = n2 (an ) = (0, 1, 4, 9, 16, 25, . . .) (bn ) = 1 ( (bn ) = (1, 1, 1, 1, 1, . . .) (cn ) = 0 (–1)bn/2c se n par se n ímpar (cn ) = (0, 1, 0, –1, 0, 1, 0, –1, . . .) 91/168 Séries de potências Definição: uma série de potências é uma série infinita da forma a0 + a1 x + a2 x2 + a3 x3 + . . . onde todos ai (para i ∈ N) são números reais e x é uma variável. Nota: qualquer polinômio finito pode ser visto como uma série de potências tendo sempre 0 como coeficiente a partir de um certo índice. 92/168 Séries de potências: soma Definição: a soma de duas séries de potências é realizada por componentes: a0 + a1 x + b0 + b1 x (a0 + b0 ) + (a1 + b1 )x + a2 x2 + b2 x2 + (a2 + b2 )x2 + + + ··· ··· ··· 93/168 Séries de potências: multiplicação Definição: a multiplicação de duas séries A e B é dada pela soma de todas as possíveis multiplicações de termos de A e termos de B. a0 × b0 a 0 b0 + a1 x + b1 x + (a1 b0 + a0 b1 )x + a2 x2 + b2 x2 + (a0 b2 + a1 b1 + a2 b0 )x2 + + + ··· ··· ··· Nota: note que, para calcular o coeficiente xn de A × B precisamos calcular a soma todos os termos com potência xn . 94/168 Funções geradoras ordinárias Definição: dizemos que a série de potências A = a 0 + a1 x + a 2 x 2 + a3 x 3 + . . . é a função geradora ordinária da sequência (a0 , a1 , a2 , a3 , . . .) Intuição: representar uma sequência de números através de uma única expressão. Nota: as potências da variável x ( no caso, x0 , x1 , x2 , . . .) servem essencialmente para separar os valores da sequência. Importante: podemos recuperar o n-ésimo elementos da sequência (an ) através do coeficiente da potência xn em A. Notação: Vamos usar A ⇔ (an ) para indicar que A é a função geradora da sequência (an ). 95/168 Funções geradoras ordinárias (motivação) A principal motivação de representarmos sequências através de funções geradoras ordinárias é que essa transformação permite a manipulação algébrica da informação contida na sequência. Veremos dois usos fundamentais para funções geradoras nesta disciplina • obter fórmulas fechadas para resoluções de problemas combinatórios • resolver relações de recorrência Contudo, antes de partirmos para as aplicações, será necessário aprender como manipular adequadamente as funções geradoras. A seguir, construiremos um repertório de resultados que serão essenciais na resolução de problemas usando f.g.o. 96/168 Identidades básicas (1) Teorema: 1 + x + x2 + x3 + · · · = 1 1–x Demonstração: assuma 1 + x + x2 + · · · = f(x) e multiplique ambos os lados da equação por (1 – x). Nota: normalmente no estudo de séries nos preocupamos com questões de convergência, isto é, a faixa de valores para as quais o limite das somas parciais é um número real. No caso acima, se x > 1 a série não converge. Nesta disciplina, contudo, não estaremos avaliando x, portanto conscientemente não nos preocuparemos em calcular intervalos de convergência. 97/168 Identidades básicas (2) Teorema: 1 + cx + c2 x2 + c3 x3 + · · · = 1 1 – cx 98/168 Identidades básicas (3) Teorema: 2 3 c + cx + cx + cx + · · · = c 1 1–x 99/168 Identidades básicas (4) Teorema: 1+x+ x2 x3 x4 + + + · · · = ex 2! 3! 4! 100/168 Identidades básicas (5) Teorema: 1 + 0x + 1x2 + 0x3 + 1x4 + 0x5 + 1x6 + · · · = 1 1 – x2 101/168 Identidades básicas (6) Teorema: 1 + 0x + 0x2 + 1x3 + 0x4 + 0x5 + 1x6 + · · · = 1 1 – x3 102/168 Identidades básicas (7) Teorema: 1 + xc + x2c + x3c + · · · = 1 1 – xc 103/168 Identidades básicas (8) Considere A(x) = a0 + a1 x + a2 x2 + a3 x3 + · · · ⇔ (a0 , a1 , a2 , a3 , . . .) Teorema: xA(x) ⇔ (0, a0 , a1 , a2 , a3 , a4 , . . .) x2 A(x) ⇔ (0, 0, a0 , a1 , a2 , a3 , a4 , . . .) x3 A(x) ⇔ (0, 0, 0, a0 , a1 , a2 , a3 , a4 . . .) .. . Intuição: multiplicar a f.g.o por xk tem o efeito de um deslocamento à direita na sequência codificada, preenchendo as primeiras k posições com 0. 104/168 Identidades básicas (9) Considere A(x) = a0 + a1 x + a2 x2 + · · · ⇔ (a0 , a1 , a2 , . . .) Teorema: (derivação) ∞ X d A(x) = 0a0 + 1a1 + 2a2 x + 3a3 x2 + · · · = i · ai xi–1 dx i=1 ⇔ (1a1 , 2a2 , 3a3 , . . . ) Intuição: multiplica pelo índice, depois executa um deslocamento à esquerda. 105/168 Identidades básicas (10) Considere A(x) = a0 + a1 x + a2 x2 + · · · ⇔ (a0 , a1 , a2 , . . .) Teorema: x d A(x) dx = 0a0 x + 1a1 x + 2a2 x2 + 3a3 x3 + · · · ⇔ (0a0 , 1a1 , 2a2 , 3a3 , 4a4 , . . .) Intuição: multiplica pelo índice, apaga o termo a0 . 106/168 Identidades básicas (11) Considere A(x) = a0 + a1 x + a2 x2 + · · · ⇔ (a0 , a1 , a2 , . . .) Teorema: (integração) Z A(x)dx = c + ∞ X ai xi+1 i=0 i+1 Intuição: deslocamento à direita (preenchendo com c a primeira posição) e divide pelo índice novo (para índice maior que 0). 107/168 Identidades básicas (12) Considere A(x) = a0 + a1 x + a2 x2 + · · · ⇔ (a0 , a1 , a2 , . . .) e B(x) = b0 + b1 x + b2 x2 + · · · ⇔ (b0 , b1 , b2 , . . .) Teorema: A(x)B(x) = ∞ X j X j=0 ai bj–i xj i=0 ⇔ ( a0 b0 , a0 b1 + a1 b0 , a0 b2 + a1 b1 + a2 b0 , . . .) 108/168 Identidades básicas (13) Considere A(x) = a0 + a1 x + a2 x2 + · · · ⇔ (a0 , a1 , a2 , . . .) Teorema: 1 1–x A(x) = a0 + (a0 + a1 )x + (a0 + a1 + a2 )x2 + · · · ⇔ ( a0 , a0 + a 1 , a0 + a 1 + a 2 , . . .) Intuição: soma dos valores até o índice em questão. 109/168 Funções geradoras: exercícios I 5.1 Encontrar a função geradora ordinária f(x) na qual o coeficiente ar de xr é o número de soluções inteiras positivas de x1 + x2 + x3 = r, onde {9, 10, 11, 12, 13, 14, 15}, 2 ≤ xi ≤ 4 para i = 1, 2, 5 ≤ x3 ≤ 7. 5.2 Achar a função geradora ordinária f(x) na qual o coeficiente ar de xr é o número de soluções inteiras não-negativas da equação 2x + 3y + 7z = r. 5.3 Encontrar a função geradora para a sequência (ar ) = (0, 0, 1, 1, 1, 1, . . .). 5.4 Encontrar a sequência cuja função geradora é dada por g(x) = 1 1 – x2 5.5 Encontrar a função geradora para a sequência 1 1 1 1 (ar ) = 1, , , , , . . . 1! 2! 3! 4! 110/168 Funções geradoras: exercícios II 5.6 Encontrar a sequência cuja função geradora ordinária é x2 + x3 + ex . 5.7 Encontrar a função geradora ordinária para a sequência r 2 (ar ) = r! 5.8 Qual o coeficiente de x23 na expansão de (1 + x5 + x9 )6 ? 111/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 112/168 Potências de séries: exemplo 1 Expressão original: (1 + ax)(1 + bx)(1 + cx) Expansão: 1 + (a + b + c)x + (ab + bc + ac)x2 + abcx3 Significado: Cálculo de todos os subconjuntos de {a, b, c}, separados por tamanho de conjunto i (coeficiente de xi ). Substituindo a, b e c por 1: (1 + x)3 = 1 + (1 + 1 + 1)x + (1 + 1 + 1)x2 + 1x3 = 1 + 3x + 3x2 + x3 113/168 Potências de séries: exemplo 2 Expressão original: (1 + ax + a2 x2 )(1 + bx)(1 + cx) Expansão: 1 + (a + b + c)x + (a2 + ab + bc + ac)x2 + (abc + a2 c + a2 b)x3 + (a2 bc)x4 Significado: Cálculo de todos os sub-multiconjuntos de Ha, a, b, cI, separados por tamanho de multiconjunto i (coeficiente de xi ). Note que a pode ocorrer até duas vezes, enquanto que b e c somente uma única vez. Substituindo a, b e c por 1: (1 + x + x2 )(1 + x)2 = 1 + 3x + 4x2 + 3x3 + x4 114/168 Potências de séries: exemplo 3 Expressão original: (infinita) (1 + ax + a2 x2 + · · · )(1 + bx + b2 x2 + · · · )(1 + cx + c2 x2 + · · · ) Expansão: (infinita) 1 + (a + b + c)x + (a2 + b2 + c2 + ab + bc + ac)x2 + (abc + a2 b + a2 c + b2 a + b2 c + c2 a + c2 b + a3 + b3 + c3 )x3 + · · · Significado: Cálculo de todas as combinações com reposição sobre o alfabeto {a, b, c}, separados por tamanho de multiconjunto i (coeficiente de xi ). Substituindo a, b e c por 1: (1 + x + x2 + x3 + · · · )3 = 1 + 3x + 6x2 + 10x3 + · · · 115/168 Potências de séries e contagem Lembre que 1 1–x = 1 + x + x2 + x3 + · · · Podemos representar a contagem de combinações de tamanho k sobre um alfabeto de tamanho n descobrindo o coeficiente de xk na expansão de • (1 + x)n (sem reposição) • 1 n 1–x (com reposição) Note que casos intermediários entre reposição irrestrita e inexistência de reposição podem ser uniformemente modelados. Notação: escrevemos [xi ]f(x) para denotar o coeficiente de xi na expansão em série de potências de f(x). 116/168 Potências de séries e contagem: exemplo Contagem de combinações simples de tamanho k sobre alfabeto de tamanho n: k n [x ](1 + x) = n k (teorema binomial) Contagem de combinações com reposição de tamanho k sobre alfabeto de tamanho n: [xk ] 1 1–x n = k+n–1 k (demonstração a seguir . . . ) Contagem de multiconjuntos de tamanho k sobre alfabeto {a, b, c, d} (com reposição) onde 2 ≤ a ≤ 5, 0 ≤ b ≤ 3, e qualquer número de repetições de cs e ds: 1 [x ] (x + x + x + x )(1 + x + x + x ) 1–x k 2 3 4 5 2 3 2 117/168 Funções geradoras: cálculo de coeficientes Normalmente quando usamos funções geradoras, a parte de modelagem das restrições do problema é fácil. Exemplo: obter uma expressão no formato [xk ]f(x) Contudo, efetivamente calcular uma fórmula para o coeficiente de xk na expansão de f(x) pode ser um processo trabalhoso. Existem duas estratégias principais: • Calcular a expansão de f(x) em séries de MacLaurin (envolve calcular derivadas). • Descrever f(x) como uma combinação de funções cuja expansão em séries de potência é conhecida. 118/168 Série de MacLaurin A seguinte identidade permite extrair os coeficientes da sequência codificada por uma função f(x) infinitamente diferenciável: Definição: (Série de MacLaurin) f(x) = f(0) + f 0 (0)x + f 00 (0) x2 x3 x4 + f 000 (0) + f 0000 (0) + · · · 2! 3! 4! Este resultado não será provado nesta disciplina. Contudo, podemos nos convencer da sua validade derivando os dois lados da igualdade e comparando as expressões resultantes. 119/168 Notação binomial generalizada Vamos utilizar a expansão em série de MacLaurin para generalizar o teorema binomial. Inicialmente redefinimos u k para u ∈ R e k ∈ N. Definição: ( u k = u(u–1)(u–2)···(u–k+1) k! 1 Esta definição permite determinar números negativos. u k se k > 0 se k = 0 para qualquer valor real u, inclusive frações e Exemplo: –5, 5 3 = –5, 5 × –6, 5 × –7, 5 = –268, 125 3! 120/168 Notação binomial generalizada (2) A seguinte identidade é útil quando temos “alfabeto de tamanho negativo”. Teorema: –u k = k+u–1 (–1)k k Demonstração: k –u k z }| { (–u)(–u – 1) . . . (–u – k + 1) = k! (definição) k z }| { (u)(u + 1) . . . (u + k – 1) ·(–1)k = k! u+k–1 = (–1)k k (fatorando (-1)’s) (definição) 121/168 Teorema binomial generalizado Considere u ∈ R. Teorema: (1 + x)u = ∞ X u i=0 i xi Demonstração: calculamos a série de MacLaurin de (1 + x)u . (1 + x)u = (1 + x)u + x=0 d (1 + x)u x + dx x=0 d2 (1 + x)u dx2 x=0 x2 2! + ··· 122/168 Teorema binomial generalizado (2) Calculando os coeficientes da série: • (1 + x)u • • (1 + 0)u = = 1 x=0 u d dx (1 + x) u(1 + x)u–1 |x=0 = x=0 d2 (1 + x)u dx2 = u u(u – 1)(1 + x)u–2 |x=0 = x=0 = u(u – 1) . . . Portanto: (1 + x)u = 1 + ux + u(u – 1) = u 0 + u x+ 1 x2 x3 + u(u – 1)(u – 2) + · · · 2! 3! u 2 x + ··· 2 = ∞ X u i=0 i xi 123/168 Exemplo de cálculo de coeficientes Exemplo: Vamos mostrar a derivação de [xk ] 1 1–x n = k + n – 1 k utilizando o teorema binomial generalizado. Rescrevendo a expressão: 1 1–x n = (1 – x)–n Utilizando a substituição y = –x = (1 + y)–n 124/168 Exemplo de cálculo de coeficientes (2) (1 + y)–n = ∞ X –n i y i (teorema binomial generalizado) i + n – 1 (–1)i yi · · · i (alfabeto negativo) i + n – 1 (–1)i (–1)i xi i (substituição y = –x) i + n – 1 i x i (simplificando (–1)2i = 1) i=0 = ∞ X i=0 = ∞ X i=0 = ∞ X i=0 125/168 Exemplo de cálculo de coeficientes (3) Portanto: [xk ] = k [x ] 1 1–x n ∞ X i+n–1 i i=0 = k+n–1 k x ! i 126/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 127/168 Potências de séries e contagem de tuplas Vimos que problemas envolvendo combinações podem ser representados através da descoberta de coeficientes em potências de séries (consequência do teorema binomial): n X n i n (x + 1) = x i i=0 Nesses problemas, assumimos que a ordem dos elementos não é relevante, isto é, contamos multiconjuntos. Contudo, não há a mesma equivalência para problemas de contagem envolvendo tuplas ou arranjos (tuplas sem repetição): ??? = n X i=0 n! xi (n – i)! 128/168 Potências de séries e contagem de tuplas (cont.) Considerando que a relação entre o número de combinações e o número de arranjos de tamanho k é conhecida, isto é, n n! n! k! = k! = k (n – k)!k! (n – k)! poderíamos estabelecer uma correlação entre potências de séries e contagem de arranjos se mudarmos a codificação de séries. (x + 1)n = n X i=0 n! xi (n – i)! i! 129/168 Funções geradoras exponenciais Definição: dada uma sequência de números (a0 , a1 , a2 , . . .) a sua respectiva função geradora exponencial (f.g.e) é a série a0 x0 x1 x2 x3 + a1 + a2 + a 3 + · · · 0! 1! 2! 3! Nota: a designação exponencial vem do fato que ex = (1 + x + x2 x3 + + · · · ) ⇔ (1, 1, 1, 1, . . .) 2! 3! Importante: os fatos anteriormente provados valem somente para f.g.o! É preciso desenvolver novos resultados para trabalhar com f.g.e. 130/168 Funções geradoras exponenciais: identidades Teorema: x e = x2 x3 1+x+ + + ··· 2! 3! ⇔ (1, 1, 1, . . .) Teorema: ax e a2 x2 a3 x3 = 1 + ax + + + · · · ⇔ (1, a, a2 , a3 , . . .) 2! 3! Teorema: 1 = ex 1–x+ x2 x3 – + ··· 2! 3! ⇔ (1, –1, 1, –1, . . .) 131/168 Funções geradoras exponenciais: identidades (2) Teorema: ex + e–x = 2 1+ x2 x4 x6 + + + ··· 2! 4! 6! ⇔ (1, 0, 1, 0, . . .) Intuição: seleciona as posições pares da sequência. Teorema: ex – e–x = 2 x3 x4 x+ + + ··· 3! 5! ⇔ (0, 1, 0, 1, 0, . . .) Intuição: seleciona as posições ímpares da sequência. 132/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 133/168 Funções geradoras exponenciais e contagem Apesar de ser uma codificação de sequências diferente de f.g.o, a forma de resolver problemas de contagem usando f.g.e é a mesma. O que muda é codificação do problema (em f.g.e) e a leitura do resultado: • f.g.o ⇒ contagem de multiconjuntos • f.g.e ⇒ contagem de tuplas Nota: nunca esqueça que o fatorial no denominador faz parte da construção da f.g.e, e não deve ser lido como parte do coeficiente. Exemplo: como 2x3 = 3! 2x 3 , 3! temos x3 (1 + 4x + 2x3 + 5x5 ) = 3! × 2 = 12 3! 134/168 Funções geradoras exponenciais: exemplo 1 Expressão original: (1 + ax)(1 + bx)(1 + cx) = 1 + (a + b + c)x + (ab + bc + ac)x2 + abcx3 (o caso sem reposição possui a mesma codificação como f.g.o e f.g.e) Substituindo a, b e c por 1: (1 + x)3 = 1 + (1 + 1 + 1)x + (1 + 1 + 1)x2 + 1x3 = (1 + 3x + 3x2 + x3 ) Leitura: x2 (1 + 3x + 3x2 + x3 ) = 6 2! Significado: número de arranjos (tuplas construídas sem reposição) de tamanho 2 sobre o alfabeto {a, b, c}. 135/168 Funções geradoras exponenciais: exemplo 2 Expressão original: x0 x1 x2 x3 +a + a2 + a3 + ···) × 0! 1! 2! 3! x0 x1 x2 x3 (1 +b + b2 + b3 + ···) 0! 1! 2! 3! (1 136/168 Funções geradoras exponenciais: exemplo 2 Expressão original: x0 x1 x2 x3 +a + a2 + a3 + ···) × 0! 1! 2! 3! x0 x1 x2 x3 (1 +b + b2 + b3 + ···) 0! 1! 2! 3! (1 Expandindo . . . 1+ 1b a1 + 0!1! 1!0! x1 + 1b2 ab a2 1 + + 0!2! 1!1! 2!0! x2 + 1b3 ab2 a2 b a3 1 + + + 0!3! 1!2! 2!1! 3!0! x3 + · · · 136/168 Funções geradoras exponenciais: exemplo 2 Expressão original: x0 x1 x2 x3 +a + a2 + a3 + ···) × 0! 1! 2! 3! x0 x1 x2 x3 (1 +b + b2 + b3 + ···) 0! 1! 2! 3! (1 . . . multiplicando cada linha i > 0 por 1 (na forma i! ) i! ... 1+ 1! 1b a1 + 0!1! 1!0! x1 + 1! 1b2 ab a2 1 + + 0!2! 1!1! 2!0! 1b3 ab2 a2 b a3 1 + + + 0!3! 1!2! 2!1! 3!0! 2! 3! x2 + 2! x3 + ··· 3! 136/168 Funções geradoras exponenciais: exemplo 2 Expressão original: x0 x1 x2 x3 +a + a2 + a3 + ···) × 0! 1! 2! 3! x0 x1 x2 x3 (1 +b + b2 + b3 + ···) 0! 1! 2! 3! (1 . . . e reescrevendo: 1+ 1! 1! x1 b+ a + 0!1! 1!0! 1! 2! 2 2! 2! 2 x2 b + ab + a + 0!2! 1!1! 2!0! 2! 3! 3 3! 3! 2 3! 3 x3 b + ab2 + a b+ a + ··· 0!3! 1!2! 2!1! 3!0! 3! k Intuição: o coeficiente de xk! consiste de todos os k-multiconjuntos sobre o alfabeto {a, b}, cada um multiplicado pela respectiva quantidade de permutações. Substituindo a e b por 1, contamos todas as k-tuplas. 136/168 Funções geradoras exponenciais e contagem Contagem de arranjos de tamanho k sobre alfabeto de tamanho n: xk n (1 + x)n = k! k! k = n! (n – k)! Contagem de tuplas (arranjos com reposição) de tamanho k sobre alfabeto de tamanho n: k x (ex )n = nk k! Contagem de tuplas de tamanho k sobre o alfabeto {a, b, c} onde 0 ≤ a ≤ 3, 1 ≤ b ≤ 2 e c pode ocorrer indefinidamente: xk k! 1+x+ x2 x3 + 2! 3! x+ x2 2! ex 137/168 Funções geradoras exponenciais: exemplo 3 Exemplo: Quantas tuplas de tamanho k existem sobre o alfabeto {a, b, c} possuindo um número par de a’s? Codificação do problema usando f.g.e: xk k! 1+ x2 x4 + + ··· 2! 4! e2x Usando o fato que x2 x4 1+ + + ··· 2! 4! Temos xk k! ex + e–x 2x e 2 = xk k! = ex + e–x 2 (3k + 1) 1 3x (e + ex ) = 2 2 138/168 Funções geradoras exponenciais: exemplo 4 Exemplo: Derivação da fórmula de contagem de funções sobrejetoras de A para B utilizando f.g.e, onde |A| = a e |B| = b. Equivale a contar as tuplas de tamanho a onde cada símbolo de B ocorre ao menos uma vez: h xa (ex – 1)b a! i Simplificação: Leitura: h ai x a! x b ((–1) + e ) b = X b i i (b–i)x (–1) e b X = X b i (–1) X i i=0 = = (b – i) j x j! [expansão e (b–i)x ] i i b a (b – i) i i=0 (–1) i j b jx (b – i) i j! [internaliza (–1) (–1) i j b jx (b – i) i j! [troca ordem das somas] b ] i j=0 ∞ b X X j=0 j j=0 b ∞ X X i=0 (–1) ∞ b = [teor. binom.] i=0 b x (e – 1) i=0 139/168 Funções geradoras: resumo do método Resolução de problemas de contagem de multiconjuntos de tamanho k: 1. Modele o problema e suas restrições através de uma f.g.o f(x) (função geradora ordinária) 2. Simplifique a f.g.o para facilitar a leitura de coeficientes (expansão em série, transformá-la em uma soma de f.g.o’s conhecidas, etc...) h i 3. Leia o coeficiente de xk (na nossa notação, xk f(x)) 140/168 Funções geradoras: resumo do método (2) Resolução de problemas de contagem de tuplas de tamanho k: 1. Modele o problema e suas restrições através de uma f.g.e f(x) (função geradora exponencial) 2. Simplifique f(x) para facilitar a leitura de coeficientes (expansão em série, transformá-la em uma soma de f.g.e’s conhecidas, etc...) h ki k 3. Leia o coeficiente de xk! (na nossa notação, xk! f(x)) 141/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 142/168 Relações de recorrência Em matemática, o mais comum é definirmos novas funções através da composição de funções pré-existentes. Ex: √ f(x) = x + x3 Contudo, certas funções podem ter uma definição simples reutilizando resultados de sua própria aplicação sobre outros valores. Ex: 0! = 1 n! = n × (n – 1)! Fib(0) = 0 Fib(1) = 1 Fib(n) = Fib(n – 1) + Fib(n – 2) neste caso, dizemos que as definições são recorrentes, i.e. estabelecem uma relação de recorrência entre as saídas da função. 143/168 Relações de recorrência (cont.) Apesar de Fib(n) possuir uma definição simples, precisamos calcular todos os 999 valores anteriores para descobrir o valor de Fib(1000). Nesse caso (valores grandes) seria interessante obter uma definição não-recorrente para Fib(n). Encontrar uma definição não-recorrente para uma função definida de forma recorrente é resolver a recorrência. Nesta disciplina, veremos como • obter relações de recorrência a partir da descrição de um problema • resolver recorrências Nota: lembre que sequências numéricas contendo elementos do conjunto X podem ser vistas como funções do tipo N → X. 144/168 Relações de recorrência: exemplo 1 A Torre de Hanoi Neste jogo, inventado pelo matemático francês Édouard Lucas em 1883, há três eixos (esquerda, centro, direita) e um número n de discos de tamanhos distintos. O objetivo é passar os n discos (colocados em ordem ascendente de tamanho, de cima para baixo) do eixo à esquerda para o eixo à direita na mesma ordem, efetuando o menor número de movimentos. Somente um disco pode ser mudado de eixo a cada movimento, e ele não pode ser colocado em cima de um disco menor. Qual o número mínimo de passos para a resolução de uma instância do jogo contendo n discos? Applet Java para simulação do jogo: http://www.mazeworks.com/hanoi/index.htm Recorrência: (contagem do número mínimo de passos) H(0) = 0 H(n) = 2H(n – 1) + 1 145/168 Relações de recorrência: exemplo 2 Cálculo do tamanho de uma população de sapos A população de sapos de um lago quadruplica a cada ano. No primeiro dia de cada ano, 100 sapos são removidos do lago e transferidos para outro local. Assumindo que inicialmente havia 50 sapos no lago, quantos sapos o lago terá em n anos? Suponha que os sapos não morrem e que não haja migração. Recorrência: S(0) = 50 S(n) = 4 ∗ S(n – 1) – 100 para n > 0 146/168 Relações de recorrência: exemplo 3 Cálculo do tamanho de uma população de coelhos Suponha que um casal de coelhos recém-nascidos é colocado numa ilha, e que eles não produzem descendentes até completarem dois meses de idade. Uma vez atingida esta idade, cada casal de coelhos produz exatamente um outro casal de coelhos por mês. Qual seria a população de coelhos na ilha após nove meses, supondo que nenhum dos coelhos tenha morrido e que não haja migração neste período? Recorrência: F(0) =0 F(1) =1 (casal) F(n) =F(n – 1) + F(n – 2) para n > 1 147/168 Resolução de recorrências Vimos três problemas e suas respectivas recorrências: A Torre de Hanoi H(0) = 0 H(n) = 2H(n – 1) + 1 para n > 0 Cálculo do tamanho de uma população de sapos S(0) = 50 S(n) = 4 ∗ S(n – 1) – 100 para n > 0 Cálculo do tamanho de uma população de coelhos (Fibonacci) Fib(0) =0 Fib(1) =1 Fib(n) =Fib(n – 1) + Fib(n – 2) para n > 1 148/168 Resolução de recorrências (2) Veremos agora como solucionar recorrências. Nesta disciplina, dois métodos: • hipótese e confirmação • resolução através de funções geradoras ordinárias Nota: o livro menciona outros métodos além dos vistos acima, mas não vamos focar neles. 149/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 150/168 Método da hipótese e confirmação Considere a sequência de valores H(n), contada a partir de n = 0 H(0) = 0 H(n) = 2H(n – 1) + 1 Para chegarmos a uma hipótese, precisamos identificar algum padrão de formação na sequência de números. Observando os valores à direita, podemos detectar um padrão: aparentemente H(n) é sempre o número anterior a 2n . n H(n) 0 0 1 1 2 3 3 7 4 15 5 31 6 63 7 127 8 255 .. .. . . Hipótese: H(n) = 2n – 1 151/168 Método da hipótese e confirmação (2) Podemos verificar manualmente se a hipótese funciona para os primeiros valores da tabela: H(0) = 0 20 – 1 = 0 H(n) = 2H(n – 1) + 1 21 – 1 = 1 22 – 1 = 3 . . . Contudo, para termos certeza da validade da hipótese, é necessário provar que ela é válida. Para recorrências, o método de prova mais recomendado é indução matemática, visto que as bases e os passos de indução estão explicitamente descritos. n 0 1 2 3 4 5 6 7 8 .. . H(n) 0 1 3 7 15 31 63 127 255 .. . 152/168 Método da hipótese e confirmação (3) Teorema: H(n) = 2n – 1 H(0) = 0 Demonstração: H(n) = 2H(n – 1) + 1 • Base: H(0) = 20 – 1 1. 20 – 1 = 0 • Passo indutivo: Se H(n) = 2n – 1 então H(n + 1) = 2n+1 – 1. 1. H(n + 1) = 2H(n) + 1 n 2. H(n + 1) = 2(2 – 1) + 1 3. H(n + 1) = (2 4. H(n + 1) = 2 n+1 n+1 – 2) + 1 –1 (Def.) (H.I.) n 0 1 2 3 4 5 6 7 8 .. . H(n) 0 1 3 7 15 31 63 127 255 .. . 153/168 Método da hipótese e confirmação (4) Também é útil na identificação de padrões a expansão de H(n) para certos valores pequenos de n. O padrão pode emergir da simplificação da expressão final. Exemplo: para n = 4 H(4) = 2H(3) + 1 (Def. Recorrente) = 2(2H(2) + 1) + 1 (Def. Recorrente) = 2(2(2H(1) + 1) + 1) + 1 (Def. Recorrente) = 2(2(2(2H(0) + 1) + 1) + 1) + 1 (Def. Recorrente) = 2(2(2(2 · 0 + 1) + 1) + 1) + 1 (Base) = 4(2(2 · 0 + 1) + 1) + 2 + 1 (Distribui 2) = 8(2 · 0 + 1) + 4 + 2 + 1 (Distribui 4) = 16 · 0 + 8 + 4 + 2 + 1 (Distribui 8) = 8+4+2+1 (Remove 0) = 3 X 2i = 24 – 1 = 15 i=0 154/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 155/168 Resolução de recorrências com f.g.o O método anterior de resolução exige que tenhamos uma hipótese correta de trabalho, o que nem sempre pode ser formulada considerando o padrão da sequência de números: Exemplo: Fib(0) =0 Fib(1) =1 Fib(n) =Fib(n – 1) + Fib(n – 2) para n > 1 n Fib(n) 0 0 1 1 2 1 3 2 4 3 5 5 6 8 7 13 8 21 .. .. . . Nesses casos, veremos como resolver recorrências calculando a função geradora ordinária da sequência de números (an ) = F(n) 156/168 Resolução de recorrências com f.g.o Para ilustrar o método, vamos utilizar a recorrência já resolvida H(n). H0 = 0 Hn = 2Hn–1 + 1 para n > 0 Vamos chamar de H a f.g.o da sequência (H0 , H1 , H2 , . . .). Estamos interessados inicialmente em uma definição para H. Considere as seguintes f.g.o’s: x H 2xH 1 1–x = = = H0 0 0 + + + H1 x 2H0 x 1x + + + H2 x 2 2H1 x2 1x2 + + + H3 x 3 2H2 x3 1x3 + + + ··· ··· ··· Por construção, a equação abaixo representa exatamente as restrições da recorrência sobre H: x H = 2xH + 1–x 157/168 Resolução de recorrências com f.g.o (2) Resolvendo: H = 2xH + x 1–x x 1–x x (1 – 2x)H = 1–x H – 2xH = H= x (1 – x)(1 – 2x) Note que obtivemos uma expressão fechada para a f.g.o da sequência de números (H0 , H1 , H2 , . . .) x H= (1 – x)(1 – 2x) Portanto, descobrir uma fórmula explícita para Hn equivale a descobrir o coeficiente de xn na expansão de H: x Hn = [xn ] (1 – x)(1 – 2x) 158/168 Resolução de recorrências com f.g.o (3) Habitualmente, a parte mais complexa da resolução de recorrências utilizando f.g.o é o cálculo de coeficientes. Se pudermos transformar a f.g.o em uma soma de f.g.o’s cujos coeficientes são conhecidos, a resolução se torna fácil. No nosso exemplo, através de manipulação algébrica (frações parciais) podemos fazer a seguinte transformação x 1 1 = – (1 – x)(1 – 2x) 1 – 2x 1 – x e, portanto, Hn = [xn ] 1 1 – 1 – 2x 1 – x = 2n – 1 Nota: a discussão sobre os detalhes da transformação algébrica utilizada acima será vista quando apresentarmos a resolução de Fibonacci. 159/168 Resolução de recorrências com f.g.o: exercício Exercício: resolva a seguinte recorrência utilizando o método das funções geradoras ordinárias: Cálculo do tamanho de uma população de sapos S(0) = 50 S(n) = 4 ∗ S(n – 1) – 100 para n > 0 160/168 Conteúdo Princípios aditivo e multiplicativo Permutações Arranjos Combinações Teorema binomial Triângulo de Pascal Regra da subtração Regra do quociente Distribuição de elementos idênticos Combinações com repetição Arranjos com repetição Permutações circulares Permutações com repetição Teorema multinomial Princípio da inclusão e exclusão Permutações caóticas Princípio dos escaninhos Revisão dos princípios de contagem Funções geradoras ordinárias F.g.o.’s e contagem de multiconjuntos Funções geradoras exponenciais F.g.e.’s e contagem de tuplas Relações de recorrência Recorrências: hipótese e confirmação Recorrências: funções geradoras Recorrências: fórmula para Fibonacci 161/168 Resolução de recorrências com f.g.o: Fibonacci A seguir vamos considerar a descoberta da f.g.o para Fibonacci, e falaremos sobre as técnicas de manipulação algébrica para simplificar a f.g.o obtida. F0 = 0 F1 = 1 Fn = Fn–1 + Fn–2 para n > 1 Modelando a recorrência com f.g.o’s: F xF x2 F x = = = = F0 0 0 0 + + + + F1 x F0 x 0x 1x + + + + F2 x 2 F1 x 2 F0 x 2 0x2 + + + + F3 x 3 F2 x 3 F1 x 3 0x3 F= x 1 – x – x2 Logo: F = xF + x2 F + x =⇒ + + + + ··· ··· ··· ··· 162/168 Fibonacci: constantes φ e φ As constantes φ e φ aparecem ao longo da resolução da recorrência de Fibonacci. √ • φ = 1+2 5 (proporção áurea), ≈ 1.6180 . . . √ • φ = 1–2 5 , ≈ –0.6180 . . . As seguintes identidades são válidas para φ e φ: 1–φ=φ φ(–1) = –φ φ2 = 1 + φ 1–φ=φ φ(–1) = –φ φ2 = 1 + φ 163/168 Resolução da recorrência de Fibonacci Visão geral sobre as simplificações necessárias: 1. Fatoração do polinômio no denominador x –x2 – x + 1 =⇒ x (–1)(x + φ)(x + φ) 2. Separação por frações parciais: –x (x + φ)(x + φ) 3. Formatação como –φ √ 5 (x + φ) =⇒ –φ √ 5 (x + φ) + φ √ 5 (x + φ) 1 1–ax : + φ √ 5 (x + φ) =⇒ –1 1 1 1 √ +√ (1 – φx) (1 – φx) 5 5 164/168 Resolução da recorrência de Fibonacci 1. Fatoração do polinômio no denominador Inicialmente precisamos fatorar o polinômio no denominador. Isso pode ser feito utilizando o seguinte resultado matemático. Teorema fundamental da álgebra: Seja p(x) = c0 + c1 x + c2 x2 + c3 x3 + · · · + cn xn um polinômio de grau n sobre a variável x, com coeficientes complexos c0 , c1 , . . . , cn . Há exatamente n raízes complexas r1 , r2 , . . . , rn para p(x), sendo que p(x) pode ser fatorado como p(x) = cn (x – r1 )(x – r2 )(x – r3 ) · · · (x – rn ) Nota: as raízes r1 , r2 , . . . , rn não são necessariamente distintas, podendo haver repetição. 165/168 Resolução da recorrência de Fibonacci 2. Separação em frações parciais Objetivo: obter D e E tal que a D E = + b×c b c onde a, b, c são polinômios lineares em x, e b 6= c. Método: a = cD + bE assuma igualdade e multiplique ambos os lados por b × c a|x=rc = bE|x=rc zere c substituindo x pela raiz de c e calcule E a|x=rb = cD|x=rb zere b substituindo x pela raiz de b e calcule D Nota: se b = c, utilizamos o teorema binomial generalizado. 166/168 Resolução da recorrência de Fibonacci 3. Formatação para leitura de coeficientes Objetivo: transformar 1 x–r 1 numa instância de c 1–ax . Método: multiplique a parte de cima e de baixo da fração por 1 × x–r 1 –r 1 –r = 1 –r 1 –r x + 1 = 1 –r 1 1 × –r 1 – 1r x 167/168 Resolução da recorrência de Fibonacci 4. Expansão em séries –1 1 1 1 F= √ +√ 5 (1 – φx) 5 (1 – φx) –1 F= √ 5 F= ∞ X i=0 5. Leitura do coeficiente: ∞ X i=0 ! i i φx 1 +√ 5 ∞ X ! i i φx i=0 1 √ (φi – φi )xi 5 1 [xi ]F = √ (φi – φi ) 5 168/168