SlideShare une entreprise Scribd logo
1  sur  45
Télécharger pour lire hors ligne
Tutoria AEDSI
Pablo Silva
Mais de recursividade
Vamos ver mais alguns exemplos de problemas que
podemos resolver com recursividade
Seja o problema em que temos um número
natural n >= 0 e queremos descobrir a soma
de todos os números de n até 0. Como
resolver este problema recursivamente?
Entender o problema matemático
Precisamos sempre encontrar o caso base e o passo
recursivo. Mas para isso, temos que entender o
problema matemático.
Entender o problema matemático
Vejamos possíveis iterações:
0 = 0
1 = 1 + 0 = 1
2 = 2 + 1 + 0 = 3
3 = 3 + 2 + 1 + 0 = 6
...
n = n + n-1 + n-2 + ... + 0
O caso base como podemos
perceber é zero, pois é sempre
onde o problema termina!
Entender o problema matemático
Vejamos possíveis iterações:
0 = 0
1 = 1 + 0 = 1
2 = 2 + 1 + 0 = 3
3 = 3 + 2 + 1 + 0 = 6
...
n = n + n-1 + n-2 + ... + 0
O que podemos perceber
analisando as iterações, é que
começamos a somar em n e
vamos diminuindo em 1 para
cada número natural anterior a
n até zero.
n-1
Entender o problema matemático
Se assumirmos que diminuímos o problema em um fator de 1, então
teríamos a seguinte situação:
0 = 0
1 = + 0 = 1
2 = + 1 + 0 = 3
3 = + 2 + 1 + 0 = 6
...
n = + n + n-1 + ... + 0
Ao diminuirmos, percebemos que
novamente, nessa iteração, teríamos após o
n, um fator n-1 e então podemos definir
nosso passo recursivo como:
n + soma(n-1)
Pois para resolver o problema, sempre
somamos n com o seu antecessor direto (n-
1).
n-1
Soma de n termos
Nossa função então ficaria da seguinte forma:
int soma(int n){
if(n == 0)
return 0;
return n + soma(n-1);
}
Mais um exemplo
Seja o problema de elevar qualquer número n á um expoente qualquer k.
Como resolver isso de maneira recursiva. Vamos ver algumas possíveis
interações deste problema matemático, com n = 2 e k >= 0:
20
= 1
21
= 2 ∗ 20
22
= 2 ∗ 2 ∗ 20
= 2 ∗ 21
23
= 2 ∗ 2 ∗ 2 ∗ 20
= 2 ∗ 22
24
= 2 ∗ 21
∗ 21
∗ 21
∗ 20
= 2 ∗ 23
Na multiplicação de mesma base podemos somar os
expoentes e manter a base (1+1+1+0 = 3)
K - 1 Percebemos que o
problema termina sempre
que k = 0. Portanto, desta
vez, a diminuição do nosso
problema, ocorrerá no
expoente e não no número
que estamos somando.
Um fato importante a se considerar
sobre recursão
- Nós podemos ter mais de um caso base!
- Sempre precisamos encontrar uma maneira de diminuir o problema. O
fator que vamos diminuir e qual é o nosso parâmetro de diminuição não
será o mesmo para todos os problemas. Podemos, inclusive, ter que
diminuir o problema utilizando mais que um parâmetro para isso.
- É importante notar que o fator de diminuição nem sempre será em 1,
pode por exemplo ser 2 ou até mesmo dividir o problema pela metade
a cada passo recursivo!
Mais um exemplo
Seja o problema de elevar qualquer número n á um expoente qualquer k.
Como resolver isso de maneira recursiva. Vamos ver algumas possíveis
interações deste problema matemático, com n = 2 e k >= 0:
20
= 1
21
= 2 ∗ 20
22
= 2 ∗ 2 ∗ 20
= 2 ∗ 21
23
= 2 ∗ 2 ∗ 2 ∗ 20
= 2 ∗ 22
24
= 2 ∗ 21
∗ 21
∗ 21
∗ 20
= 2 ∗ 23
Na multiplicação de mesma base podemos somar os
expoentes e manter a base (1+1+1+0 = 3)
K - 1 O caso base é fácil de
perceber, pois quando k =
0, o problema terminou
para todas as iterações.
Logo k = 0 é o nosso caso
base.
Mais um exemplo
Seja o problema de elevar qualquer número n á um expoente qualquer k.
Como resolver isso de maneira recursiva. Vamos ver algumas possíveis
interações deste problema matemático, com n = 2 e k >= 0:
20
= 1
21
= 2 ∗ 20
22
= 2 ∗ 2 ∗ 20
= 2 ∗ 21
23
= 2 ∗ 2 ∗ 2 ∗ 20
= 2 ∗ 22
24
= 2 ∗ 21
∗ 21
∗ 21
∗ 20
= 2 ∗ 23
Na multiplicação de mesma base podemos somar os
expoentes e manter a base (1+1+1+0 = 3)
K - 1 Para o passo recursivo,
percebemos que sempre
podemos multiplicar n por
uma potenciação de 𝑛 𝑘−1.
O k-1 é em relação ao
expoente inicial. Logo o
passo recursivo:
𝑛 * 𝑛 𝑘−1
Potenciação recursiva
Nossa função então ficaria da seguinte forma:
int pot(int n, int k){
if(k == 0)
return 1;
return n * pot(n,k-1);
}
Análise da recursividade
Qual é a complexidade do algoritmo recursivo que
calcula o fatorial de n? Como conseguimos calcular
esse valor?
Análise da recursividade
Analisar a complexidade de algoritmos recursivos
não é tão simples assim e muitas vezes temos que
utilizar recursos matemáticos mais aguçados para
conseguir chegar à um valor.
Análise da recursividade
Analisar a complexidade de algoritmos recursivos
não é tão simples assim e muitas vezes temos que
utilizar recursos matemáticos mais aguçados para
conseguir chegar à um valor. Isto envolve saber a
descrição matemática que nos dá o
comportamento do algoritmo, que será definida
como sua relação de recorrência! (recorrência, pois o algoritmo sempre
“recorre” a si mesmo várias vezes para resolver um problema qualquer. Recorrência é o mesmo que repetição!)
Relações de recorrência
Uma relação de recorrência é sempre formada por:
o caso base e por um elemento que se parece
muito com o passo recursivo, mas tem a ver com
número de operações completadas. Vamos tentar
entender um pouco deste elemento, utilizando o
fatorial recursivo de n.
Relações de recorrência
Seja uma relação de recorrência representada pelo
símbolo 𝑇, podemos definir então a função de 𝑇(n),
que será a função que descreverá nossa relação de
recorrência, de modo que:
𝑇 𝑛 =
𝐶 , 𝑞𝑢𝑎𝑛𝑑𝑜 𝑛 𝑎𝑡𝑖𝑛𝑔𝑒 𝑜 𝑐𝑎𝑠𝑜 𝑏𝑎𝑠𝑒
𝑇 𝑛 𝑝𝑜𝑟 𝑎𝑙𝑔𝑢𝑚 𝑓𝑎𝑡𝑜𝑟 𝑑𝑒 𝑘 + 𝑑 𝑑 ≥< 0
Onde o valor mínimo de n depende do nosso problema matemático!
Relações de recorrência
Vamos utilizar como exemplo o fatorial de n.
Sabemos que o caso base é quando n = 1 e neste
caso, o valor retornado é 1. Logo C = 1 quando n = 1,
então:
𝑇 𝑛 =
1 , 𝑠𝑒 𝑛 = 1
Relações de recorrência
Agora vamos analisar a função fatorial, para encontrar nossa
relação de recorrência:
int fatorial(int n){
if( n == 1 )
return 1;
return n * fatorial(n-1);
}
Para encontrar a recorrência do algoritmo temos
que nos atentar para o número de operações
que temos a cada passo. Olhando para o passo
recursivo, pode-se perceber que sempre vamos
ter 1 multiplicação mais uma chamada da função
fatorial com o nosso problema diminuído em 1.
Portanto nossa recorrência pode ser definida
por:
1 + 𝑇 𝑛 − 1
Onde T refere-se neste caso a função fatorial!
Uma multiplicação e uma
chamada de função com o
problema diminuído em 1!
Relações de recorrência
Logo, k = 1, o fator de diminuição é uma subtração
por k e d = 1, que é o valor de operações
completadas por cada chamada da função.
𝑇 𝑛 =
1 , 𝑠𝑒 𝑛 = 1
𝑇 𝑛 − 1 + 1 ,
Relações de recorrência
Para finalizar o nosso T(n), precisamos definir o valor
mínimo que n atinge em que a recorrência ainda
existe. Neste caso, é todo valor que n assume que é
maior que o caso base. Logo
𝑇 𝑛 =
1 , 𝑠𝑒 𝑛 = 1
𝑇 𝑛 − 1 + 1 , 𝑝𝑎𝑟𝑎 𝑛 > 1
Quando n atingir 1, não teremos mais recorrências!
Como resolver uma relação de recorrência?
Temos duas maneiras de resolver uma relação de
recorrência:
- Por expansão dos fatores
- Por indução matemática
Resolvendo recorrências por expansão de
fatores. Receita de bolo!
1º) Copie a fórmula original
𝑇 𝑛 = 𝑇 𝑛 − 1 + 1
2º) Descubra por quanto que a recorrência é diminuída a cada passo (fator de
diminuição k)
T(n) está escrito em função de T(n-1) então a cada passo o parâmetro n é
subtraído de 1 (k = 1)
Resolvendo recorrências por expansão de
fatores. Receita de bolo!
3º) Encontre o valor de T para os próximos valores da diminuição,
utilizando valor da equação original T(n) = T(n – 1) + 1
Como já sabemos que o fator de diminuição é subtraído de 1, então
devemos achar os valores de T(n-1), T(n-2), T(n-3) e assim por diante,
substituindo n pelos respectivos valores na equação inicial.
Resolvendo recorrências por expansão de
fatores. Receita de bolo!
3º) Encontre o valor de T para os próximos valores da diminuição,
utilizando valor da equação original T(n) = T(n – 1) + 1
Se ainda está confuso o que devemos fazer, pense nesse problema
matemático, seja:
𝑓 𝑥 = 2𝑥
Se queremos saber o valor de f(2) e f(3) logo x = 2, x = 3, então fazemos:
𝑓 2 = 2 ∗ 2 = 4
𝑓 3 = 2 ∗ 3 = 6
Resolvendo recorrências por expansão de
fatores. Receita de bolo!
3º) Encontre o valor de T para os próximos valores da diminuição, utilizando valor
da equação original T(n) = T(n – 1) + 1
Portanto se queremos saber os valores de T(n-1), T(n-2)... Então n = n-1, n = n-2,...
E fazemos como anteriormente substituindo os valores de n. Logo:
𝑇 (𝑛 − 1) = 𝑇 𝑛 − 1 − 1 + 1 = T n − 2 + 1 (3.1)
𝑇 (𝑛 − 2) = 𝑇 𝑛 − 2 − 1 + 1 = T n − 3 + 1(3.2)
𝑇 (𝑛 − 3) = 𝑇 𝑛 − 3 − 1 + 1 = T n − 4 + 1(3.3)
Resolvendo recorrências por expansão de
fatores. Receita de bolo!
4º) Substitua os valores encontrados em 3, na equação original (chamamos isto de
expansão da recorrência) T(n) = T(n-1) + 1
Utilizando 3.1, onde encontramos o valor de T(n-1):
𝑇 𝑛 = 𝑇 𝑛 − 2 + 1 + 1 ⇒ 𝑇 𝑛 = 𝑇 𝑛 − 2 + 2 (4.1)
Utilizando 3.2, onde encontramos o valor de T(n-2), substituímos em 4.1
𝑇 𝑛 = 𝑇 𝑛 − 3 + 1 + 2 ⇒ 𝑇 𝑛 = 𝑇 𝑛 − 3 + 3 (4.2)
k
k
Resolvendo recorrências por expansão de
fatores. Receita de bolo!
4º) Continuamos a substituir, até conseguirmos enxergar um padrão nas expansões:
Utilizando 3.2, onde encontramos o valor de T(n-3), substituímos em 4.2:
𝑇 𝑛 = 𝑇 𝑛 − 4 + 1 + 3 ⇒ 𝑇 𝑛 = 𝑇 𝑛 − 4 + 4 (4.3)
Podemos notar que o valor de k incrementa a cada expansão, que é o comportamento
experado, já que estamos sempre diminuindo a recorrência pelo fator de 1 (valor inicial
de k). A ideia é perceber o comportamento da recorrência ao se aumentar o valor de k
(diminuir a recorrência)!
k
Resolvendo recorrências por expansão de
fatores. Receita de bolo!
4º) Analisando todas as iterações:
𝑇 𝑛 = 𝑇 𝑛 − 2 + 2 (4.1)
𝑇 𝑛 = 𝑇 𝑛 − 3 + 3 4.2
𝑇 𝑛 = 𝑇 𝑛 − 4 + 4 4.3
k
A cada expansão da recorrência, k assume um novo valor. Percebemos também que o valor constante que é
somado a recorrência e indica a quantidade de multiplicações que teremos que realizar para encontrar a
solução do problema (fatorial de n) é o mesmo valor de k em todas as iterações.
Resolvendo recorrências por expansão de
fatores. Receita de bolo!
4º) Analisando todas as iterações:
𝑇 𝑛 = 𝑇 𝑛 − 2 + 2 (4.1)
𝑇 𝑛 = 𝑇 𝑛 − 3 + 3 4.2
𝑇 𝑛 = 𝑇 𝑛 − 4 + 4 4.3
k
Logo, depois de k expansões teremos:
𝑇 𝑛 = 𝑇 𝑛 − 𝑘 + 𝑘
Resolvendo recorrências por expansão de
fatores. Receita de bolo!
5º) Encontrar quando a expansão para. Precisamos pensar no caso base, que é o
mesmo que pensar em quando T(n-k) nos retornará um valor. Olhando para o caso
base, sabemos que teremos um valor de retorno e não uma nova recorrência quando n
= 1. Para o nosso caso, n = (n-k) que é o valor de argumento da recorrência [T(n-k)]
𝑇 𝑛 = 𝑇 𝑛 − 𝑘 + 𝑘 (5.1)
Logo precisamos saber quando n-k = 1, pois então teremos T(1) e já sabemos que isso é
igual a 1.
𝑛 − 𝑘 = 1 ⇒ 𝑘 = 𝑛 − 1
Resolvendo recorrências por expansão de
fatores. Receita de bolo!
5º) Substituindo o valor de k encontrado (n-1) em 5.1 temos
𝑇 𝑛 = 𝑇 𝑛 − (𝑛 − 1) + 𝑛 − 1
= 𝑇 1 + 𝑛 − 1
Como sabemos que T(1) = 1, então
𝑇 𝑛 = 1 + 𝑛 − 1
𝑇 𝑛 = 𝑛
Resolvendo recorrências por expansão de
fatores. Receita de bolo!
6º) Definir o limite assintótico de T(n)
Como encontramos que T(n) = n, então neste caso sabemos que o algoritmo fatorial de
n recursivo é O(n), maior grau no polinômio encontrado.
Na prática, depois de várias décadas de estudo, sabe-se que o resultado da relação de
recorrência é suficiente para conhecer a complexidade do algoritmo, porém se
quisermos realmente provar (e às vezes isso será necessário!), precisamos utilizar
indução matemática, que é um método da matemática discreta que nos ensina como
provar problemas matemáticos, entre eles relações de recorrência.
Resolvendo recorrências por expansão de
fatores. Receita de bolo!
6º) Definir o limite assintótico de T(n)
Como encontramos que T(n) = n, então neste caso sabemos que o algoritmo fatorial de
n recursivo é O(n), maior grau no polinômio encontrado.
Na prática, depois de várias décadas de estudo, sabe-se que o resultado da relação de
recorrência é suficiente para conhecer a complexidade do algoritmo, porém se
quisermos realmente provar (e às vezes isso será necessário!), precisamos utilizar
indução matemática, que é um método da matemática discreta que nos ensina como
provar problemas matemáticos, entre eles relações de recorrência.
Indução matemática
Em uma linguagem bem simplificada. Você pode usar a indução
matemática para provar uma expressão matemática quando:
1 – Sabe que ela é verdadeira para algum valor.
2 – Quer provar que ela é válida então para esse valor em
relação a um fator de um (pode ser aumentar ou diminuir). Ou
seja, quer provar que o próximo valor e os próximos valores
depois deste também são verdadeiros.
Indução matemática
Características:
1 – O passo 1 do slide anterior é chamado de passo base.
2 – O passo 2 é o passo indutivo.
Indução matemática
Exemplo. Seja um teorema que tenha como parâmetro um número
natural n. Provando que T é válido para todos os valores de n,
provamos que:
1 – T é válido para n = 1 (eu tenho que saber que isto é verdade!);
2 – Para todo n > 1, se T é válido para n – 1, então T é válido para n
(Se conseguirmos provar que n – 1 é válido (e isto implica em provar
que n – 2, n – 3 e assim por diante também é válido), então podemos
provar que n é verdadeiro. Esse é o passo indutivo.
O que é uma prova?
Em matemática, uma prova é uma argumentação
precisa que procura convencer o leitor de que uma
certa preposição, previamente enunciada está
correta. Num sentindo mais informa, uma prova é
um texto que ajuda o leitor a entender por que
uma dada afirmação é verdadeira!
Provando uma relação de recorrência por indução
matemática
Primeiro temos que provar que o passo base é verdadeiro. Para
nossa equação de recorrência do problema do fatorial:
𝑇 𝑛 =
1 , 𝑠𝑒 𝑛 = 1
𝑇 𝑛 − 1 + 1 , 𝑝𝑎𝑟𝑎 𝑛 > 1
Logo primeiro queremos provar que T(1) = 1. Sabemos que T(1)
é verdadeiro, pois quando n = 1, o algoritmo não realiza
nenhuma multiplicação. Logo, o nosso caso base é verdadeiro!
Provando uma relação de recorrência por indução
matemática
Agora supomos que T(k) = k (pois não sabemos quanto é
realmente este valor antes de calcular todas as multiplicações. A
variável n foi substituída por k, pois estamos generalizando para
quaisquer valores n > 1, pois quando n = 1 já provamos ser
verdadeiro). Para provar que T(k) = k é verdadeiro, precisamos
provar que T(k + 1) = k + 1 também é verdadeiro. Se
conseguirmos provar que T(k + 1) é verdadeiro, então T(k)
também será verdadeiro, pois derivamos T(k+1) de T(k) e assim
nosso passo indutivo seria verdadeiro e nossa relação de
recorrência também.
Provando uma relação de recorrência por indução
matemática
A ideia principal aqui é a seguinte. Vamos encontrar definir
nossa hipótese de indução. A hipótese de indução é sempre
nosso passo recursivo:
𝑇 𝑛 = 𝑇 𝑛 − 1 + 1
Vamos a partir da nossa hipótese de indução, determinar o valor
de T(k + 1).
Provando uma relação de recorrência por indução
matemática
𝑇 𝑘 + 1 = 𝑇 (𝑘 + 1) − 1 + 1
= 𝑇 𝑘 + 1
Sempre, que queremos provar T(k+1), precisamos tentar deixá-lo
em função de T(k), que é o valor que supomos no começo do
exercício que queríamos provar. Supomos que T(k) = k, então
vamos substituí-lo na expressão encontrada acima.
Provando uma relação de recorrência por indução
matemática
Como supomos que T(k) = k no começo do exercícios,
podemos então substituí-lo na expressão encontrada no slide
anterior:
𝑇 𝑘 + 1 = 𝑇 𝑘 + 1
T(k + 1) = 𝑘 + 1
Note que é exatamente o que queríamos provar, pois lembre-se
que no começo do exercício, supomos T(k) = k e queríamos
provar que T(k+1) = k +1.
Provando uma relação de recorrência por indução
matemática
Escrever uma prova de indução matemática sempre envolve:
- Provar o caso base
- Supor T(k) = k e tentar provar que T(k+1) = k+1
- Encontrar uma hipótese de indução, que é o nosso passo
recursivo
- Utilizar a hipótese de indução para encontrar T(k+1) em
função de T(k)
- Manipular T(k+1) para que ele seja k+1

Contenu connexe

Tendances

Aula 7 inducao matematica-primeiroprincipio
Aula 7   inducao matematica-primeiroprincipioAula 7   inducao matematica-primeiroprincipio
Aula 7 inducao matematica-primeiroprincipiowab030
 
Fatoração de polinomios
Fatoração de polinomiosFatoração de polinomios
Fatoração de polinomiosPedro Valentim
 
Aula (Função quadrática)
Aula (Função quadrática)Aula (Função quadrática)
Aula (Função quadrática)samuel vitor
 
Formulário de Análise Matemática
Formulário de Análise MatemáticaFormulário de Análise Matemática
Formulário de Análise MatemáticaPedro Dias
 
Aula 5- Profmat-Aplicacoes do mdc - Equacoes diofantinas - Expressoes binomia...
Aula 5- Profmat-Aplicacoes do mdc - Equacoes diofantinas - Expressoes binomia...Aula 5- Profmat-Aplicacoes do mdc - Equacoes diofantinas - Expressoes binomia...
Aula 5- Profmat-Aplicacoes do mdc - Equacoes diofantinas - Expressoes binomia...Aline Guedes
 
Cálculo numérico aula 04 - resolução de sistemas de equações lineares - mét...
Cálculo numérico   aula 04 - resolução de sistemas de equações lineares - mét...Cálculo numérico   aula 04 - resolução de sistemas de equações lineares - mét...
Cálculo numérico aula 04 - resolução de sistemas de equações lineares - mét...Rodolfo Almeida
 
Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.Júlio Rocha
 
Análise de Algoritmos - Solução de Recorrências
Análise de Algoritmos - Solução de RecorrênciasAnálise de Algoritmos - Solução de Recorrências
Análise de Algoritmos - Solução de RecorrênciasDelacyr Ferreira
 
34 nucleo e imagem de uma transformacao linear
34 nucleo e imagem de uma transformacao linear34 nucleo e imagem de uma transformacao linear
34 nucleo e imagem de uma transformacao linearAndressa Leite Rodrigues
 
2972340 matematica-exercicios-resolvidos-logaritmos-resolvidos
2972340 matematica-exercicios-resolvidos-logaritmos-resolvidos2972340 matematica-exercicios-resolvidos-logaritmos-resolvidos
2972340 matematica-exercicios-resolvidos-logaritmos-resolvidosRoberta Araujo do Amorim
 
Exercícios Resolvidos: Área com integrais
Exercícios Resolvidos: Área com integraisExercícios Resolvidos: Área com integrais
Exercícios Resolvidos: Área com integraisDiego Oliveira
 
Gráfico (seno e cosseno)
Gráfico (seno e cosseno)Gráfico (seno e cosseno)
Gráfico (seno e cosseno)neliosnahum
 
Função do 2°grau
Função do 2°grauFunção do 2°grau
Função do 2°grauLSKY
 
Análise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaAnálise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaDelacyr Ferreira
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em PythonRodrigo Hübner
 
Funcoes trigonometricas senoides
Funcoes trigonometricas  senoidesFuncoes trigonometricas  senoides
Funcoes trigonometricas senoidescaalcampos
 

Tendances (20)

Aula 7 inducao matematica-primeiroprincipio
Aula 7   inducao matematica-primeiroprincipioAula 7   inducao matematica-primeiroprincipio
Aula 7 inducao matematica-primeiroprincipio
 
Fatoração de polinomios
Fatoração de polinomiosFatoração de polinomios
Fatoração de polinomios
 
Aula (Função quadrática)
Aula (Função quadrática)Aula (Função quadrática)
Aula (Função quadrática)
 
Formulário de Análise Matemática
Formulário de Análise MatemáticaFormulário de Análise Matemática
Formulário de Análise Matemática
 
Aula 5- Profmat-Aplicacoes do mdc - Equacoes diofantinas - Expressoes binomia...
Aula 5- Profmat-Aplicacoes do mdc - Equacoes diofantinas - Expressoes binomia...Aula 5- Profmat-Aplicacoes do mdc - Equacoes diofantinas - Expressoes binomia...
Aula 5- Profmat-Aplicacoes do mdc - Equacoes diofantinas - Expressoes binomia...
 
Paa algoritmos gulosos
Paa  algoritmos gulososPaa  algoritmos gulosos
Paa algoritmos gulosos
 
Teorema chinês do resto
Teorema chinês do restoTeorema chinês do resto
Teorema chinês do resto
 
Cálculo numérico aula 04 - resolução de sistemas de equações lineares - mét...
Cálculo numérico   aula 04 - resolução de sistemas de equações lineares - mét...Cálculo numérico   aula 04 - resolução de sistemas de equações lineares - mét...
Cálculo numérico aula 04 - resolução de sistemas de equações lineares - mét...
 
Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.Complexidade de algoritmos insertion, selection e bubble sort.
Complexidade de algoritmos insertion, selection e bubble sort.
 
Análise de Algoritmos - Solução de Recorrências
Análise de Algoritmos - Solução de RecorrênciasAnálise de Algoritmos - Solução de Recorrências
Análise de Algoritmos - Solução de Recorrências
 
Função
FunçãoFunção
Função
 
34 nucleo e imagem de uma transformacao linear
34 nucleo e imagem de uma transformacao linear34 nucleo e imagem de uma transformacao linear
34 nucleo e imagem de uma transformacao linear
 
2972340 matematica-exercicios-resolvidos-logaritmos-resolvidos
2972340 matematica-exercicios-resolvidos-logaritmos-resolvidos2972340 matematica-exercicios-resolvidos-logaritmos-resolvidos
2972340 matematica-exercicios-resolvidos-logaritmos-resolvidos
 
Exercícios Resolvidos: Área com integrais
Exercícios Resolvidos: Área com integraisExercícios Resolvidos: Área com integrais
Exercícios Resolvidos: Área com integrais
 
Gráfico (seno e cosseno)
Gráfico (seno e cosseno)Gráfico (seno e cosseno)
Gráfico (seno e cosseno)
 
Aula 05 derivadas - conceitos iniciais
Aula 05   derivadas - conceitos iniciaisAula 05   derivadas - conceitos iniciais
Aula 05 derivadas - conceitos iniciais
 
Função do 2°grau
Função do 2°grauFunção do 2°grau
Função do 2°grau
 
Análise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaAnálise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise Assintótica
 
Introdução à Programação em Python
Introdução à Programação em PythonIntrodução à Programação em Python
Introdução à Programação em Python
 
Funcoes trigonometricas senoides
Funcoes trigonometricas  senoidesFuncoes trigonometricas  senoides
Funcoes trigonometricas senoides
 

En vedette

Análise da complexidade de algoritmos
Análise da complexidade de algoritmosAnálise da complexidade de algoritmos
Análise da complexidade de algoritmosPablo Silva
 
Dicas para aumentar a performance de um software PHP
Dicas para aumentar a performance de um software PHPDicas para aumentar a performance de um software PHP
Dicas para aumentar a performance de um software PHPAlmir Neto
 
Conceitos básicos de AEDS
Conceitos básicos de AEDSConceitos básicos de AEDS
Conceitos básicos de AEDSPablo Silva
 
CakePHP com sotaque brasileiro
CakePHP com sotaque brasileiroCakePHP com sotaque brasileiro
CakePHP com sotaque brasileiroJuan Basso
 
C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem Claudson Oliveira
 
Assembly para pc-25paginas
Assembly para pc-25paginasAssembly para pc-25paginas
Assembly para pc-25paginasMikeNandes
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHPRangel Javier
 
Análise assintótica
Análise assintóticaAnálise assintótica
Análise assintóticaPablo Silva
 
Glosario de qbasic liliana
Glosario de qbasic lilianaGlosario de qbasic liliana
Glosario de qbasic lilianakhjhjhjh
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloelliando dias
 
CakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoCakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoIvan Rosolen
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHPFelipe Ribeiro
 
Trabalho cobol e basic
Trabalho cobol e basicTrabalho cobol e basic
Trabalho cobol e basicDaniel Carrara
 

En vedette (20)

Análise da complexidade de algoritmos
Análise da complexidade de algoritmosAnálise da complexidade de algoritmos
Análise da complexidade de algoritmos
 
Dicas para aumentar a performance de um software PHP
Dicas para aumentar a performance de um software PHPDicas para aumentar a performance de um software PHP
Dicas para aumentar a performance de um software PHP
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Conceitos básicos de AEDS
Conceitos básicos de AEDSConceitos básicos de AEDS
Conceitos básicos de AEDS
 
CakePHP com sotaque brasileiro
CakePHP com sotaque brasileiroCakePHP com sotaque brasileiro
CakePHP com sotaque brasileiro
 
Apostila cobol
Apostila cobolApostila cobol
Apostila cobol
 
Funções em C
Funções em CFunções em C
Funções em C
 
Introdução ao PHP
Introdução ao PHPIntrodução ao PHP
Introdução ao PHP
 
C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem C# .NET - Um overview da linguagem
C# .NET - Um overview da linguagem
 
Assembly para pc-25paginas
Assembly para pc-25paginasAssembly para pc-25paginas
Assembly para pc-25paginas
 
PROGRAMAS QBASIC
PROGRAMAS QBASICPROGRAMAS QBASIC
PROGRAMAS QBASIC
 
Slide Aula - Curso CakePHP
Slide Aula - Curso CakePHPSlide Aula - Curso CakePHP
Slide Aula - Curso CakePHP
 
Análise assintótica
Análise assintóticaAnálise assintótica
Análise assintótica
 
Glosario de qbasic liliana
Glosario de qbasic lilianaGlosario de qbasic liliana
Glosario de qbasic liliana
 
Linguagem C - Uniões
Linguagem C - UniõesLinguagem C - Uniões
Linguagem C - Uniões
 
CakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro boloCakePHP - Aprendendo a fazer o primeiro bolo
CakePHP - Aprendendo a fazer o primeiro bolo
 
CakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápidoCakePHP e o desenvolvimento rápido
CakePHP e o desenvolvimento rápido
 
Linguagem C - Estruturas
Linguagem C - EstruturasLinguagem C - Estruturas
Linguagem C - Estruturas
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
Trabalho cobol e basic
Trabalho cobol e basicTrabalho cobol e basic
Trabalho cobol e basic
 

Similaire à Relações de recorrência

Teoria do números - Classificações especiais
Teoria do números - Classificações especiaisTeoria do números - Classificações especiais
Teoria do números - Classificações especiaisRomulo Garcia
 
Cálculo Diferencial e Integral - Sucessões - Exercicios resolvidos e propostos
Cálculo Diferencial e Integral - Sucessões - Exercicios resolvidos e propostosCálculo Diferencial e Integral - Sucessões - Exercicios resolvidos e propostos
Cálculo Diferencial e Integral - Sucessões - Exercicios resolvidos e propostosMaths Tutoring
 
Lista de exercícios 1
Lista de exercícios 1Lista de exercícios 1
Lista de exercícios 1Carlos Campani
 
Linguagem C - Recursão [exercícios]
Linguagem C - Recursão [exercícios]Linguagem C - Recursão [exercícios]
Linguagem C - Recursão [exercícios]Matheus Alves
 
Apostila matematica
Apostila matematicaApostila matematica
Apostila matematicaJ M
 
Unprotected apostila-matematica
Unprotected apostila-matematicaUnprotected apostila-matematica
Unprotected apostila-matematicaJ M
 
Sequencias e series unicamp
Sequencias e series   unicampSequencias e series   unicamp
Sequencias e series unicampLuis Gustavo
 
Equações de recorrência - II (Otimização)
Equações de recorrência - II (Otimização)Equações de recorrência - II (Otimização)
Equações de recorrência - II (Otimização)Jedson Guedes
 
Sequencias e series
Sequencias e seriesSequencias e series
Sequencias e seriesRodrigo Jrs
 
Intro teoria dos números cap2
Intro teoria dos  números cap2Intro teoria dos  números cap2
Intro teoria dos números cap2Paulo Martins
 
Equação do primeiro grau para 7º ano
Equação do primeiro grau para 7º anoEquação do primeiro grau para 7º ano
Equação do primeiro grau para 7º anoAriosvaldo Carvalho
 
Apostila de-matemática-ester-parte-i
Apostila de-matemática-ester-parte-iApostila de-matemática-ester-parte-i
Apostila de-matemática-ester-parte-iClaudia Sá de Moura
 
Matematica (petro)
Matematica (petro)Matematica (petro)
Matematica (petro)dudaso
 
Binômio de newton e triângulo de pascal
Binômio de newton e triângulo de pascalBinômio de newton e triângulo de pascal
Binômio de newton e triângulo de pascalespacoaberto
 

Similaire à Relações de recorrência (20)

Teoria do números - Classificações especiais
Teoria do números - Classificações especiaisTeoria do números - Classificações especiais
Teoria do números - Classificações especiais
 
Cálculo Diferencial e Integral - Sucessões - Exercicios resolvidos e propostos
Cálculo Diferencial e Integral - Sucessões - Exercicios resolvidos e propostosCálculo Diferencial e Integral - Sucessões - Exercicios resolvidos e propostos
Cálculo Diferencial e Integral - Sucessões - Exercicios resolvidos e propostos
 
Lista de exercícios 1
Lista de exercícios 1Lista de exercícios 1
Lista de exercícios 1
 
Linguagem C - Recursão [exercícios]
Linguagem C - Recursão [exercícios]Linguagem C - Recursão [exercícios]
Linguagem C - Recursão [exercícios]
 
Apostila matematica
Apostila matematicaApostila matematica
Apostila matematica
 
Unprotected apostila-matematica
Unprotected apostila-matematicaUnprotected apostila-matematica
Unprotected apostila-matematica
 
Sequencias e series unicamp
Sequencias e series   unicampSequencias e series   unicamp
Sequencias e series unicamp
 
Equações de recorrência - II (Otimização)
Equações de recorrência - II (Otimização)Equações de recorrência - II (Otimização)
Equações de recorrência - II (Otimização)
 
Mat regra de sinais
Mat regra de sinaisMat regra de sinais
Mat regra de sinais
 
94204719 teoria-dos-numeros
94204719 teoria-dos-numeros94204719 teoria-dos-numeros
94204719 teoria-dos-numeros
 
Aula N02
Aula N02Aula N02
Aula N02
 
Sequencias e series
Sequencias e seriesSequencias e series
Sequencias e series
 
Intro teoria dos números cap2
Intro teoria dos  números cap2Intro teoria dos  números cap2
Intro teoria dos números cap2
 
SucessõEs 4
SucessõEs 4SucessõEs 4
SucessõEs 4
 
03 inducao i
03 inducao i03 inducao i
03 inducao i
 
Equação do primeiro grau para 7º ano
Equação do primeiro grau para 7º anoEquação do primeiro grau para 7º ano
Equação do primeiro grau para 7º ano
 
Apostila de-matemática-ester-parte-i
Apostila de-matemática-ester-parte-iApostila de-matemática-ester-parte-i
Apostila de-matemática-ester-parte-i
 
Matematica (petro)
Matematica (petro)Matematica (petro)
Matematica (petro)
 
A3 me
A3 meA3 me
A3 me
 
Binômio de newton e triângulo de pascal
Binômio de newton e triângulo de pascalBinômio de newton e triângulo de pascal
Binômio de newton e triângulo de pascal
 

Plus de Pablo Silva

Agilidade, times e outras coisas mais
Agilidade, times e outras coisas maisAgilidade, times e outras coisas mais
Agilidade, times e outras coisas maisPablo Silva
 
Times de produto de alta performance
Times de produto de alta performanceTimes de produto de alta performance
Times de produto de alta performancePablo Silva
 
Times de produto de alta performance
Times de produto de alta performanceTimes de produto de alta performance
Times de produto de alta performancePablo Silva
 
Transformação Digital: Criando uma empresa financeiramente estratégica para o...
Transformação Digital: Criando uma empresa financeiramente estratégica para o...Transformação Digital: Criando uma empresa financeiramente estratégica para o...
Transformação Digital: Criando uma empresa financeiramente estratégica para o...Pablo Silva
 
OKR is the new black: porque esse framework está tão na moda?
OKR is the new black: porque esse framework está tão na moda?OKR is the new black: porque esse framework está tão na moda?
OKR is the new black: porque esse framework está tão na moda?Pablo Silva
 
Transformando times de desenvolvimento mercenários em times de produto missio...
Transformando times de desenvolvimento mercenários em times de produto missio...Transformando times de desenvolvimento mercenários em times de produto missio...
Transformando times de desenvolvimento mercenários em times de produto missio...Pablo Silva
 
As próximas ondas da tecnologia
As próximas ondas da tecnologiaAs próximas ondas da tecnologia
As próximas ondas da tecnologiaPablo Silva
 
Carreira Dev: dicas pra você que vai chegar na semana que vem
Carreira Dev: dicas pra você que vai chegar na semana que vemCarreira Dev: dicas pra você que vai chegar na semana que vem
Carreira Dev: dicas pra você que vai chegar na semana que vemPablo Silva
 
Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio
Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio
Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio Pablo Silva
 
Lets talk about OKRs
Lets talk about OKRsLets talk about OKRs
Lets talk about OKRsPablo Silva
 
2 anos usando OKRs: adeus achismo-driven
2 anos usando OKRs: adeus achismo-driven2 anos usando OKRs: adeus achismo-driven
2 anos usando OKRs: adeus achismo-drivenPablo Silva
 
Ágil nao é mais tendência, é sobrevivência!
Ágil nao é mais tendência, é sobrevivência!Ágil nao é mais tendência, é sobrevivência!
Ágil nao é mais tendência, é sobrevivência!Pablo Silva
 
Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...
Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...
Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...Pablo Silva
 
Nem só de codigo vive homem (Management version)
Nem só de codigo vive homem (Management version)Nem só de codigo vive homem (Management version)
Nem só de codigo vive homem (Management version)Pablo Silva
 
Nem só de código vive o homem (Versão para desenvolvedores)
Nem só de código vive o homem (Versão para desenvolvedores)Nem só de código vive o homem (Versão para desenvolvedores)
Nem só de código vive o homem (Versão para desenvolvedores)Pablo Silva
 
Dual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimento
Dual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimentoDual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimento
Dual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimentoPablo Silva
 
Revisão sobre ponteiros em C
Revisão sobre ponteiros em CRevisão sobre ponteiros em C
Revisão sobre ponteiros em CPablo Silva
 

Plus de Pablo Silva (18)

Agilidade, times e outras coisas mais
Agilidade, times e outras coisas maisAgilidade, times e outras coisas mais
Agilidade, times e outras coisas mais
 
Times de produto de alta performance
Times de produto de alta performanceTimes de produto de alta performance
Times de produto de alta performance
 
Times de produto de alta performance
Times de produto de alta performanceTimes de produto de alta performance
Times de produto de alta performance
 
Transformação Digital: Criando uma empresa financeiramente estratégica para o...
Transformação Digital: Criando uma empresa financeiramente estratégica para o...Transformação Digital: Criando uma empresa financeiramente estratégica para o...
Transformação Digital: Criando uma empresa financeiramente estratégica para o...
 
OKR is the new black: porque esse framework está tão na moda?
OKR is the new black: porque esse framework está tão na moda?OKR is the new black: porque esse framework está tão na moda?
OKR is the new black: porque esse framework está tão na moda?
 
Transformando times de desenvolvimento mercenários em times de produto missio...
Transformando times de desenvolvimento mercenários em times de produto missio...Transformando times de desenvolvimento mercenários em times de produto missio...
Transformando times de desenvolvimento mercenários em times de produto missio...
 
As próximas ondas da tecnologia
As próximas ondas da tecnologiaAs próximas ondas da tecnologia
As próximas ondas da tecnologia
 
Carreira Dev: dicas pra você que vai chegar na semana que vem
Carreira Dev: dicas pra você que vai chegar na semana que vemCarreira Dev: dicas pra você que vai chegar na semana que vem
Carreira Dev: dicas pra você que vai chegar na semana que vem
 
Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio
Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio
Dual Track Agile - A integração da tecnologia, experiência do usuário e negócio
 
Lets talk about OKRs
Lets talk about OKRsLets talk about OKRs
Lets talk about OKRs
 
2 anos usando OKRs: adeus achismo-driven
2 anos usando OKRs: adeus achismo-driven2 anos usando OKRs: adeus achismo-driven
2 anos usando OKRs: adeus achismo-driven
 
Ágil nao é mais tendência, é sobrevivência!
Ágil nao é mais tendência, é sobrevivência!Ágil nao é mais tendência, é sobrevivência!
Ágil nao é mais tendência, é sobrevivência!
 
Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...
Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...
Dual Track Agile - PO, UX e Marketing no seu pipelane de desenvolvimento de p...
 
Nem só de codigo vive homem (Management version)
Nem só de codigo vive homem (Management version)Nem só de codigo vive homem (Management version)
Nem só de codigo vive homem (Management version)
 
Nem só de código vive o homem (Versão para desenvolvedores)
Nem só de código vive o homem (Versão para desenvolvedores)Nem só de código vive o homem (Versão para desenvolvedores)
Nem só de código vive o homem (Versão para desenvolvedores)
 
Dual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimento
Dual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimentoDual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimento
Dual track Agile - Incluindo o PO e UX em seu pipeline de desenvolvimento
 
Revisão sobre ponteiros em C
Revisão sobre ponteiros em CRevisão sobre ponteiros em C
Revisão sobre ponteiros em C
 
Structs em C
Structs em CStructs em C
Structs em C
 

Dernier

Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
atividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfatividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfLuizaAbaAba
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdfAna Lemos
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaHELENO FAVACHO
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfHELENO FAVACHO
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxLusGlissonGud
 

Dernier (20)

Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
atividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfatividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdf
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
A QUATRO MÃOS - MARILDA CASTANHA . pdf
A QUATRO MÃOS  -  MARILDA CASTANHA . pdfA QUATRO MÃOS  -  MARILDA CASTANHA . pdf
A QUATRO MÃOS - MARILDA CASTANHA . pdf
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
 

Relações de recorrência

  • 2. Mais de recursividade Vamos ver mais alguns exemplos de problemas que podemos resolver com recursividade
  • 3. Seja o problema em que temos um número natural n >= 0 e queremos descobrir a soma de todos os números de n até 0. Como resolver este problema recursivamente?
  • 4. Entender o problema matemático Precisamos sempre encontrar o caso base e o passo recursivo. Mas para isso, temos que entender o problema matemático.
  • 5. Entender o problema matemático Vejamos possíveis iterações: 0 = 0 1 = 1 + 0 = 1 2 = 2 + 1 + 0 = 3 3 = 3 + 2 + 1 + 0 = 6 ... n = n + n-1 + n-2 + ... + 0 O caso base como podemos perceber é zero, pois é sempre onde o problema termina!
  • 6. Entender o problema matemático Vejamos possíveis iterações: 0 = 0 1 = 1 + 0 = 1 2 = 2 + 1 + 0 = 3 3 = 3 + 2 + 1 + 0 = 6 ... n = n + n-1 + n-2 + ... + 0 O que podemos perceber analisando as iterações, é que começamos a somar em n e vamos diminuindo em 1 para cada número natural anterior a n até zero. n-1
  • 7. Entender o problema matemático Se assumirmos que diminuímos o problema em um fator de 1, então teríamos a seguinte situação: 0 = 0 1 = + 0 = 1 2 = + 1 + 0 = 3 3 = + 2 + 1 + 0 = 6 ... n = + n + n-1 + ... + 0 Ao diminuirmos, percebemos que novamente, nessa iteração, teríamos após o n, um fator n-1 e então podemos definir nosso passo recursivo como: n + soma(n-1) Pois para resolver o problema, sempre somamos n com o seu antecessor direto (n- 1). n-1
  • 8. Soma de n termos Nossa função então ficaria da seguinte forma: int soma(int n){ if(n == 0) return 0; return n + soma(n-1); }
  • 9. Mais um exemplo Seja o problema de elevar qualquer número n á um expoente qualquer k. Como resolver isso de maneira recursiva. Vamos ver algumas possíveis interações deste problema matemático, com n = 2 e k >= 0: 20 = 1 21 = 2 ∗ 20 22 = 2 ∗ 2 ∗ 20 = 2 ∗ 21 23 = 2 ∗ 2 ∗ 2 ∗ 20 = 2 ∗ 22 24 = 2 ∗ 21 ∗ 21 ∗ 21 ∗ 20 = 2 ∗ 23 Na multiplicação de mesma base podemos somar os expoentes e manter a base (1+1+1+0 = 3) K - 1 Percebemos que o problema termina sempre que k = 0. Portanto, desta vez, a diminuição do nosso problema, ocorrerá no expoente e não no número que estamos somando.
  • 10. Um fato importante a se considerar sobre recursão - Nós podemos ter mais de um caso base! - Sempre precisamos encontrar uma maneira de diminuir o problema. O fator que vamos diminuir e qual é o nosso parâmetro de diminuição não será o mesmo para todos os problemas. Podemos, inclusive, ter que diminuir o problema utilizando mais que um parâmetro para isso. - É importante notar que o fator de diminuição nem sempre será em 1, pode por exemplo ser 2 ou até mesmo dividir o problema pela metade a cada passo recursivo!
  • 11. Mais um exemplo Seja o problema de elevar qualquer número n á um expoente qualquer k. Como resolver isso de maneira recursiva. Vamos ver algumas possíveis interações deste problema matemático, com n = 2 e k >= 0: 20 = 1 21 = 2 ∗ 20 22 = 2 ∗ 2 ∗ 20 = 2 ∗ 21 23 = 2 ∗ 2 ∗ 2 ∗ 20 = 2 ∗ 22 24 = 2 ∗ 21 ∗ 21 ∗ 21 ∗ 20 = 2 ∗ 23 Na multiplicação de mesma base podemos somar os expoentes e manter a base (1+1+1+0 = 3) K - 1 O caso base é fácil de perceber, pois quando k = 0, o problema terminou para todas as iterações. Logo k = 0 é o nosso caso base.
  • 12. Mais um exemplo Seja o problema de elevar qualquer número n á um expoente qualquer k. Como resolver isso de maneira recursiva. Vamos ver algumas possíveis interações deste problema matemático, com n = 2 e k >= 0: 20 = 1 21 = 2 ∗ 20 22 = 2 ∗ 2 ∗ 20 = 2 ∗ 21 23 = 2 ∗ 2 ∗ 2 ∗ 20 = 2 ∗ 22 24 = 2 ∗ 21 ∗ 21 ∗ 21 ∗ 20 = 2 ∗ 23 Na multiplicação de mesma base podemos somar os expoentes e manter a base (1+1+1+0 = 3) K - 1 Para o passo recursivo, percebemos que sempre podemos multiplicar n por uma potenciação de 𝑛 𝑘−1. O k-1 é em relação ao expoente inicial. Logo o passo recursivo: 𝑛 * 𝑛 𝑘−1
  • 13. Potenciação recursiva Nossa função então ficaria da seguinte forma: int pot(int n, int k){ if(k == 0) return 1; return n * pot(n,k-1); }
  • 14. Análise da recursividade Qual é a complexidade do algoritmo recursivo que calcula o fatorial de n? Como conseguimos calcular esse valor?
  • 15. Análise da recursividade Analisar a complexidade de algoritmos recursivos não é tão simples assim e muitas vezes temos que utilizar recursos matemáticos mais aguçados para conseguir chegar à um valor.
  • 16. Análise da recursividade Analisar a complexidade de algoritmos recursivos não é tão simples assim e muitas vezes temos que utilizar recursos matemáticos mais aguçados para conseguir chegar à um valor. Isto envolve saber a descrição matemática que nos dá o comportamento do algoritmo, que será definida como sua relação de recorrência! (recorrência, pois o algoritmo sempre “recorre” a si mesmo várias vezes para resolver um problema qualquer. Recorrência é o mesmo que repetição!)
  • 17. Relações de recorrência Uma relação de recorrência é sempre formada por: o caso base e por um elemento que se parece muito com o passo recursivo, mas tem a ver com número de operações completadas. Vamos tentar entender um pouco deste elemento, utilizando o fatorial recursivo de n.
  • 18. Relações de recorrência Seja uma relação de recorrência representada pelo símbolo 𝑇, podemos definir então a função de 𝑇(n), que será a função que descreverá nossa relação de recorrência, de modo que: 𝑇 𝑛 = 𝐶 , 𝑞𝑢𝑎𝑛𝑑𝑜 𝑛 𝑎𝑡𝑖𝑛𝑔𝑒 𝑜 𝑐𝑎𝑠𝑜 𝑏𝑎𝑠𝑒 𝑇 𝑛 𝑝𝑜𝑟 𝑎𝑙𝑔𝑢𝑚 𝑓𝑎𝑡𝑜𝑟 𝑑𝑒 𝑘 + 𝑑 𝑑 ≥< 0 Onde o valor mínimo de n depende do nosso problema matemático!
  • 19. Relações de recorrência Vamos utilizar como exemplo o fatorial de n. Sabemos que o caso base é quando n = 1 e neste caso, o valor retornado é 1. Logo C = 1 quando n = 1, então: 𝑇 𝑛 = 1 , 𝑠𝑒 𝑛 = 1
  • 20. Relações de recorrência Agora vamos analisar a função fatorial, para encontrar nossa relação de recorrência: int fatorial(int n){ if( n == 1 ) return 1; return n * fatorial(n-1); } Para encontrar a recorrência do algoritmo temos que nos atentar para o número de operações que temos a cada passo. Olhando para o passo recursivo, pode-se perceber que sempre vamos ter 1 multiplicação mais uma chamada da função fatorial com o nosso problema diminuído em 1. Portanto nossa recorrência pode ser definida por: 1 + 𝑇 𝑛 − 1 Onde T refere-se neste caso a função fatorial! Uma multiplicação e uma chamada de função com o problema diminuído em 1!
  • 21. Relações de recorrência Logo, k = 1, o fator de diminuição é uma subtração por k e d = 1, que é o valor de operações completadas por cada chamada da função. 𝑇 𝑛 = 1 , 𝑠𝑒 𝑛 = 1 𝑇 𝑛 − 1 + 1 ,
  • 22. Relações de recorrência Para finalizar o nosso T(n), precisamos definir o valor mínimo que n atinge em que a recorrência ainda existe. Neste caso, é todo valor que n assume que é maior que o caso base. Logo 𝑇 𝑛 = 1 , 𝑠𝑒 𝑛 = 1 𝑇 𝑛 − 1 + 1 , 𝑝𝑎𝑟𝑎 𝑛 > 1 Quando n atingir 1, não teremos mais recorrências!
  • 23. Como resolver uma relação de recorrência? Temos duas maneiras de resolver uma relação de recorrência: - Por expansão dos fatores - Por indução matemática
  • 24. Resolvendo recorrências por expansão de fatores. Receita de bolo! 1º) Copie a fórmula original 𝑇 𝑛 = 𝑇 𝑛 − 1 + 1 2º) Descubra por quanto que a recorrência é diminuída a cada passo (fator de diminuição k) T(n) está escrito em função de T(n-1) então a cada passo o parâmetro n é subtraído de 1 (k = 1)
  • 25. Resolvendo recorrências por expansão de fatores. Receita de bolo! 3º) Encontre o valor de T para os próximos valores da diminuição, utilizando valor da equação original T(n) = T(n – 1) + 1 Como já sabemos que o fator de diminuição é subtraído de 1, então devemos achar os valores de T(n-1), T(n-2), T(n-3) e assim por diante, substituindo n pelos respectivos valores na equação inicial.
  • 26. Resolvendo recorrências por expansão de fatores. Receita de bolo! 3º) Encontre o valor de T para os próximos valores da diminuição, utilizando valor da equação original T(n) = T(n – 1) + 1 Se ainda está confuso o que devemos fazer, pense nesse problema matemático, seja: 𝑓 𝑥 = 2𝑥 Se queremos saber o valor de f(2) e f(3) logo x = 2, x = 3, então fazemos: 𝑓 2 = 2 ∗ 2 = 4 𝑓 3 = 2 ∗ 3 = 6
  • 27. Resolvendo recorrências por expansão de fatores. Receita de bolo! 3º) Encontre o valor de T para os próximos valores da diminuição, utilizando valor da equação original T(n) = T(n – 1) + 1 Portanto se queremos saber os valores de T(n-1), T(n-2)... Então n = n-1, n = n-2,... E fazemos como anteriormente substituindo os valores de n. Logo: 𝑇 (𝑛 − 1) = 𝑇 𝑛 − 1 − 1 + 1 = T n − 2 + 1 (3.1) 𝑇 (𝑛 − 2) = 𝑇 𝑛 − 2 − 1 + 1 = T n − 3 + 1(3.2) 𝑇 (𝑛 − 3) = 𝑇 𝑛 − 3 − 1 + 1 = T n − 4 + 1(3.3)
  • 28. Resolvendo recorrências por expansão de fatores. Receita de bolo! 4º) Substitua os valores encontrados em 3, na equação original (chamamos isto de expansão da recorrência) T(n) = T(n-1) + 1 Utilizando 3.1, onde encontramos o valor de T(n-1): 𝑇 𝑛 = 𝑇 𝑛 − 2 + 1 + 1 ⇒ 𝑇 𝑛 = 𝑇 𝑛 − 2 + 2 (4.1) Utilizando 3.2, onde encontramos o valor de T(n-2), substituímos em 4.1 𝑇 𝑛 = 𝑇 𝑛 − 3 + 1 + 2 ⇒ 𝑇 𝑛 = 𝑇 𝑛 − 3 + 3 (4.2) k k
  • 29. Resolvendo recorrências por expansão de fatores. Receita de bolo! 4º) Continuamos a substituir, até conseguirmos enxergar um padrão nas expansões: Utilizando 3.2, onde encontramos o valor de T(n-3), substituímos em 4.2: 𝑇 𝑛 = 𝑇 𝑛 − 4 + 1 + 3 ⇒ 𝑇 𝑛 = 𝑇 𝑛 − 4 + 4 (4.3) Podemos notar que o valor de k incrementa a cada expansão, que é o comportamento experado, já que estamos sempre diminuindo a recorrência pelo fator de 1 (valor inicial de k). A ideia é perceber o comportamento da recorrência ao se aumentar o valor de k (diminuir a recorrência)! k
  • 30. Resolvendo recorrências por expansão de fatores. Receita de bolo! 4º) Analisando todas as iterações: 𝑇 𝑛 = 𝑇 𝑛 − 2 + 2 (4.1) 𝑇 𝑛 = 𝑇 𝑛 − 3 + 3 4.2 𝑇 𝑛 = 𝑇 𝑛 − 4 + 4 4.3 k A cada expansão da recorrência, k assume um novo valor. Percebemos também que o valor constante que é somado a recorrência e indica a quantidade de multiplicações que teremos que realizar para encontrar a solução do problema (fatorial de n) é o mesmo valor de k em todas as iterações.
  • 31. Resolvendo recorrências por expansão de fatores. Receita de bolo! 4º) Analisando todas as iterações: 𝑇 𝑛 = 𝑇 𝑛 − 2 + 2 (4.1) 𝑇 𝑛 = 𝑇 𝑛 − 3 + 3 4.2 𝑇 𝑛 = 𝑇 𝑛 − 4 + 4 4.3 k Logo, depois de k expansões teremos: 𝑇 𝑛 = 𝑇 𝑛 − 𝑘 + 𝑘
  • 32. Resolvendo recorrências por expansão de fatores. Receita de bolo! 5º) Encontrar quando a expansão para. Precisamos pensar no caso base, que é o mesmo que pensar em quando T(n-k) nos retornará um valor. Olhando para o caso base, sabemos que teremos um valor de retorno e não uma nova recorrência quando n = 1. Para o nosso caso, n = (n-k) que é o valor de argumento da recorrência [T(n-k)] 𝑇 𝑛 = 𝑇 𝑛 − 𝑘 + 𝑘 (5.1) Logo precisamos saber quando n-k = 1, pois então teremos T(1) e já sabemos que isso é igual a 1. 𝑛 − 𝑘 = 1 ⇒ 𝑘 = 𝑛 − 1
  • 33. Resolvendo recorrências por expansão de fatores. Receita de bolo! 5º) Substituindo o valor de k encontrado (n-1) em 5.1 temos 𝑇 𝑛 = 𝑇 𝑛 − (𝑛 − 1) + 𝑛 − 1 = 𝑇 1 + 𝑛 − 1 Como sabemos que T(1) = 1, então 𝑇 𝑛 = 1 + 𝑛 − 1 𝑇 𝑛 = 𝑛
  • 34. Resolvendo recorrências por expansão de fatores. Receita de bolo! 6º) Definir o limite assintótico de T(n) Como encontramos que T(n) = n, então neste caso sabemos que o algoritmo fatorial de n recursivo é O(n), maior grau no polinômio encontrado. Na prática, depois de várias décadas de estudo, sabe-se que o resultado da relação de recorrência é suficiente para conhecer a complexidade do algoritmo, porém se quisermos realmente provar (e às vezes isso será necessário!), precisamos utilizar indução matemática, que é um método da matemática discreta que nos ensina como provar problemas matemáticos, entre eles relações de recorrência.
  • 35. Resolvendo recorrências por expansão de fatores. Receita de bolo! 6º) Definir o limite assintótico de T(n) Como encontramos que T(n) = n, então neste caso sabemos que o algoritmo fatorial de n recursivo é O(n), maior grau no polinômio encontrado. Na prática, depois de várias décadas de estudo, sabe-se que o resultado da relação de recorrência é suficiente para conhecer a complexidade do algoritmo, porém se quisermos realmente provar (e às vezes isso será necessário!), precisamos utilizar indução matemática, que é um método da matemática discreta que nos ensina como provar problemas matemáticos, entre eles relações de recorrência.
  • 36. Indução matemática Em uma linguagem bem simplificada. Você pode usar a indução matemática para provar uma expressão matemática quando: 1 – Sabe que ela é verdadeira para algum valor. 2 – Quer provar que ela é válida então para esse valor em relação a um fator de um (pode ser aumentar ou diminuir). Ou seja, quer provar que o próximo valor e os próximos valores depois deste também são verdadeiros.
  • 37. Indução matemática Características: 1 – O passo 1 do slide anterior é chamado de passo base. 2 – O passo 2 é o passo indutivo.
  • 38. Indução matemática Exemplo. Seja um teorema que tenha como parâmetro um número natural n. Provando que T é válido para todos os valores de n, provamos que: 1 – T é válido para n = 1 (eu tenho que saber que isto é verdade!); 2 – Para todo n > 1, se T é válido para n – 1, então T é válido para n (Se conseguirmos provar que n – 1 é válido (e isto implica em provar que n – 2, n – 3 e assim por diante também é válido), então podemos provar que n é verdadeiro. Esse é o passo indutivo.
  • 39. O que é uma prova? Em matemática, uma prova é uma argumentação precisa que procura convencer o leitor de que uma certa preposição, previamente enunciada está correta. Num sentindo mais informa, uma prova é um texto que ajuda o leitor a entender por que uma dada afirmação é verdadeira!
  • 40. Provando uma relação de recorrência por indução matemática Primeiro temos que provar que o passo base é verdadeiro. Para nossa equação de recorrência do problema do fatorial: 𝑇 𝑛 = 1 , 𝑠𝑒 𝑛 = 1 𝑇 𝑛 − 1 + 1 , 𝑝𝑎𝑟𝑎 𝑛 > 1 Logo primeiro queremos provar que T(1) = 1. Sabemos que T(1) é verdadeiro, pois quando n = 1, o algoritmo não realiza nenhuma multiplicação. Logo, o nosso caso base é verdadeiro!
  • 41. Provando uma relação de recorrência por indução matemática Agora supomos que T(k) = k (pois não sabemos quanto é realmente este valor antes de calcular todas as multiplicações. A variável n foi substituída por k, pois estamos generalizando para quaisquer valores n > 1, pois quando n = 1 já provamos ser verdadeiro). Para provar que T(k) = k é verdadeiro, precisamos provar que T(k + 1) = k + 1 também é verdadeiro. Se conseguirmos provar que T(k + 1) é verdadeiro, então T(k) também será verdadeiro, pois derivamos T(k+1) de T(k) e assim nosso passo indutivo seria verdadeiro e nossa relação de recorrência também.
  • 42. Provando uma relação de recorrência por indução matemática A ideia principal aqui é a seguinte. Vamos encontrar definir nossa hipótese de indução. A hipótese de indução é sempre nosso passo recursivo: 𝑇 𝑛 = 𝑇 𝑛 − 1 + 1 Vamos a partir da nossa hipótese de indução, determinar o valor de T(k + 1).
  • 43. Provando uma relação de recorrência por indução matemática 𝑇 𝑘 + 1 = 𝑇 (𝑘 + 1) − 1 + 1 = 𝑇 𝑘 + 1 Sempre, que queremos provar T(k+1), precisamos tentar deixá-lo em função de T(k), que é o valor que supomos no começo do exercício que queríamos provar. Supomos que T(k) = k, então vamos substituí-lo na expressão encontrada acima.
  • 44. Provando uma relação de recorrência por indução matemática Como supomos que T(k) = k no começo do exercícios, podemos então substituí-lo na expressão encontrada no slide anterior: 𝑇 𝑘 + 1 = 𝑇 𝑘 + 1 T(k + 1) = 𝑘 + 1 Note que é exatamente o que queríamos provar, pois lembre-se que no começo do exercício, supomos T(k) = k e queríamos provar que T(k+1) = k +1.
  • 45. Provando uma relação de recorrência por indução matemática Escrever uma prova de indução matemática sempre envolve: - Provar o caso base - Supor T(k) = k e tentar provar que T(k+1) = k+1 - Encontrar uma hipótese de indução, que é o nosso passo recursivo - Utilizar a hipótese de indução para encontrar T(k+1) em função de T(k) - Manipular T(k+1) para que ele seja k+1