La Sucesión de Fibonacci


La sucesión de Fibonacci surgió a partir de un problema planteado por Leonardo de Pisa, conocido como Fibonacci, en su libro Liber Abaci (1202). Este problema trataba sobre la reproducción de conejos bajo ciertas condiciones ideales:

1.       Se inicia con una única pareja de conejos pequeños (una hembra y un macho).

2.       Cada pareja tiene una nueva pareja de crías (un macho y una hembra) cada mes.

3.       Cada pareja tarda un mes en madurar, por lo que comienzan a reproducirse recién al segundo mes.

4.       Los conejos no mueren y se reproducen indefinidamente.

 

Imagen que contiene Texto

El contenido generado por IA puede ser incorrecto.

(1.1.           Figura)

Para realizar el cálculo de la sucesión de Fibonacci se deben tener dos números anteriores y sumarlos:

                an = an-1 + an-2

 

1.1      Ejemplo

Suponemos que n pertenece a los números naturales tal que n se mayor o igual que 2.

Definimos:      a1 = 1       y      a2 = 1 |

a2 = a2-1 + a2-2    =>    a2 = 1 + 1    =>    a2 = 2

a3 = a2 + a1           =>    a3 = 2 + 1    =>    a3 = 3

a4 = a3 + a2           =>    a4 = 3 + 2    =>    a4 = 5

a5 = a4 + a3           =>    a5 = 5 + 3    =>    a5 = 8

Y así sucesivamente…

Sucesión: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, …

 

🌱 Aplicaciones de la sucesión de Fibonacci

Aunque la sucesión de Fibonacci nació como un problema sobre la reproducción de conejos, sus aplicaciones trascienden la matemática pura y se extienden a múltiples campos del conocimiento y la naturaleza. A continuación, exploramos algunos ejemplos fascinantes:

🌿 En la naturaleza

La sucesión de Fibonacci aparece en muchos patrones biológicos. Por ejemplo:

  • La disposición de las hojas en un tallo (filotaxia) sigue con frecuencia una estructura basada en números de Fibonacci, lo que permite una mejor captación de luz solar.
  • La cantidad de pétalos en muchas flores coincide con un número de la sucesión: lirios con 3, margaritas con 34, 55 o incluso 89 pétalos.
  • Las espirales en las piñas, los girasoles o los caracoles también tienden a formarse en cantidades que corresponden a números de Fibonacci.

🖼️ En el arte y la arquitectura

La sucesión está íntimamente ligada a la proporción áurea (aproximadamente 1.618), que históricamente se ha utilizado en el diseño de obras artísticas, templos y estructuras arquitectónicas por su estética equilibrada. Muchos creen que artistas como Leonardo da Vinci utilizaron estas proporciones en sus obras.

🧮 En informática

En ciencias de la computación, los números de Fibonacci se usan en:

  • Algoritmos de búsqueda y ordenamiento.
  • Diseño de estructuras de datos como los heaps de Fibonacci, que optimizan operaciones en grafos.
  • Ejemplos clásicos de recursividad, ideales para enseñar pensamiento algorítmico.

📈 En finanzas

Algunos analistas técnicos utilizan herramientas llamadas retrocesos de Fibonacci para intentar predecir puntos de soporte y resistencia en los precios de activos financieros, basándose en proporciones derivadas de la sucesión.

 

 

📐 Relación con la proporción áurea

La proporción áurea: cuando las matemáticas y la naturaleza se encuentran

(1.2.           Figura)

Una de las conexiones más sorprendentes de la sucesión de Fibonacci es su estrecha relación con la proporción áurea, también conocida como número áureo y representada por la letra griega φ (phi).

🔢 ¿Qué es la proporción áurea?

La proporción áurea es un número irracional que se define matemáticamente como:

Este número ha sido considerado desde la antigüedad como una proporción estéticamente ideal. Se encuentra en el diseño de templos, pinturas, esculturas, y hasta en tarjetas de crédito y logotipos modernos.

🔄 ¿Cómo se relaciona con Fibonacci?

A medida que avanzamos en la sucesión de Fibonacci, si dividimos un número por su anterior, el cociente se aproxima cada vez más al número φ. Por ejemplo:

