Johdanto Cibonacci-sarjaan C #

Fibonacci-sarjan C # Fibonacci-sarja on yksi kuuluisista sekvenssisarjoista. Sarja on 0, 1, 1, 2, 3, 5, 8…. Fibonacci-sarja alkaa nollasta ja yksi ja seuraava luku on kahden edeltävän numeron summa. On sanottu, että Mr. Leonardo Pisano Bigollon 1300 - luvulla luoma Fibonacci-sarja. Fibonacci-sarja on hyödyllinen joissain skenaarioissa. Pohjimmiltaan sitä käytettiin kanin ongelman ratkaisemiseen eli parista syntyneiden kanien lukumäärään. On myös muita ongelmia, joissa Fibonacci-sekvenssi on käyttökelpoinen.

Fibonacci-sarjan logiikka

Kuten Fibonacci-sarjassa, luku on kahden edeltävän numeron summa. Joten jos meillä on Fibonacci-sarja, sano 0, 1, 1, 2, 3, 5, 8, 13, 21… Tämän mukaan seuraava luku olisi sen edeltävien kahden, kuten 13 ja 21. summa. Joten seuraava luku on 13 + 21 = 34.

Tässä on Fibonacci-sarjojen generoinnin logiikka

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

Kun F (n) on termi numero ja F (n-1) + F (n-2) on edeltävien arvojen summa.

Joten jos meillä on sarja 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 …

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

F (n) = 55 + 89

F (n) = 144

Seuraava toimikausi olisi 144.

Erilaisia ​​menetelmiä Fibonacci-sarjan luomiseen

Fibonacci-sarjat voidaan luoda usealla tavalla

1. Iteratiivinen lähestymistapa

Tämä tapa on helpoin tapa tuottaa sarjoja.

Koodi:

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. Rekursiivinen menetelmä

Tämä on toinen tapa ratkaista tämä ongelma.

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

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

lähtö:

3. Fibonacci käyttämällä Array: ta

Koodi:

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

lähtö:

Kuinka löytää Fibonacci-sarjan yhdeksäs terminaali?

Seuraavassa on menetelmät

Menetelmä 1

Koodi:

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

Yllä oleva koodi on löytää yhdeksäs termi Fibonacci-sarjasta. Esimerkiksi, jos haluamme löytää sarjan 12. aikavälin, tulos olisi 89.

Menetelmä 2

(O (Loki t) Aika).

On olemassa toinen toistuvuuskaava, jota voidaan käyttää fibonacci-luvun löytämiseen Jos t on jopa sitten = t / 2:

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

Jos t on pariton, niin k = (t + 1) / 2

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

Fibonacci-matriisi

Saatuaan determinantin saadaan (-1) t = Ft + 1Ft-1 - Ft2

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

Laittamalla t = t + 1,

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

Asettamalla m = t

F2t-1 = Ft2 + Ft-12

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

Kaavan saamiseksi teemme seuraavat

Jos t on tasainen, aseta k = t / 2

Jos t on pariton, aseta k = (t + 1) / 2

Joten lajittelemalla nämä numerot voimme estää STACK: n jatkuvan käytön. Se antaa O (n): n aikakompleksisuuden. Rekursiivinen algoritmi ei ole yhtä tehokas.

Koodi:

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

Nyt kun yllä oleva algoritmi suoritetaan n = 4

fn (4)

f (3) f (2)

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

f (1) f (0)

Joten se on puu. F (4): n laskemista varten on laskettava f (3) ja f (2) ja niin edelleen. Pienen arvon 4 tapauksessa f (2) lasketaan kahdesti ja f (1) lasketaan kolme kertaa. Tämä lisäysten määrä kasvaa suurille määrille.

Arvataan, että f (n): n laskemiseen tarvittavien lisäysten lukumäärä on f (n + 1) -1.

johtopäätös

Tässä toistetaan iterointimenetelmä aina, koska sillä on nopeampi lähestymistapa tällaisen ongelman ratkaisemiseksi. Tallennamme tässä Fibonacci-sarjan ensimmäisen ja toisen numeron edelliseen numeroon ja edelliseen numeroon (nämä ovat kaksi muuttujaa) ja myös Fibonacci-numeron tallentamiseen käytämme nykyistä numeroa.

Suositellut artikkelit

Tämä on opas Fibonacci-sarjaan C #: ssä. Tässä keskustellaan Fibonacci-sarjan logiikasta erilaisilla menetelmillä ja miten löytää Fibonacci-sarjan yhdeksäs termi. Voit myös käydä läpi muiden aiheeseen liittyvien artikkeleidemme saadaksesi lisätietoja-

  1. Fibonacci-sarja C: ssä
  2. C # Kääntäjät
  3. C # komennot
  4. C # Loop
  5. Opas Fibonacci-sarjaan C ++: ssa
  6. Fibonacci-sarja JavaScriptinä