Escolar Documentos
Profissional Documentos
Cultura Documentos
ÉFREN L. SOUZA
5×4= 5×3 +5
▪ Pegamos um problema
complexo e o reduzimos
gradativamente até atingir 5×3= 5×2 +5
uma versão trivial
▪ A versão trivial é chamada 5×2= 5×1 +5
de caso base e ela tem um
resultado pronto
▪ O resultado dos 5×1= 5×0 +5
subproblemas menores
são usados para resolver 5×0=0
os maiores
chamada
principal
rec_func()
print(n)
Caso
countdown(n-1)
5×0=0
5! = 5 × 4 × 3 × 2 × 1
1 𝑠𝑒 𝑛 ≤ 1
𝑓𝑎𝑡 𝑛 = ቊ
𝑛 × 𝑓𝑎𝑡(𝑛 − 1) 𝑐𝑎𝑠𝑜 𝑐𝑜𝑛𝑡𝑟á𝑟𝑖𝑜
def fat(n):
if n <= 1:
return 1
else:
return n * fat(n-1)
0, 1, 1, 2, 3, 5, 8, 13, 21 …
EFREN L. SOUZA / PROGRAMAÇÃO / UFOPA – IEG – PC 26
Fibonacci para
resolver Fibonacci
0 1 2 3 4 5 6 7 8
0, 1, 1, 2, 3, 5, 8, 13, 21 …
+
𝑓𝑖𝑏(8) = 8 + 13 = 21
𝑓𝑖𝑏(8) = 𝑓𝑖𝑏(6) + 𝑓𝑖𝑏(7)
0 𝑠𝑒 𝑛 = 0
𝑓𝑖𝑏 𝑛 = ቐ 1 𝑠𝑒 𝑛 = 1
𝑓𝑖𝑏 𝑛 − 1 + 𝑓𝑖𝑏(𝑛 − 2) 𝑐𝑎𝑠𝑜 𝑐𝑜𝑛𝑡𝑟á𝑟𝑖𝑜
def fib(n):
▪ Retorna o 𝑛-ésimo número da if n == 0:
sequência de Fibonacci
return 0
elif n == 1:
return 1
else:
return fib(n-2) + fib(n-1)