Conforme los términos crecen, el valor se va acercando a:

Es decir, el cociente entre dos términos consecutivos de Fibonacci tiende a la proporción áurea.

🎨 ¿Y por qué importa esto?

Esta relación explica por qué la sucesión de Fibonacci aparece con tanta frecuencia en estructuras naturales y artísticas. La naturaleza "prefiere" la proporción áurea porque muchas veces permite un crecimiento eficiente, como en las espirales de una concha marina o la organización de las semillas en un girasol.

https://www.youtube.com/watch?v=yDyMSliKsxI

 

 

 

🤔 Curiosidades matemáticas de la sucesión de Fibonacci

https://www.youtube.com/watch?v=N0gr6nK6lgU

 

La sucesión de Fibonacci no solo es famosa por su conexión con la naturaleza y la proporción áurea, sino también por esconder patrones y propiedades matemáticas sorprendentes. Aquí te comparto algunas de las más interesantes:

1. Suma de los primeros términos

Si sumas los primeros n números de la sucesión, el resultado siempre será igual al término número (n + 2) menos 1:

Por ejemplo:

🔁 2. Fibonacci en el triángulo de Pascal

Si sumas las diagonales del triángulo de Pascal, aparecen los números de Fibonacci. Esto ocurre porque ambas estructuras tienen una relación con combinaciones y conteo.

(1.3.           Figura)

🔄 3. Patrón de paridad

Si observas la secuencia, notarás que cada tercer número es par:

1(impar), 1(impar), 2(par), 3(impar), 5(impar), 8(par), …

Este patrón se repite indefinidamente: impar, impar, par...

📉 4. Fibonacci y múltiplos

  • Todo número de Fibonacci de índice múltiplo de 3 es múltiplo de 2.
  • Todo número de Fibonacci de índice múltiplo de 4 es múltiplo de 3.
  • Y así con otros números.

📐 5. Relación con el máximo común divisor (MCD)

Los números de Fibonacci cumplen esta propiedad:

Es decir, el MCD de dos números de Fibonacci también es un número de Fibonacci.

 

La sucesión de Fibonacci es mucho más que una serie de números: es un lenguaje matemático oculto en las formas, estructuras y relaciones del universo.

 

📚 ¿Quién fue Fibonacci?

Leonardo de Pisa, más conocido como Fibonacci, fue un matemático italiano nacido alrededor del año 1170 en la ciudad de Pisa. Es considerado uno de los matemáticos más importantes de la Edad Media.

Fibonacci fue hijo de un comerciante que trabajaba en el norte de África, lo que le permitió entrar en contacto con las matemáticas árabes e hindúes durante su juventud. Gracias a esto, aprendió el sistema numérico indoarábigo (el que usamos actualmente, con cifras del 0 al 9), el cual consideró mucho más práctico que el sistema romano.

En el año 1202, escribió su obra más influyente: el Liber Abaci (El libro del ábaco), donde introdujo este sistema de numeración en Europa. Dentro de ese libro planteó el famoso problema de los conejos, que dio origen a la sucesión de Fibonacci.

Aunque su trabajo fue olvidado durante varios siglos, fue redescubierto con el tiempo, y hoy en día su legado es valorado tanto en la matemática como en otras disciplinas.

 

 

 

🛠️ Guía de Trabajos Prácticos sobre la Sucesión de Fibonacci

 

1.      Escribí los primeros 20 términos de la sucesión.

2.      Investiga cuántos pétalos tienen flores comunes (margaritas, lirios, girasoles).

3.      La espiral de Fibonacci:

a.      Dibuja cuadrados con lados de longitud igual a los primeros términos de la sucesión: 1×1, 1×1, 2×2, 3×3, 5×5…

b.      Dentro de cada cuadrado, traza un cuarto de circunferencia.

4.      Programar la sucesión.

5.      Calcula el cociente entre cada número y el anterior. (Proporción aurea).

6.      Comprueba que la suma de los primeros n términos es igual a

 

Bibliografía

·         https://es.wikipedia.org/wiki/Sucesi%C3%B3n_de_Fibonacci

·         https://www.educ.ar/recursos/132013/la-matematica-incrustada-en-la-inmensa-variedad-de-formas-de-vida

