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

16th Nov 2020, 5:08 AM
Andy Eliu GonzĂĄlez PĂ©rez
Andy Eliu GonzĂĄlez PĂ©rez - avatar
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)
16th Nov 2020, 6:16 AM
Volodymyr Chelnokov
Volodymyr Chelnokov - avatar
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
16th Nov 2020, 6:16 AM
Volodymyr Chelnokov
Volodymyr Chelnokov - avatar
0
Gracias ya entendĂ­ como funciona la recursividad en este caso
16th Nov 2020, 5:50 PM
Andy Eliu GonzĂĄlez PĂ©rez
Andy Eliu GonzĂĄlez PĂ©rez - avatar