Carregar apresentação
1
Indução Matemática Recursã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 nN (passo indutivo) Então P(n) deve ser true para qualquer nN (conclusão) Prof. Anselmo Paiva
4
Mostre que n < 2n para todo inteiro positivo n.
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
Mostre que se P(n) é true, então P(n + 1) é true. ( passo indutivo)
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
Então P(n) deve ser true para qualquer inteiro possitivo. (conclusão)
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
Outro exemplo (“Gauss”): Mostre que P(0) é true.(passo base)
Indução Outro exemplo (“Gauss”): … + n = n (n + 1)/2 Mostre que P(0) é true.(passo base) Para n = 0 temos 0 = 0. True. Prof. Anselmo Paiva
8
Mostre que se P(n) então P(n + 1) para qualquer nN. (passo indutivo)
Indução Mostre que se P(n) então P(n + 1) para qualquer nN. (passo indutivo) … + n = n (n + 1)/2 … + n + (n + 1) = n (n + 1)/2 + (n + 1) = (2n n (n + 1))/2 = (2n n2 + n)/2 = (2 + 3n + n2 )/2 = (n + 1) (n + 2)/2 = (n + 1) ((n + 1) + 1)/2 Prof. Anselmo Paiva
9
Então P(n) deve ser true para todo nN. (conclusão)
Indução Então P(n) deve ser true para todo nN. (conclusão) … + n = n (n + 1)/2 é true para todo nN. C.Q.D. Prof. Anselmo Paiva
10
É chamado de segundo princípio da indução matemática.
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
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 nN. (passo indutivo) Então P(n) deve ser true para todo nN. (conclusão) Prof. Anselmo Paiva
12
Mostre que P(2) é true. (passo básico)
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 nN. (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 que 2 a b < n + 1. Pwla hipótese de indução, a e b podems er escritos como produtos de primos. Então, n + 1 = ab pode ser escrito como um produto de primor. Prof. Anselmo Paiva
14
Assim, P(n) deve ser true para qualquer nN. (conclusão)
Indução Assim, P(n) deve ser true para qualquer nN (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(1) = 2f(0) + 3 = 23 + 3 = 9 f(2) = 2f(1) + 3 = 29 + 3 = 21 f(3) = 2f(2) + 3 = 2 = 45 f(4) = 2f(3) + 3 = 2 = 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(1) = 1f(0) = 11 = 1 f(2) = 2f(1) = 21 = 2 f(3) = 3f(2) = 32 = 6 f(4) = 4f(3) = 46 = 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 f(3) = f(2) + f(1) = = 2 f(4) = f(3) + f(2) = = 3 f(5) = f(4) + f(3) = = 5 f(6) = f(5) + f(4) = = 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
Avaliação Recursiva de Fibonacci: f(4) f(3) f(2) f(2) f(1) f(1) f(0) f(1) f(0) 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
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.