Implementando la secuencia de Fibonacci en Python
Publicado: 2023-02-23Python es un lenguaje de programación multipropósito potente y versátil que facilita la implementación de redes neuronales artificiales y es compatible con el procesamiento del lenguaje natural, el aprendizaje profundo, el reconocimiento facial, los algoritmos genéticos y muchas más tareas basadas en IA de última generación.
Este artículo explora algunas de las formas principales en que se puede usar Python para generar con precisión la secuencia de Fibonacci, un gran ejemplo de algoritmos relativamente simples que no solo son útiles en sí mismos, sino que a menudo son fundamentales para la creación de programas avanzados capaces de realizar tareas complejas. funcionalidades cognitivas.
Tabla de contenido
¿Qué es la sucesión de Fibonacci?
La secuencia de Fibonacci es quizás una de las secuencias matemáticas más simples, más antiguas conocidas y más famosas conocidas por la humanidad.
Es una serie continua de números enteros enteros, donde cada número sucesivo es igual a la suma de sus dos números anteriores. La serie de Fibonacci comienza con 0 y 1 y procede de la siguiente manera: 0, 1, 1, 2, 3, 5, 8, 13 , 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368 y así sucesivamente.
Con cero como punto de partida, la secuencia de Fibonacci se extiende indefinidamente de forma bidireccional de la siguiente manera:
…610, -377, 233, -144, 89, -55, 34, -21, 13, -8, 5, -3, 2, -1, 1, 0 , 1, 1, 2, 3, 5 , 8, 13, 21, 34, 55, 89, 144, 233, 377, 610… La secuencia a la izquierda del cero se conoce como secuencia “negafibonacci”.
Consulte nuestros cursos de tecnología gratuitos para obtener una ventaja sobre la competencia.
La secuencia de Fibonacci se puede representar matemáticamente de la siguiente manera:
norte | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
x norte | 0 | 1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 | 34 | 55 | 89 | 144 | 233 | 377 | 610 |
Donde n es el número del término y x n es el valor del término. La fórmula para calcular el valor del término x n es:
x norte = x norte-1 + x norte-2
Entonces, el valor del término número 8, por ejemplo, es:
x8 = x7 + x6 _
× 8 = 13 + 8
× 8 = 21
Aquí hay un poco de trivia relacionada con la secuencia de Fibonacci: el día de Fibonacci se observa el 23 de noviembre, ya que la fecha puede estar representada por los dígitos 1, 1, 2 y 3, que representan un segmento correctamente secuenciado de la serie de números de Fibonacci.
Explore nuestros cursos populares de ingeniería de software
Maestría en Ciencias en Ciencias de la Computación de LJMU & IIITB | Programa de Certificado de Ciberseguridad Caltech CTME |
Bootcamp de desarrollo de pila completa | Programa PG en Blockchain |
Programa Ejecutivo PG en Desarrollo Full Stack | |
Ver todos nuestros cursos a continuación | |
Cursos de ingeniería de software |
Historia y orígenes de la sucesión de Fibonacci
Leonardo Pisano Bogollo, conocido popularmente como Fibonacci, que en el lenguaje coloquial italiano se traduce aproximadamente como "hijo de Bonacci".
A Fibonacci se le atribuyó la formulación de esta secuencia especial de números que, como consecuencia, recibió su nombre. Lo introdujo en una parte importante de Europa occidental a principios del siglo XIII a través de su libro histórico:Liber Abaci.
Considerado ampliamente como uno de los matemáticos más talentosos de su tiempo, a Fibonacci también se le atribuyó, por cierto, la adopción generalizada de los números arábigos hindúes en toda Europa, que hasta entonces usaba los números romanos mucho más engorrosos.
Sin embargo, lo que hoy se llama la secuencia de Fibonacci, ahora se sabe que estuvo en uso en la antigua India ya en el siglo III a.
Encontró expresión en los Pingala-sutras, un antiguo tratado de prosodia sánscrita, así como en el Natya Shastra, un tratado sobre las antiguas artes escénicas de la India, atribuido a los reverenciados sabios de la antigua India, Acharya Pingala y Bharata Muni, respectivamente.
El comentario más definitivo sobre la secuencia aparece en el trabajo de Virahanka a principios del siglo VIII EC. Aunque no se ha rastreado este texto en sí, se ha mencionado y citado extensamente en el trabajo de Gopala en 1135 EC. Coincidentemente, los dígitos de ese año representan una secuencia consecutiva de números de Fibonacci.
Se dice que otro erudito indio del ritmo métrico, Acharya Hemachandra, tuvo un conocimiento íntimo de la secuencia, que describió con gran detalle en 1150 EC. Esto es anterior al trabajo de Fibonacci por más de 50 años.
Consulte los cursos de desarrollo de software de upGrad
Fórmula de Binet
Como todas las secuencias recursivas constantes con coeficientes constantes, los números de Fibonacci se pueden mostrar como una expresión de forma cerrada que se conoce como la fórmula de Binet. El nombre de Jacques Philippe Marie Binet, un destacado matemático francés de principios del siglo XIX, la fórmula de Binet se puede representar de la siguiente manera:
Dado que F n es el enésimo número de Fibonacci:
Lo que se puede derivar de la fórmula anterior es el hecho de que, salvo los primeros números, la proporción entre cada par consecutivo de números en la serie de Fibonacci converge progresivamente en lo que se conoce como la Proporción Áurea: 1: 1.618, denotada por el 21. letra del alfabeto griego – Φ (phi).
Esto significa que cada número de la serie es 0,6180339887 del número de Fibonacci que le sigue O que cada número sucesivo es 1,6180339887 veces el número que le precede en la secuencia de Fibonacci.
Habilidades de desarrollo de software bajo demanda
Cursos de JavaScript | Cursos básicos de Java | Cursos de Estructuras de datos |
Cursos de Node.js | Cursos SQL | Cursos de desarrollo de pila completa |
Cursos NFT | Cursos DevOps | Cursos de Big Data |
Cursos de React.js | Cursos de Seguridad Cibernética | Cursos de computación en la nube |
Cursos de diseño de base de datos | Cursos de Python | Cursos de Criptomonedas |
La sucesión de Fibonacci y la proporción áurea
La importancia de la Secuencia de Fibonacci y su derivado, la Proporción áurea, aumenta significativamente debido a su recurrencia extrañamente frecuente en la naturaleza. Algunos de los ejemplos más comunes de esto incluyen:
- El número de pétalos de una flor es casi invariablemente un número de Fibonacci, ya sea el lirio de 3 pétalos, el botón de oro de 5 pétalos, la flor de achicoria de 21 pétalos o la margarita de 34 pétalos.
Curiosamente, esta firme conformidad con los números de Fibonacci parece ser un producto del diseño darwiniano, ya que los científicos han descubierto que estos arreglos particulares de pétalos aseguran que cada una de estas flores tenga una exposición óptima a la luz solar, la humedad y los agentes de polinización, como pájaros e insectos. . - La proporción áurea o Φ se ve en casi todos los patrones en espiral que ocurren naturalmente: desde las semillas de un girasol hasta galaxias enteras, desde las protuberancias de una piña hasta los huracanes, desde las espinas de una piña hasta la curvatura de los cuernos de una cabra y desde los floretes. de una coliflor a los verticilos en una huella digital humana.
El patrón en espiral de una concha de nautilus se considera una representación particularmente icónica de lo que se llama la "Espiral de Fibonacci". - La ramificación de los árboles y los sistemas de raíces, la proporción entre abejas macho y hembra en una colmena, varias partes del cuerpo de los animales, desde microbios hasta caracoles, tortugas y ballenas, todo se ajusta a la Proporción Áurea.
- Aspectos de la fisiología humana: la relación entre la longitud total de nuestro cuerpo y la distancia desde la cabeza hasta la punta de los dedos, por ejemplo, o la relación entre la longitud de los antebrazos y las manos, están diseñados de acuerdo con Φ.
La cóclea en el oído humano es una espiral de Fibonacci, al igual que el cordón umbilical. Incluso se cree que subconscientemente nos atraen las caras cuyas proporciones de alto a ancho se acercan a la proporción áurea.
En esencia, las Matemáticas son una búsqueda para descubrir patrones en todas las cosas. No existe un escenario mejor o más penetrante en el que buscar estos patrones que en el regazo de la madre naturaleza.
Desde microorganismos hasta galaxias, la Secuencia de Fibonacci se refleja en una abrumadora variedad de fenómenos y fisiología natural, desde escalas microscópicas hasta cósmicas, y por una buena razón.
La Proporción Áurea o Φ confiere un equilibrio ergonómico de armonía estética y funcional a todo aquello en lo que se expresa. Es por esta razón que la Proporción Áurea también se conoce como la Proporción Divina.
Pero el significado de la Secuencia de Fibonacci se extiende mucho más allá del mundo natural, encontrando expresión en una amplia gama de actividades humanas, a través de las matemáticas, las ciencias y las artes.
Lea nuestros artículos populares relacionados con el desarrollo de software
¿Cómo implementar la abstracción de datos en Java? | ¿Qué es la clase interna en Java? | Identificadores de Java: definición, sintaxis y ejemplos |
Comprender la encapsulación en OOPS con ejemplos | Argumentos de línea de comando en C explicados | Las 10 funciones y características principales de la computación en la nube en 2022 |
Polimorfismo en Java: conceptos, tipos, características y ejemplos | ¿Paquetes en Java y cómo usarlos? | Tutorial de Git para principiantes: Aprende Git desde cero |
Generando la Secuencia de Fibonacci usando Python
La secuencia de Fibonacci y la proporción áurea son parte integral de varios aspectos de:
- Álgebra, geometría, estadística y trigonometría, que se pueden aplicar a diversas prácticas económicas y al análisis del mercado de valores.
- Biología, física e informática: que encuentra aplicación en biología sintética y genética, ingeniería civil y mecánica, arquitectura, diseño de interiores y, por supuesto, programación informática.
- Arte y diseño gráfico, así como poesía, música y danza.
A menudo es un paso fundamental en la creación de una amplia variedad de aplicaciones útiles relacionadas con los temas anteriores y más allá.
La secuencia de Fibonacci se puede generar utilizando una amplia variedad de lenguajes de programación. Como se indicó anteriormente, Python es uno de los más poderosos y versátiles, capaz de usar y manipular los números de Fibonacci y la secuencia de Fibonacci de varias maneras para desarrollar algunas de las soluciones tecnológicas más avanzadas.
Echa un vistazo al Programador de certificados avanzados de upGrad en Blockchain de IIIT Bangalore
Estos son algunos de los métodos mediante los cuales se puede usar Python para generar la secuencia de Fibonacci:
Enfoque iterativo
En este método, el algoritmo :
- Asigna dos variables para representar los dos términos consecutivos iniciales dentro de la secuencia. Donde 0 representa el primer término de la secuencia y 1 representa el segundo.
- Establece el rango deseado de términos que se calcularán en la secuencia y el ciclo desde 0 hacia arriba.
- En cada iteración, el algoritmo:
- Suma las dos variables.
- Luego asigna el valor de la segunda variable a la primera variable
y la suma de las dos variables anteriores a la segunda variable. - Etcétera…
El código correspondiente se escribiría de la siguiente manera :
def fibo (núm) :
un = 0
segundo = 1
para i en xrange(0, 20):
imprimir un
a, b = b, a + b
La salida correspondiente serían los primeros veinte números de la Secuencia de Fibonacci :
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,
144, 233, 377, 610, 987, 1597, 2584, 4181
Enfoque recursivo
En este método, el algoritmo deriva :
El valor de cada término sucesivo sumando el valor de los dos términos anteriores. Esto puede representarse como término n = término n-1 + término n-2.
Las únicas dos excepciones a esta regla son cuando el valor de los términos es 0 y 1, los cuales devuelven valores sin cambios. Estas excepciones se pueden representar como término n = término n.
El código correspondiente se escribiría de la siguiente manera :
def recur_fodo (n):
si n < = 1:
regreso m
demás:
retorno (recur_fibo (n-1) + recur_fibo (n-2) )
Ntérminos = 20
# comprobar si el número de términos es válido
si nerms <= 0:
imprimir ("Por favor ingrese un número entero positivo")
demás:
imprimir ("secuencia de Fibonacci")
Para i en rango (ntérminos):
Imprimir (recur_fibo i))
La salida correspondiente serían los primeros veinte números de la Secuencia de Fibonacci :
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89,
144, 233, 377, 610, 987, 1597, 2584, 4181
Algunas aplicaciones independientes de la secuencia de Fibonacci
Además de ser un paso fundamental en el desarrollo de varios modelos y aplicaciones complejos, los Números de Fibonacci, en sí mismos, poseen algunas características únicas que los hacen invaluables en el desempeño de ciertas tareas:
- Los números de Fibonacci se pueden usar para analizar el tiempo de ejecución computacional del algoritmo de Euclid para identificar el máximo común divisor de un par aleatorio de números enteros, dado que un par de números de Fibonacci sucesivos suelen presentar el desafío más grave para este algoritmo.
- Los números de Fibonacci representan de manera única una secuencia completa, de modo que cada entero positivo en la serie es la suma de dos números de Fibonacci, cualquiera de los cuales puede usarse solo una vez.
- Los algoritmos basados en números de Fibonacci ayudaron en el desarrollo de la técnica de búsqueda de Fibonacci, la estructura de datos del montón de Fibonacci y los gráficos de cubo de Fibonacci utilizados para interconectar sistemas paralelos y distribuidos.
- Los números de Fibonacci se utilizan en el scrum poker, una técnica gamificada y basada en el consenso para estimar los objetivos de desarrollo en el desarrollo de software.
- El retroceso de los niveles de Fibonacci se usa comúnmente en el análisis técnico para el comercio del mercado de valores.
En conclusión
A lo largo de este artículo, hemos intentado despertar su interés en la secuencia de Fibonacci o la proporción áurea, sus características clave y su recurrencia asombrosamente frecuente en el mundo natural, tanto animado como inanimado.
Hemos tratado de capturar el impacto y recrear la maravilla que este fenómeno matemático ha creado en una gama ampliamente divergente y multidimensional de actividades humanas: las artes y las ciencias, la ingeniería y la tecnología, la anatomía y la genética, la economía y las finanzas... y mucho más. .
Hemos intentado dar vida a cómo un lenguaje de programación extremadamente versátil llamado Python puede ayudarlo a manipular estos conceptos matemáticos para beneficiar a la humanidad de maneras inesperadamente diversas, tanto directa como indirectamente.
Es nuestra ferviente esperanza que esta potente combinación de Python y la Secuencia de Fibonacci haya cautivado y continúe capturando su imaginación, encendiendo sus mentes, alimentando sus aspiraciones e inspirándolo a las mayores alturas de logro. ¡Feliz codificación! ¡Feliz sueño!
En upGrad, entendemos la importancia del aprendizaje práctico y práctico, especialmente cuando se trata de desarrollo de software. Como resultado, nuestros cursos e iniciativas de capacitación tienen la practicidad en su esencia misma. Una de esas iniciativas es Full Stack Development Bootcamp , que lo ayudará a desarrollar todas las habilidades relevantes necesarias para sobresalir en el desarrollo full-stack.