1 / 30

Indução Matemática Recursão

Indução Matemática Recursão. Estruturas Discretas e Lógica Matemática Dep. de Informática – UFMA Prof. Anselmo Paiva. Indução. O princípio da indução matemática é uma ferramenta muito útil para provar certas propriedades dos números naturais.

annick
Download Presentation

Indução Matemática Recursão

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Indução MatemáticaRecursão Estruturas Discretas e Lógica Matemática Dep. de Informática – UFMA Prof. Anselmo Paiva

  2. Indução • O princípio da indução matemática é uma ferramenta muito útil para provar certas propriedades dos números naturais. • Não pode ser usada para descobrir teoremas, mas somente para prová-los. Prof. Anselmo Paiva

  3. Indução • Seja P(n) uma função proposicioinal, e queremos provar que P(n) é verdadeiro para qualquer n natural : • Mostre que P(0) é true. (passo básico) • Mostre que se P(n) então P(n + 1) para qualquer nN. (passo indutivo) • Então P(n) deve ser true para qualquer nN. (conclusão) Prof. Anselmo Paiva

  4. Indução • Exemplo: • Mostre que n < 2n para todo inteiro positivo n. • Seja P(n) a proposição “n < 2n.” • Mostre que P(1) é true. (passo básico) • P(1) é true, porque 1 < 21 = 2. Prof. Anselmo Paiva

  5. Indução • Mostre que se P(n) é true, então P(n + 1) é true. ( passo indutivo) • Assuma que n < 2n é true. • Precisamos mostrar que P(n + 1) é true, n + 1 < 2n+1 • Começamos com n < 2n: n + 1 < 2n + 1  2n + 2n = 2n+1 • Assim, se n < 2n então n + 1 < 2n+1 Prof. Anselmo Paiva

  6. Indução • Então P(n) deve ser true para qualquer inteiro possitivo.(conclusão) • n < 2n é true para todo inteiro positivo. • C.Q.D Prof. Anselmo Paiva

  7. Indução • Outro exemplo (“Gauss”): 1 + 2 + … + n = n (n + 1)/2 • Mostre que P(0) é true.(passo base) • Para n = 0 temos 0 = 0. True. Prof. Anselmo Paiva

  8. Indução • Mostre que se P(n) então P(n + 1) para qualquer nN. (passo indutivo) 1 + 2 + … + n = n (n + 1)/2 1 + 2 + … + n + (n + 1) = n (n + 1)/2 + (n + 1) = (2n + 2 + n (n + 1))/2 = (2n + 2 + n2 + n)/2 = (2 + 3n + n2 )/2 = (n + 1) (n + 2)/2 = (n + 1) ((n + 1) + 1)/2 Prof. Anselmo Paiva

  9. Indução • Então P(n) deve ser true para todo nN. (conclusão) • 1 + 2 + … + n = n (n + 1)/2 é true para todo nN. • C.Q.D. Prof. Anselmo Paiva

  10. Indução • Existe outra técnica de prova similar ao princípio da indução matemática. • É chamado de segundo princípio da indução matemática. • Pode ser usado para provar que uma função proposicional P(n) é true para todo número natural. Prof. Anselmo Paiva

  11. Indução • O segundo princípio da indução matemática: • Mostre que P(0)é true.(passo básico) • Mostre que se P(0) e P(1) e … e P(n),então P(n + 1) para todo nN.(passo indutivo) • Então P(n) deve ser true para todo nN. (conclusão) Prof. Anselmo Paiva

  12. Indução • Exemplo: Mostre que todo inteiro maior que 1 pode ser escrito como um produto de número primos. • Mostre que P(2) é true. (passo básico) • 2 é o produto de um primo: ele mesmo. Prof. Anselmo Paiva

  13. indução • mostre que se P(2) e P(3) e … e P(n),então P(n + 1) para qualquer nN. (passo indutivo) • Dois casos possíveis: • Se (n + 1) é primo, então P(n + 1) é true. • Se (n + 1) não é primo, ele pode se escrito como produto de dois inteiros a e b tal que2  a  b < n + 1. • Pwla hipótese de indução, a e b podems er escritos como produtos de primos. • Então, n + 1 = ab pode ser escrito como um produto de primor. Prof. Anselmo Paiva

  14. Indução • Assim, P(n) deve ser true para qualquer nN. (conclusão) • C.Q.D. • Provamos que todo inteiro maior que 1 pode ser escrito como um produto de números primos. Prof. Anselmo Paiva

  15. Definições Recursivas • recursão é um princípio relacionado à indução matemática. • Numa definição recursiva um objeto é descrito em função de sim mesmo. • Podemos definir recursivamente sequências, funções e conjuntos. Prof. Anselmo Paiva

  16. Sequências Recursivamente Definidas • Exemplo: • A sequência {an} de pontências de 2 é dada por an = 2n para n = 0, 1, 2, … . • A mesma sequência pode ser definida recursivamente: a0 = 1 an+1 = 2an para n = 0, 1, 2, … • Obviamente indução e recursão são similares. Prof. Anselmo Paiva

  17. Funções Definidas Recursivamente • Podemos usar o seguinte método para definir uma função com domínio nos números naturais: • Especifique o valor da função para zero. • Dê uma regra para encontraro valor da função para um inteiro qualquer, a partir dos inteiros menores que ele. • Um definição assim é denominada recursiva. Prof. Anselmo Paiva

  18. Funções Definidas Recursivamente • Exemplo: • f(0) = 3 • f(n + 1) = 2f(n) + 3 • f(0) = 3 • f(1) = 2f(0) + 3 = 23 + 3 = 9 • f(2) = 2f(1) + 3 = 29 + 3 = 21 • f(3) = 2f(2) + 3 = 221 + 3 = 45 • f(4) = 2f(3) + 3 = 245 + 3 = 93 Prof. Anselmo Paiva

  19. Funções Definidas Recursivamente • Como definir a função fatorial (f(n) = n!) recursivamente ? • f(0) = 1 • f(n + 1) = (n + 1)f(n) • f(0) = 1 • f(1) = 1f(0) = 11 = 1 • f(2) = 2f(1) = 21 = 2 • f(3) = 3f(2) = 32 = 6 • f(4) = 4f(3) = 46 = 24 Prof. Anselmo Paiva

  20. Funções Definidas Recursivamente • Exemplo: Números de Fibonacci • f(0) = 0, f(1) = 1 • f(n) = f(n – 1) + f(n - 2) • f(0) = 0 • f(1) = 1 • f(2) = f(1) + f(0) = 1 + 0 = 1 • f(3) = f(2) + f(1) = 1 + 1 = 2 • f(4) = f(3) + f(2) = 2 + 1 = 3 • f(5) = f(4) + f(3) = 3 + 2 = 5 • f(6) = f(5) + f(4) = 5 + 3 = 8 Prof. Anselmo Paiva

  21. Conjuntos Definidos Recursivamente • Se queremos definir um conjunt recursivamente: • Um conjunto inicial de elementos, • Regras para construção des demais elementos a apartir do conjunto incial. • Exemplo: Seja S definido recursivamente por: • 3  S • (x + y)  S if (x  S) e (y  S) • S é o conjunto dos inteiros positivos divisíveis por 3. Prof. Anselmo Paiva

  22. Conjuntos Definidos Recursivamente • Prova: • Seja A o conjunto de todos os inteiros positivos divisíveis por 3. • Para mostrar que A = S,(A  S e S  A). • Parte I: Prove que A  S • Mostrar que todo inteiro positivo divisível por 3 está em S. • Indução matemática. Prof. Anselmo Paiva

  23. Conjuntos Definidos Recursivamente • Seja P(n) a afirmativa “3n pertence a S”. • Passo básico: P(1) é true, porque 3 está em S. • Passo Indutivo: • Se P(n) é true, então P(n + 1) é true. • Assuma que 3n está em S. • Como 3n está em S e 3 está em S • Da definição recursiva de S temos que • 3n + 3 = 3(n + 1) também está em S. • Conclusãon da Parte I: A  S. Prof. Anselmo Paiva

  24. Conjuntos Definidos Recursivamente • Part II: Mostrar que : S  A. • Passo básico: • Todos os elementos iniciais de S estão em A • 3 está em A. True. • Passo Indutivo: • (x + y) está em A se x e y estão em S. • Se x e y estão em A, • Então 3 | x e 3 | y. • Do Teorema Isegue que 3 | (x + y). • Conclusão da Parte II: S  A. • Logo: A = S. Prof. Anselmo Paiva

  25. Conjuntos Definidos Recursivamente • Exemplo: • Fórmulas bem formadas de variáveis, numeria s e operadores de {+, -, *, /, ^} são definidas por: • x é uma fórmula bem formada se x é um numeral ou uma variável. • (f + g), (f – g), (f * g), (f / g), (f ^ g) são fórmulas bem formadas. Prof. Anselmo Paiva

  26. Conjuntos Definidos Recursivamente • Com esta definição, podemos construir fórmulas como:: • (x – y) • ((z / 3) – y) • ((z / 3) – (6 + 5)) • ((z / (2 * 4)) – (6 + 5)) Prof. Anselmo Paiva

  27. Algoritmos Recursivos • Um algoritmo é denominado recursivo se resolve um problema reduzindo-o a uma instância do mesmo problema com tamanho menor. • Exemplo I: Algoritmo Recursivo de Fibonacci procedure fibo(n: nonnegative integer) if n = 0 then fibo(0) := 0 else if n = 1 then fibo(1) := 1 else fibo(n) := fibo(n – 1) + fibo(n – 2) Prof. Anselmo Paiva

  28. Algoritmos Recursivos f(4) f(3) f(2) f(2) f(0) f(1) f(1) f(1) f(0) • Avaliação Recursiva de Fibonacci: Prof. Anselmo Paiva

  29. Algoritmos Recursivos procedure iterative_fibo(n: nonnegative integer) if n = 0 then y := 0 else x := 0 y := 1 for i := 1 to n-1 z := x + y x : = y y := z end end {y is the n-th Fibonacci number} Prof. Anselmo Paiva

  30. Algoritmos Recursivos • Para cada algoritmo recursivo, existe um equivalente iterativo. • Algoritmos recursivos são menores, mais elegantes e fáceis de entender • Algoritmos iterativos são em geral mais eficientes em tempo e memória. Prof. Anselmo Paiva

More Related