¿Qué es la serie Fibonacci?
En la serie de Fibonacci, el siguiente número es la suma de los dos números anteriores. Los dos primeros números de la serie de Fibonacci son 0 y 1.
Los números de Fibonacci se utilizan significativamente en el estudio computacional del algoritmo en tiempo de ejecución para determinar el máximo común divisor de dos enteros. En aritmética, la matriz de Wythoff es una matriz infinita de números que resultan de la secuencia de Fibonacci.
The Fibonacci sequence: 0, 1, 1, 2, 3, 5, 8, 13, 21,…
Código Java usando For Loop
// Usando For Looppublic class FibonacciExample {public static void main (String [] args){// Ajústelo a la cantidad de elementos que desee en la Serie Fibonacciint maxNumber = 10;int previousNumber = 0;int nextNumber = 1;System.out.print ("Serie Fibonacci de" + maxNumber + "números:");para (int i = 1; i <= maxNumber; ++ i){System.out.print (previousNumber + "");/ * En cada iteración, estamos asignando un segundo número* al primer número y asignando la suma de los dos últimos* números al segundo número* /int suma = número anterior + número siguiente;previousNumber = nextNumber;nextNumber = suma;}}}Producción:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34Lógica del programa:
- previousNumber se inicializa en 0 y nextNumber se inicializa en 1
- For Loop itera a través de
maxNumber
- Mostrar el número anterior
- Calcula la suma de previousNumber y nextNumber
- Actualiza nuevos valores de previousNumber y nextNumber
Código Java usando While Loop
También puede generar series de Fibonacci usando un
While
bucle en Java.
// Uso de While Looppublic class FibonacciWhileExample {public static void main (String [] args){int maxNumber = 10, previousNumber = 0, nextNumber = 1;System.out.print ("Serie Fibonacci de" + maxNumber + "números:");int i = 1;while (i <= maxNumber){System.out.print (previousNumber + "");int suma = número anterior + número siguiente;previousNumber = nextNumber;nextNumber = suma;i ++;}}}Producción:
Fibonacci Series of 10 numbers:0 1 1 2 3 5 8 13 21 34
La única diferencia en la lógica del programa es el uso de WHILE Loop para imprimir números de Fibonacci
Serie de Fibonacci basada en la entrada del usuario
// serie de fibonacci basada en la entrada del usuarioimport java.util.Scanner;public class FibonacciExample {public static void main (String [] args){int maxNumber = 0;int previousNumber = 0;int nextNumber = 1;System.out.println ("Cuántos números quieres en Fibonacci:");Escáner escáner = nuevo escáner (System.in);maxNumber = scanner.nextInt ();System.out.print ("Serie Fibonacci de" + maxNumber + "números:");para (int i = 1; i <= maxNumber; ++ i){System.out.print (previousNumber + "");/ * En cada iteración, estamos asignando un segundo número* al primer número y asignando la suma de los dos últimos* números al segundo número* /int suma = número anterior + número siguiente;previousNumber = nextNumber;nextNumber = suma;}}}Lógica del programa:
La lógica es la misma que antes. En lugar de codificar la cantidad de elementos que se mostrarán en la serie Fibonacci, se le pide al usuario que escriba el número.
Código Java usando recursividad
// Usando recursividadclase pública FibonacciCalc {public static int fibonacciRecursion (int n) {si (n == 0) {return 0;}si (n == 1 || n == 2) {return 1;}return fibonacciRecursion (n-2) + fibonacciRecursion (n-1);}public static void main (String args []) {int maxNumber = 10;System.out.print ("Serie Fibonacci de" + maxNumber + "números:");para (int i = 0; iProducción: Fibonacci Series of 10 numbers: 0 1 1 2 3 5 8 13 21 34Lógica del programa:Una función recursiva es aquella que tiene la capacidad de llamarse a sí misma.
fibonacciRecursion ():
- Toma un número de entrada. Comprueba 0, 1, 2 y devuelve 0, 1, 1 en consecuencia porque la secuencia de Fibonacci comienza con 0, 1, 1.
- Cuando la entrada n es> = 3, la función se llamará a sí misma de forma recursiva. La llamada se realiza dos veces. Veamos un ejemplo para la entrada de 4.
fibonacciRecursion (4)It will recursively call fibonacciRecursion function for values 2 and 3fibonacciRecursion (2) \\ call for value 0 and 1fibonacciRecursion (0) = 0fibonacciRecursion (1) = 1fibonacciRecursion (3) \\ It will call for 1 and 2fibonacciRecursion (1) = 1fibonacciRecursion (2) \\ It will call for 0 and 1fibonacciRecursion (0) = 0fibonacciRecursion (1) = 1Ahora se suma el resultado 0 + 1 + 1 + 0 + 1 = 3