·         https://www2.ual.es/jardinmatema/sucesion-de-fibonacci/

·         https://es.wikipedia.org/wiki/Leonardo_de_Pisa

·         https://www.britannica.com/biography/Fibonacci

·         https://www.youtube.com/watch?v=N0gr6nK6lgU

·         https://www.youtube.com/watch?v=6HP4SidWzIY

·         http://youtube.com/watch?v=yDyMSliKsxI&t=15s

 

 

Código de la sucesión de Fibonacci en PSeInt:

Algoritmo Fibonacci_Menu

           

            Definir MAX, num_fibo, opcionn Como Entero

            MAX <- 46

            Dimension num_fibo[MAX]

           

            // Generar los primeros 46 números de Fibonacci

            num_fibo[1] <- 1

            num_fibo[2] <- 1

            Para i <- 3 Hasta MAX Hacer

                        num_fibo[i] <- num_fibo[i - 1] + num_fibo[i - 2]

            FinPara

           

            Repetir

                        Escribir ""

                        Escribir "---------------------------"

                        Escribir "MENÚ DE OPCIONES"

                        Escribir "1 - Ver los primeros 46 números de Fibonacci"

                        Escribir "2 - Ver los primeros n números de Fibonacci"

                        Escribir "3 - Ver los números de Fibonacci entre n y m"

                        Escribir "4 - Ver un número de Fibonacci por su posición"

                        Escribir "5 - Salir"

                        Escribir "---------------------------"

                        Escribir "Ingrese una opción:"

                        Leer opcionn

                       

                        Segun opcionn Hacer

                                    1:

                                               Para i <- 1 Hasta MAX Hacer

                                                           Escribir "F(", i, ") = ", num_fibo[i]

                                               FinPara

                                              

                                    2:

                                               Escribir "Ingrese n (1 a 46):"

                                               Leer n

                                               Si n >= 1 Y n <= MAX Entonces

                                                           Para i <- 1 Hasta n Hacer

                                                                       Escribir "F(", i, ") = ", num_fibo[i]

                                                           FinPara

                                               Sino

                                                           Escribir "Valor inválido. Debe estar entre 1 y 46."

                                               FinSi

                                              

                                    3:

                                               Escribir "Ingrese el límite inferior (1 a 46):"

                                               Leer li

                                               Escribir "Ingrese el límite superior (mayor o igual que ", li, " y hasta 46):"

                                               Leer ls

                                               Si li >= 1 Y li <= 46 Y ls >= li Y ls <= 46 Entonces

                                                           Para i <- li Hasta ls Hacer

                                                                       Escribir "F(", i, ") = ", num_fibo[i]

                                                           FinPara

                                               Sino

                                                           Escribir "Rangos inválidos."

                                               FinSi

                                              

                                    4:

                                               Escribir "Ingrese la posición (1 a 46):"

                                               Leer pos

                                               Si pos >= 1 Y pos <= 46 Entonces

                                                           Escribir "F(", pos, ") = ", num_fibo[pos]

                                               Sino

                                                           Escribir "Posición inválida."

                                               FinSi

                                              

                                    5:

                                               Escribir "Fin del programa."

                                              

                                    De Otro Modo:

                                               Escribir "Opción inválida."

                        FinSegun

                       

            Hasta Que opcionn = 5

 

FinAlgoritmo

 

 

 

Código de la sucesión de Fibonacci en C:

#include <stdio.h>

#include <stdlib.h>

#include <windows.h>

 

#define MAX 94

 

// Prototipado

void menu(unsigned long long num_fibo[]);

void generarNumerosFibo(unsigned long long num_fibo[]);

void mostrarTodosNumerosFibo(unsigned long long num_fibo[]);

void mostrarXNumerosFibonacci(unsigned long long num_fibo[]);

void mostrarFibonacciEntreNYN(unsigned long long num_fibo[]);

void mostrarFibonacciExacto(unsigned long long num_fibo[]);

 

// Programa principal

 

int main() {

           

            unsigned long long num_fibo[MAX];

           

            generarNumerosFibo(num_fibo);

           

            menu(num_fibo);

           

            return 0;

}

 

