Introducere în seria Fibonacci în C #

Seria Fibonacci din C # din seria Fibonacci este una dintre celebrele serii de secvențe. Secvența este 0, 1, 1, 2, 3, 5, 8 … Seria Fibonacci începe de la zero și unul și următorul număr este suma a două numere precedente. S-a spus că seria Fibonacci creată de Mr.Leonardo Pisano Bigollo în secolul al XIII- lea. Seria Fibonacci este utilă pentru unele scenarii. Practic, a fost folosit inițial pentru a rezolva problema iepurelui, adică numărul iepurilor născuți dintr-o pereche. Există și alte probleme în care secvența Fibonacci este utilă.

Logica seria Fibonacci

Ca și în seria Fibonacci, numărul este suma celor două numere precedente. Deci, dacă avem o serie Fibonacci, spunem 0, 1, 1, 2, 3, 5, 8, 13, 21 … În conformitate cu acest număr următor, ar fi suma celor două precedente ca 13 și 21. Deci, următorul număr este 13 + 21 = 34.

Iată logica pentru generarea seriei Fibonacci

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

În cazul în care F (n) este numărul termenului și F (n-1) + F (n-2) este o sumă a valorilor precedente.

Deci, dacă avem seriile 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 …

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

F (n) = 55 + 89

F (n) = 144

Următorul termen ar fi 144.

Diverse metode de creare a seriei Fibonacci

Seria Fibonacci poate fi generată în mai multe moduri

1. Abordare iterativă

Acest mod este cel mai simplu mod de a genera serii.

Cod:

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. Metoda recursivă

Aceasta este o altă metodă pentru a rezolva această problemă.

Metoda 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();
)
)
)

Metoda 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();
)
)
)

ieşire:

3. Fibonacci folosind Array

Cod:

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);
)
)
)

ieşire:

Cum să găsiți al nouălea termen al seriei Fibonacci?

Urmează metodele

Metoda 1

Cod:

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();
)
)
)

Codul de mai sus constă în al nouălea termen din seria Fibonacci. De exemplu, dacă dorim să găsim al 12- lea termen din serie, atunci rezultatul ar fi de 89.

Metoda 2

(O (Log t) Timp).

Există o altă formulă de recurență care poate fi utilizată pentru a găsi numărul Fibonacci Dacă t este chiar atunci = t / 2:

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

Dacă t este impar, atunci k = (t + 1) / 2

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

Matricea Fibonacci

După obținerea determinantului, vom obține (-1) t = Ft + 1Ft-1 - Ft2

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

Punând t = t + 1,

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

Punerea m = t

F2t-1 = Ft2 + Ft-12

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

Pentru a obține formula, vom face următoarele

Dacă t este egal, puneți k = t / 2

Dacă t este ciudat, se pune k = (t + 1) / 2

Deci, sortând aceste numere, putem preveni folosirea constantă a spațiului de memorie STACK. Oferă complexitate în timp a lui O (n). Algoritmul recursiv este mai puțin eficient.

Cod:

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

Acum când algoritmul de mai sus rulează pentru n = 4

fn (4)

f (3) f (2)

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

f (1) f (0)

Deci este un copac. Pentru calcularea f (4) trebuie să calculăm f (3) și f (2) și așa mai departe. Pentru o valoare mică de 4, f (2) este calculat de două ori și f (1) este calculat de trei ori. Acest număr de completări va crește pentru un număr mare.

Există o conjectură că numărul de completări necesare pentru calcularea f (n) este f (n + 1) -1.

Concluzie

Aici, metoda de iterație este întotdeauna preferată, deoarece are o abordare mai rapidă pentru a rezolva acest tip de problemă. Aici stocăm primul și al doilea număr din seria Fibonacci în numărul și numărul precedent (acestea sunt două variabile) și, de asemenea, folosim numărul curent pentru a stoca numărul Fibonacci.

Articole recomandate

Acesta este un ghid pentru seria Fibonacci din C #. Aici discutăm logica Seriei Fibonacci cu diferite metode și cum să găsim al nouălea termen al Seriei Fibonacci. Puteți, de asemenea, să parcurgeți alte articole conexe pentru a afla mai multe-

  1. Serie Fibonacci în C
  2. Compilatoare C #
  3. C # Comenzi
  4. C # pentru buclă
  5. Ghid pentru seria Fibonacci în C ++
  6. Seria Fibonacci În JavaScript