Introducción a la serie Fibonacci en C #

La serie Fibonacci en C # en la serie Fibonacci es una de las famosas series de secuencias. La secuencia es 0, 1, 1, 2, 3, 5, 8 … La serie de Fibonacci comienza desde cero y uno y el siguiente número es la suma de dos números anteriores. Se ha dicho que la serie Fibonacci creada por el Sr.Leonardo Pisano Bigollo en el siglo XIII . La serie de Fibonacci es útil para algunos escenarios. Básicamente se utilizó originalmente para resolver el problema del conejo, es decir, el número de conejos nacidos de una pareja. También hay otros problemas en los que la secuencia de Fibonacci es útil.

Lógica de la serie Fibonacci

Como en la serie de Fibonacci, el número es la suma de sus dos números anteriores. Entonces, si tenemos una serie de Fibonacci, digamos 0, 1, 1, 2, 3, 5, 8, 13, 21 … Según este próximo número, sería la suma de sus dos anteriores como 13 y 21. Entonces, el siguiente número es 13 + 21 = 34.

Aquí está la lógica para generar series de Fibonacci

F (n) = F (n-1) + F (n-2)

Donde F (n) es el número de término y F (n-1) + F (n-2) es una suma de valores anteriores.

Entonces, si tenemos series 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 …

Según la lógica F (n) = F (n-1) + F (n-2)

F (n) = 55 + 89

F (n) = 144

El próximo término sería 144.

Varios métodos para crear la serie Fibonacci

Las series de Fibonacci se pueden generar de múltiples maneras.

1. Enfoque iterativo

Esta es la forma más fácil de generar series.

Código:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespaceFibonacciDemo
(
classProgram
(
staticint Fibonacci(int n)
(
intfirstnumber = 0, secondnumber = 1, result = 0;
if (n == 0) return 0; //It will return the first number of the series
if (n == 1) return 1; // it will return the second number of the series
for (int i = 2; i<= n; i++) // main processing starts from here
(
result = firstnumber + secondnumber;
firstnumber = secondnumber;
secondnumber = result;
)
return result;
)
staticvoid Main(string() args)
(
Console.Write("Length of the Fibonacci Series: ");
int length = Convert.ToInt32(Console.ReadLine());
for(int i = 0; i< length; i++)
(
Console.Write("(0) ", Fibonacci(i));
)
Console.ReadKey();
)
)
)

2. Método recursivo

Este es otro método para resolver este problema.

Método 1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespaceFibonacciDemo
(
classProgram
(
staticint Fibonacci(int n)
(
intfirstnumber = 0, secondnumber = 1, result = 0;
if (n == 0) return 0; //it will return the first number of the series
if (n == 1) return 1; // it will return the second number of the series
return Fibonacci(n-1) + Fibonacci(n-2);
)
staticvoid Main(string() args)
(
Console.Write("Length of the Fibonacci Series: ");
int length = Convert.ToInt32(Console.ReadLine());
for(int i = 0; i< length; i++)
(
Console.Write("(0) ", Fibonacci(i));
)
Console.ReadKey();
)
)
)

Método 2

using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace FibonacciSeries
(
class Program
(
public static void Fibonacci
(
int firstnumber,
int secondnumber,
int count,
int length,
)
(
if (count <= length)
(
Console.Write("(0) ", firstnumber);
Fibonacci(secondnumber, firstnumber + secondnumber, count + 1, length);
)
)
public static void Main(string() args)
(
Console.Write("Length of the Fibonacci Series: ");
int length = Convert.ToInt32(Console.ReadLine());
Fibonacci(0, 1, 1, length);
Console.ReadKey();
)
)
)

Salida:

3. Fibonacci mediante el uso de matriz

Código:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
public class Program
(
public static int() Fibonacci(int number)
(
int() a = new int(number);
a(0) = 0;
a(1) = 1;
for (int i = 2; i < number; i++)
(
a(i) = a(i - 2) + a(i - 1);
)
return a;
)
public static void Main(string() args)
(
var b = Fibonacci(10);
foreach (var elements in b)
(
Console.WriteLine(elements);
)
)
)

Salida:

¿Cómo encontrar el enésimo término de la serie Fibonacci?

Los siguientes son los métodos

Método 1

Código:

using System;
namespace FibonacciSeries
(
class Program (
public static int NthTerm(int n)
(
if ((n == 0) || (n == 1))
(
return n;
)
else
(
return (NthTerm(n - 1) + NthTerm(n - 2));
)
)
public static void Main(string() args)
(
Console.Write("Enter the nth term of the Fibonacci Series: ");
int number = Convert.ToInt32(Console.ReadLine());
number = number - 1;
Console.Write(NthTerm(number));
Console.ReadKey();
)
)
)

El código anterior es encontrar el enésimo término en la serie de Fibonacci. Por ejemplo, si queremos encontrar el duodécimo término de la serie, el resultado sería 89.

Método 2

(O (Log t) Tiempo).

Existe otra fórmula de recurrencia que se puede utilizar para encontrar el número de Fibonacci si t es par entonces = t / 2:

F (t) = (2 * F (k-1) + F (k)) * F (k)

Si t es impar, entonces k = (t + 1) / 2

F (t) = F (k) * F (k) + F (k-1) * F (k-1)

Matriz de Fibonacci

Después de obtener determinante, obtendremos (-1) t = Ft + 1Ft-1 - Ft2

FmFt + Fm-1Ft-1 = Fm + t-1

Al poner t = t + 1,

FmFt + 1 + Fm-1Ft = Fm + t

Poniendo m = t

F2t-1 = Ft2 + Ft-12

F2t = (Ft-1 + Ft + 1) Ft = (2Ft-1 + Ft) Ft

Para obtener la fórmula haremos lo siguiente

Si t es par, ponga k = t / 2

Si t es impar, ponga k = (t + 1) / 2

Entonces, al ordenar estos números, podemos evitar el uso constante del espacio de memoria de STACK. Da complejidad de tiempo de O (n). El algoritmo recursivo es menos eficiente.

Código:

int f(n) :
if( n==0 || n==1 )
return n;
else
return f(n-1) + f(n-2)

Ahora cuando el algoritmo anterior se ejecuta para n = 4

fn (4)

f (3) f (2)

f (2) f (1) f (1) f (0)

f (1) f (0)

Entonces es un árbol. Para calcular f (4) necesitamos calcular f (3) yf (2) y así sucesivamente. Para un valor pequeño de 4, f (2) se calcula dos veces yf (1) se calcula tres veces. Este número de adiciones crecerá para grandes números.

Hay una conjetura de que el número de adiciones requeridas para calcular f (n) es f (n + 1) -1.

Conclusión

Aquí siempre se prefiere el método de iteración porque tiene un enfoque más rápido para resolver este tipo de problema. Aquí estamos almacenando el primer y el segundo número de series de Fibonacci en el número anterior y el número anterior (estas son dos variables) y también estamos usando el número actual para almacenar el número de Fibonacci.

Artículos recomendados

Esta es una guía de la serie Fibonacci en C #. Aquí discutimos la lógica de la Serie Fibonacci con diferentes métodos y cómo encontrar el enésimo término de la Serie Fibonacci. También puede consultar nuestros otros artículos relacionados para obtener más información.

  1. Serie Fibonacci en C
  2. Compiladores de C #
  3. Comandos C #
  4. C # para bucle
  5. Guía de la serie Fibonacci en C ++
  6. Serie Fibonacci en JavaScript