void menu(unsigned long long num_fibo[]){

           

            int opcion = 1;

           

            while (opcion != 5) {

                       

                        Sleep(150);

                       

                        printf("\nEscoja una opcion: \n"

                        "1_Ver los primeros 95 numeros de fibonacci. \n"

                        "2_Ver los primeros n numeros de fibonacci (menor o igual de 95). \n"

                        "3_Ver los numeros de Fibonacci entre n y m. \n"

                        "4_Ver un numero de Fibonacci segun su posicion. \n"

                        "5_Salir. \n");

                        scanf("%d", &opcion);

                       

                        if (opcion < 1 || opcion > 5){

                                    Sleep(150);

                                    printf("\nOpcion invalida\n");

                                    printf("Ingrese nuevamente\n");

                                    Sleep(1500);

                        }

                        else {

                                    switch (opcion){

                                               case 1:

                                                           mostrarTodosNumerosFibo(num_fibo);

                                                           break;

                                              

                                               case 2:

                                                           mostrarXNumerosFibonacci(num_fibo);

                                                           break;

                                                          

                                               case 3:

                                                           mostrarFibonacciEntreNYN(num_fibo);

                                                           break;

                                              

                                               case 4:

                                                           mostrarFibonacciExacto(num_fibo);

                                                           break;

                                                          

                                               case 5:

                                                           exit(0);

                                    }

                        }

            }

}

 

void generarNumerosFibo(unsigned long long num_fibo[]){

           

            num_fibo[0] = 0;

            num_fibo[1] = 1;

           

            for (int i = 2; i < MAX; i++){

                       

                        num_fibo[i] = num_fibo[i-1] + num_fibo[i-2];

              

    }

}

 

void mostrarTodosNumerosFibo(unsigned long long num_fibo[]){

            printf("\n");

            for (int i = 0; i < MAX; i++){

           

                        printf("%llu \n", num_fibo[i]);

                        Sleep(40);

            }

           

}

 

void mostrarXNumerosFibonacci(unsigned long long num_fibo[]){

            int n;

            printf("\n");

           

            printf("Ingrese la cantidad de numeros de fibonacci que desee ver (la cantidad de numeros debe ser menor o igual a 94): ");

            scanf("%d", &n);

           

            printf("\n");

           

            for (int i = 0; i < n; i++){

           

                        printf("%llu \n", num_fibo[i]);

                        Sleep(50);

                       

            }

}

 

void mostrarFibonacciEntreNYN(unsigned long long num_fibo[]){

           

            int limite_inferior = -1, limite_superior = -1;

            printf("\n");

            while (limite_inferior < 0 || limite_inferior > MAX) {

                        printf("Ingrese el limite inferior desde donde quiere ver los numeros de fibonacci (Mayor o igual que 0 y menor o igual que 94)\n");

                        scanf("%d", &limite_inferior);

                       

                        if (limite_inferior < 0 || limite_superior > MAX) {

                                    printf("Limite incorrecto. Ingrese nuevamente.\n");

                        }

                       

            }

            printf("\n");

           

            while (limite_superior < limite_inferior || limite_inferior > MAX) {

                        printf("Ingrese el limite superior hasta donde quiere ver los numeros de fibonacci (Mayor o igual que el limite inferior y menor o igual que 94)\n");

                        scanf("%d", &limite_superior);

                       

                        if (limite_superior < limite_inferior || limite_superior > MAX){

                                    printf("Limite incorrecto. Ingrese nuevamente.\n");

                        }

            }

            printf("\n");

           

            for (int i = limite_inferior; i <= limite_superior; i++){

                        printf("%llu \n", num_fibo[i]);

                        Sleep(50);

            }

}

 

 

void mostrarFibonacciExacto(unsigned long long num_fibo[]){

            int posicion;

           

            printf("\nIngrese la posicion del numero de Fibonacci el cual desea ver:  ");

            scanf("%d", &posicion);

           

            printf("\nEl numero de Fibonacci en la posicion %d es %llu\n", posicion, num_fibo[posicion]);

            Sleep(300);

}

 


Comentarios

Entradas más populares de este blog

Aplicaciones de la sucesión de Fibonacci