Los números de Fibonacci son los números de la siguiente secuencia entera. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …….. En términos matemáticos, la secuencia Fn de los números de Fibonacci está definida por la relación de recurrencia.
F norte =Fn-1+Fn-2
con valores de semilla: F 0 = 0 y F 1 = 1.
Números de Fibonacci usando un enfoque nativo
Serie de Fibonacci usando un bucle while de Python está implementado.
Python3
n>=> 10> num1>=> 0> num2>=> 1> next_number>=> num2> count>=> 1> while> count <>=> n:> >print>(next_number, end>=>' '>)> >count>+>=> 1> >num1, num2>=> num2, next_number> >next_number>=> num1>+> num2> print>()> |
>
>
Producción
1 2 3 5 8 13 21 34 55 89>
Programa Python para números de Fibonacci usando recursividad
Pitón Función para encontrar el enésimo número de Fibonacci usando Recursión de Python .
Python3
def> Fibonacci(n):> ># Check if input is 0 then it will> ># print incorrect input> >if> n <>0>:> >print>(>'Incorrect input'>)> ># Check if n is 0> ># then it will return 0> >elif> n>=>=> 0>:> >return> 0> ># Check if n is 1,2> ># it will return 1> >elif> n>=>=> 1> or> n>=>=> 2>:> >return> 1> >else>:> >return> Fibonacci(n>->1>)>+> Fibonacci(n>->2>)> # Driver Program> print>(Fibonacci(>9>))> |
>
>Producción
34>
Complejidad del tiempo: O(2 ^ n) Exponencial
Espacio Auxiliar: En)
Secuencia de Fibonacci usando DP (Programación Dinámica)
Programación dinámica en Python toma los primeros dos números de Fibonacci como 0 y 1.
Python3
procesamiento de piratería
# Function for nth fibonacci> # number> FibArray>=> [>0>,>1>]> def> fibonacci(n):> > ># Check is n is less> ># than 0> >if> n <>0>:> >print>(>'Incorrect input'>)> > ># Check is n is less> ># than len(FibArray)> >elif> n <>len>(FibArray):> >return> FibArray[n]> >else>:> >FibArray.append(fibonacci(n>-> 1>)>+> fibonacci(n>-> 2>))> >return> FibArray[n]> # Driver Program> print>(fibonacci(>9>))> |
>
>Producción
34>
Complejidad del tiempo: En)
Espacio Auxiliar: En)
Optimización de la secuencia de Fibonacci.
Aquí, también Optimización del espacio Tomando los primeros dos números de Fibonacci como 0 y 1.
Python3
# Function for nth fibonacci number> def> fibonacci(n):> >a>=> 0> >b>=> 1> > ># Check is n is less> ># than 0> >if> n <>0>:> >print>(>'Incorrect input'>)> > ># Check is n is equal> ># to 0> >elif> n>=>=> 0>:> >return> 0> > ># Check if n is equal to 1> >elif> n>=>=> 1>:> >return> b> >else>:> >for> i>in> range>(>1>, n):> >c>=> a>+> b> >a>=> b> >b>=> c> >return> b> # Driver Program> print>(fibonacci(>9>))> |
>
>Producción
34>
Complejidad del tiempo: En)
Espacio Auxiliar: O(1)
Secuencia de Fibonacci usando caché
lru_cache almacenará el resultado para que no tengamos que encontrar Fibonacci para el mismo número nuevamente.
Python3
hacer ejecutable el script de shell
from> functools>import> lru_cache> # Function for nth Fibonacci number> @lru_cache>(>None>)> def> fibonacci(num:>int>)>->>>int>:> ># check if num is less than 0> ># it will return none> >if> num <>0>:> >print>(>'Incorrect input'>)> >return> ># check if num between 1, 0> ># it will return num> >elif> num <>2>:> >return> num> ># return the fibonacci of num - 1 & num - 2> >return> fibonacci(num>-> 1>)>+> fibonacci(num>-> 2>)> # Driver Program> print>(fibonacci(>9>))> |
>
>Producción
34>
Complejidad del tiempo: En)
Espacio Auxiliar: En)
Secuencia de Fibonacci usando retroceso
Función para el enésimo número de Fibonacci usandoPython3
def> fibonacci(n, memo>=>{}):> >if> n <>=> 0>:> >return> 0> >elif> n>=>=> 1>:> >return> 1> >elif> n>in> memo:> >return> memo[n]> >else>:> >memo[n]>=> fibonacci(n>->1>)>+> fibonacci(n>->2>)> >return> memo[n]> # Driver Program> print>(fibonacci(>9>))> |
>
>Producción
34>
Complejidad del tiempo: En)
Espacio Auxiliar: En)
Consulte el artículo completo sobre el Programa para números de Fibonacci ¡para más detalles!