0
ÂżMe ayudan con la recursividad?
Ya entendĂ como funciona en el factorial pero cuando se trata de la sucesiĂłn de Fibonacci no entiendo cĂłmo funciona
3 Answers
+ 2
Una definiciĂłn recursiva simple de una secuencia de Fibonacci serĂa (usando Python, en otros lenguajes es similar)
def fib(n):
if n == 1 or n == 2:
return 1
return fib(n - 1) + fib(n - 2)
AquĂ, el primer "if" verifica los casos base (fib(1) = fib(2) = 1), y la Ășltima lĂnea usa la recursividad para otros casos que definen fib(n) para n>2 en tĂ©rminos de fib(n-1) y fib(n-2)
Por simplicidad, no se realiza ninguna comprobación de argumentos no positivos (o no numéricos). Puede agregar dicho cheque si lo desea
Esta implementaciĂłn simple serĂa lenta para n grandes, ya que para cada n> 2 iniciarĂa dos funciones nuevas, que a su vez iniciarĂan dos nuevas, etc.
Para ser mĂĄs rĂĄpido, hagamos que nuestra funciĂłn devuelva dos valores: fib(n) y fib(n + 1)
def fib2(n):
if n == 1:
return 1, 1
a, b = fib2(n - 1)
return b, a + b
AquĂ solo necesitamos un caso base, y el caso recursivo estĂĄ haciendo solo una llamada a fib2, ya que esta llamada nos da tanto fib(n - 1) como fib(n)
0
Puede hacerlo aĂșn mĂĄs rĂĄpido (logarĂtmico en n) usando operaciones monoide, por ejemplo, multiplicaciones de matrices, pero espero que estos dos ejemplos sean suficientes para explicar cĂłmo funciona la recursividad en este caso
0
Gracias ya entendĂ como funciona la recursividad en este caso