Saltar al contenido
Portada » Serie de Fibonacci en Java

Serie de Fibonacci en Java

Vamos a estudiar como implementar la serie Fibonacci en Java. Fue Leonardo de Pisa quién desarrolló esta conocida sucesión, el matemático vivió entre los años 1170 y 1250. el algoritmo lo descubrió partiendo de un análisis sobre la crianza de conejos.

Las aplicaciones directas de este desarrollo son muchas, desde la teoría de juegos, la computación, la biología, etc.

Una de las características más destacables de esta sucesión es que cada elemento de la serie es la suma de los dos elementos anteriores.

Definición matemática

Para definir la sucesión matemáticamente podemos hacerlo de la siguiente forma:

  1. f0 = 0
  2. Primer elemento: f1 = 1
  3. Elementos siguientes: fn = fn-1 + fn-2

Serie de Fibonacci en Java

Código Java que imprime por pantalla los N primeros elementos de la sucesión de Fibonacci:

private void sucesionFibonacci(int numeroElementosAImprimir)
{
    int primerElemento=0;
    int segundoElemento=1;

    if(numeroElementosAImprimir == 1)
    {
        System.out.println(primerElemento);
    }
    else if(numeroElementosAImprimir==2)
    {
        System.out.println(primerElemento);
        System.out.println(segundoElemento);
    }

    if(numeroElementosAImprimir > 2)
    {
        System.out.println(primerElemento);
        System.out.println(segundoElemento);

        for(int i=3; i<=numeroElementosAImprimir; i++)
        {
            int nuevoElemento=primerElemento+segundoElemento;
            System.out.println(nuevoElemento);
            primerElemento=segundoElemento;
            segundoElemento=nuevoElemento;
        }
    }
}

Solución recursiva serie Fibonacci Java

La sucesión de Fibonacci también es muy interesante en su forma recursiva. El siguiente algoritmo de la serie de Fibonacci en Java devuelve el número de la secuencia según la posición recibida por parámetro:

private int sucesionFibonacciRecursiva(int posicionSeleccionada)
{
    if (posicionSeleccionada > 1)
    {
       return sucesionFibonacciRecursiva(posicionSeleccionada-1) + sucesionFibonacciRecursiva(posicionSeleccionada-2); 
    }
    else if (posicionSeleccionada == 1)
    {
        return 1;
    }
    else if (posicionSeleccionada == 0)
    { 
        return 0;
    }
    else
    {
        System.out.println("El número introducido debe ser mayor o igual a 1");
        return -1; 
    }
}

Propiedades de la serie de Fibonacci

  • El cociente entre dos números consecutivos es una aproximación del número áureo.
  • Cualquier número natural puede escribirse a partir de la suma de varios elementos de esta sucesión.
  • Solamente un término de cada 3 es divisible por 2.
  • Asimismo, únicamente es divisible por 3 un número de cada cuatro.
  • Además, solo uno de cada cinco es múltiplo de 5.

Número áureo

Como hemos comentado, cuando dividimos cualquier número de la serie por el anterior, se obtiene una aproximación al número áureo, es decir, aproximadamente 1,61803. Hay elementos de la naturaleza que guardan la proporción áurea, entre estos bellos elementos podemos encontrar: conchas de moluscos, piñas, flores de alcachofas, etc.


Otros algoritmos matemáticos en Java

AlgoritmoDescripción
Sucesión de FibonacciAprende a programar en Java la famosa sucesión de Fibonacci
Números PrimosAlgoritmo de cálculo en Java para saber si un número es primo
FactorialCálculo del factorial de un número en Java
Número PiAprende a calcular Pi en Java
Número eNúmero e, algoritmo en Java
Raíz cuadradaDesarrollo en Java del algoritmo raíz cuadrada
Números PerfectosDetermina en Java si un número es “perfecto”
Conversión binario – hexadecimalConversor binario a hexadecimal en Java
Generación de números aleatoriosGenerar números aleatorios entre 1 y 100, ejemplos prácticos
Matrices en JavaCrea una matriz en Java y manéjala con soltura
Calculadora en JavaEjemplo sencillo para montar una calculadora en java con interfaz básica

Recursos básicos Java

AsuntoDescripción
Tutorial básico y sintaxisTutorial básico Java y sintaxis. Aprende los fundamentos del lenguaje.
Hilos (Threads)Aprende a manejar hilos y las cuestiones básicas de la concurrencia
Funciones LambdaAquí te enseñamos las nociones más importantes para arrancas con funciones lambda
PalíndromosPrograma de ejemplo para el uso de palíndromos en Java.
Máquina Virtual de JavaTe explicamos el funcionamiento de la máquina virtual de java (Java Virtual Machine – JVM)
JDK, JRE y JVMDiferencias entre el JDK, JRE y JVM.
Mejores libros Java en EspañolHazte con los mejores libros Java para aprender paso a paso y profundizar en las mejores prácticas
TensorFlowManejo del API de TensorFlow para la construcción de grafos de operaciones y su ejecución
Tutorial Log4jTutorial para el manejo de Log4j, herramienta ágil y flexible para la gestión de Logs en Java
Java SecurityEntiende y aplica las posibilidades que da Java para mantener la seguridad
Tutorial JConsoleAprende los conceptos básicos de monitorización de procesos Java con JConsole
JavaFXTutorial de JavaFX, librería gráfica moderna para construcción de GUIs en móvil, escritorio y web.
Estructuras de datos en JavaExplicación y ejemplos de las estructuras de datos más importantes: listas, pila, cola, arbol.
JavaapiConjunto de clases, interfaces, métodos y paquetes que forman parte de la plataforma Java estándar
Algoritmo HuffmanMétodo eficiente para codificar datos, asignando códigos más cortos a los caracteres más frecuentes