Documentos de Académico
Documentos de Profesional
Documentos de Cultura
eduardo.barrere@ice.ufjf.br
www.barrere.ufjf.br
www.ufjf.br/pgcc
www.dcc.ufjf.br
Solução de recorrências
F(n) = F(n−1) + 3n + 2
ou
n 1 2 3 4 5 6…
F(n) 10 18 29 43 60 80 …
De modo mais geral, é evidente que para cada número i existe uma
(e uma só) função F definida sobre {1,2,3,4,…} que tem valor inicial
F(1) = i e satisfaz a recorrência.
Por indução em n:
Para n = 1 é fácil verificar que a fórmula está correta.
Agora tome n > 1 e suponha que a fórmula vale com n−1 no lugar
de n. Então:
F(n) = F(n−1) + 3n + 2
= 3(n−1)²/2 + 7(n−1)/2 − 4 + 3n + 2
= (3n² − 6n + 3 + 7n − 7 − 8 + 6n + 4)/2
= (3n² + 7n − 8)/2
= 3n²/2 + 7n/2 − 4
Pista: F(n) poderia ser da forma an²+bn+c e usamos a tabela de valores de F(n)
para calcular a, b e c.)
Prove que se adotarmos o valor inicial F(1) = i, teremos a fórmula fechada
3n²/2 + 7n/2 + i − 5.
Programa de Pós-Graduação em Ciência da Computação – DCC – UFJF APA / Barrére
Solução de recorrências
Considere a recorrência:
F(n) = F(n/2) + 3
F(2k) = F(2k−1) + 3
= F(2k−2) + 3×2
= F(2k−3) + 3×3
= F(2k−k) + 3xk
= F(20) + 3xk
= 5 + 3k
Como k = lg n, temos: F(n) = 5 + 3 lg n
Programa de Pós-Graduação em Ciência da Computação – DCC – UFJF APA / Barrére
Solução de recorrências
Suponha que F é uma função definida no conjunto {20, 21, 22, 23, …}
sobre a qual sabemos apenas que:
F(1) = 1 e
n 1 2 4 8 16 …
F(n) 1 18 66 190 494 …
T(1) = 1 e
T(n) = 2 T(piso(n/2)) + 7n + 2 para n = 2, 3, 4, 5, …
n 1 2 3 4 5…
T(n) 1 18 25 66 73 …
T(n) ≤ 10 n lg n
Fatorial
O(n) = 1, se n = 0
= O(n-1) + 1, se n > 1
= (O(n-1)) + 1
= (O(n-2) + 1) + 1
= O(n-2) + 2
= (O(n-3) + 1) + 2
= O(n-3) + 3
.....
forma geral, O(n) = O(n-k) + k, 1 k n
Como k é o número do fatorial, fazendo n = k,
reduzimos a O(n) = n
O(n3)
O(nlog 7) O(n3)
Function fibo1(n)
1: if n = 0 then
2: return 0
3: else
4: if n = 1 then
5: return 1
6: else
7: return fibo1(n - 1) + fibo1(n - 2)
8: end if
9: end if