Introdução à série Fibonacci em C #

A série Fibonacci em C # na série Fibonacci é uma das famosas séries de sequências. A sequência é 0, 1, 1, 2, 3, 5, 8…. A série Fibonacci começa do zero e um e o próximo número é a soma dos dois números anteriores. Foi dito que a Série Fibonacci criada por Mr.Leonardo Pisano Bigollo no século XIII. A série Fibonacci é útil para alguns cenários. Basicamente, foi originalmente usado para resolver o problema do coelho, ou seja, o número de coelhos nascidos de um par. Existem outros problemas também nos quais a sequência de Fibonacci é útil.

Fibonacci Series Logic

Como na série Fibonacci, o número é a soma dos dois números anteriores. Portanto, se tivermos uma série de Fibonacci, diga 0, 1, 1, 2, 3, 5, 8, 13, 21 … De acordo com este próximo número, seria a soma dos dois anteriores, como 13 e 21. Portanto, o próximo número é 13 + 21 = 34.

Aqui está a lógica para gerar a série Fibonacci

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

Onde F (n) é o número do termo e F (n-1) + F (n-2) é uma soma dos valores anteriores.

Portanto, se tivermos as séries 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89…

De acordo com a lógica F (n) = F (n-1) + F (n-2)

F (n) = 55 + 89

F (n) = 144

O próximo termo seria 144.

Vário método de criação da série Fibonacci

A série Fibonacci pode ser gerada de várias maneiras

1. Abordagem iterativa

Dessa maneira, é a maneira mais fácil de gerar séries.

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 é outro método para resolver esse 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();
)
)
)

Resultado:

3. Fibonacci usando 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);
)
)
)

Resultado:

Como encontrar o nono termo da série Fibonacci?

A seguir estão os 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();
)
)
)

O código acima é encontrar o enésimo termo na série Fibonacci. Por exemplo, se quisermos encontrar o 12º termo da série, o resultado será 89.

Método 2

(O (Log t) Time).

Existe uma outra fórmula de recorrência que pode ser usada para encontrar o número de Fibonacci. Se t for par, então = t / 2:

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

Se t é ímpar, então k = (t + 1) / 2

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

Matriz de Fibonacci

Depois de sermos determinantes, obteremos (-1) t = Ft + 1Ft-1 - Ft2

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

Ao colocar t = t + 1,

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

Colocando m = t

F2t-1 = Ft2 + Ft-12

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

Para obter a fórmula, faremos o seguinte

Se t for par, coloque k = t / 2

Se t é ímpar, coloque k = (t + 1) / 2

Portanto, classificando esses números, podemos impedir o uso constante do espaço de memória do STACK. Dá uma complexidade temporal de O (n). O algoritmo recursivo é menos eficiente.

Código:

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

Agora, quando o algoritmo acima é executado para n = 4

fn (4)

f (3) f (2)

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

f (1) f (0)

Então é uma árvore. Para calcular f (4), precisamos calcular f (3) ef (2) e assim por diante. Para um pequeno valor de 4, f (2) é calculado duas vezes ef (1) é calculado três vezes. Esse número de adições aumenta para números grandes.

Há uma conjectura de que o número de adições necessárias para calcular f (n) é f (n + 1) -1.

Conclusão

Aqui, o método de iteração é sempre preferido, pois possui uma abordagem mais rápida para resolver esse tipo de problema. Aqui estamos armazenando o primeiro e o segundo número de séries de Fibonacci no número anterior e no número anterior (essas são duas variáveis) e também estamos usando o número atual para armazenar o número de Fibonacci.

Artigos recomendados

Este é um guia para a série Fibonacci em C #. Aqui discutimos a lógica da série Fibonacci com diferentes métodos e como encontrar o enésimo termo da série Fibonacci. Você também pode consultar nossos outros artigos relacionados para saber mais.

  1. Série Fibonacci em C
  2. Compiladores C #
  3. Comandos C #
  4. C # para loop
  5. Guia da série Fibonacci em C ++
  6. Série Fibonacci em JavaScript