NumPy – Serie de Fibonacci usando la fórmula de Binet

Todos nosotros estamos familiarizados con la serie de Fibonacci. Cada número en la secuencia es la suma de los dos números que lo preceden. Entonces, la secuencia es: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34… En este tutorial, implementaremos lo mismo usando NumPy con la ayuda de la fórmula Binet .

Fórmula Binet
  fn = \left [\left (\frac{1 + \sqrt{5}}{2}  \right )^{n} - \left (\frac{1 - \sqrt{5}}{2}  \right )^{n}  \right ]\ast \frac{1}{\sqrt{5}}  where, alpha = \left (\frac{1 + \sqrt{5}}{2}  \right ), beta = \left (\frac{1 - \sqrt{5}  }{2}\right )

n ‘ es el parámetro que relaciona los primeros ‘n’ números de la serie de Fibonacci. En el primer ejemplo, vamos a encontrar los primeros 10 números de la Serie Fibonacci (n = 10), luego tomamos el parámetro ‘n’ del usuario y producimos el resultado correspondiente.

NOTA: estamos ignorando el primer elemento (0) de la serie de Fibonacci

Ejemplo 1: Para encontrar los primeros 10 números de Fibonacci.

import numpy as np
   
# We are creating an array contains n = 10 elements
# for getting first 10 Fibonacci numbers
a = np.arange(1, 11)
lengthA = len(a)
  
# splitting of terms for easiness
sqrtFive = np.sqrt(5)
alpha = (1 + sqrtFive) / 2
beta = (1 - sqrtFive) / 2
  
# Implementation of formula
# np.rint is used for rounding off to integer
Fn = np.rint(((alpha ** a) - (beta ** a)) / (sqrtFive))
print("The first {} numbers of Fibonacci series are {} . ".format(lengthA, Fn))

Producción :

Los primeros 10 números de la serie de Fibonacci son [ 1. 1. 2. 3. 5. 8. 13. 21. 34. 55.] .

Ejemplo 2: Para encontrar los primeros números de Fibonacci ‘n’..

import numpy as np
  
# We are creating an array contains n elements
# for getting first 'n' Fibonacci numbers
fNumber = int(input("Enter the value of n + 1'th number : "))
a = np.arange(1, fNumber)
length_a = len(a)
  
# splitting of terms for easiness
sqrt_five = np.sqrt(5)
alpha = (1 + sqrt_five) / 2
beta = (1 - sqrt_five) / 2
  
# Implementation of formula
# np.rint is used for rounding off to integer
Fn = np.rint(((alpha ** a) - (beta ** a)) / (sqrt_five))
print("The first {} numbers of Fibonacci series are {} . ".format(length_a, Fn))

Producción :

# Here user input was 10
Enter the value of n+1'th number :10
The first 9 numbers of Fibonacci series are [ 1.  1.  2.  3.  5.  8. 13. 21. 34.] . 

Publicación traducida automáticamente

Artículo escrito por amalchandranmv y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *