Inleiding tot de Fibonacci-serie in C #

De Fibonacci-serie in C # in de Fibonacci-serie is een van de beroemde reeks series. De reeks is 0, 1, 1, 2, 3, 5, 8…. De Fibonacci-serie begint vanaf nul en een en het volgende nummer is de som van twee voorgaande nummers. Er is gezegd dat de Fibonacci-serie in de 13e eeuw is gemaakt door Mr. Leonardo Pisano Bigollo. Fibonacci-serie is nuttig voor sommige scenario's. In feite werd het oorspronkelijk gebruikt om het konijnprobleem op te lossen, dwz het aantal konijnen dat uit een paar werd geboren. Er zijn ook andere problemen waarbij de Fibonacci-reeks nuttig is.

Fibonacci-serie logica

Net als in de Fibonacci-serie is het nummer de som van de twee voorgaande nummers. Dus als we een Fibonacci-serie hebben, zeg dan 0, 1, 1, 2, 3, 5, 8, 13, 21 … Volgens dit volgende getal zou de som zijn van de voorgaande twee zoals 13 en 21. Dus het volgende nummer is 13 + 21 = 34.

Hier is de logica voor het genereren van Fibonacci-series

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

Waarin F (n) termnummer is en F (n-1) + F (n-2) een som van voorgaande waarden is.

Dus als we serie 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 hebben …

Volgens de logica F (n) = F (n-1) + F (n-2)

F (n) = 55 + 89

F (n) = 144

De volgende termijn zou 144 zijn.

Verschillende methode voor het maken van Fibonacci-serie

Fibonacci-serie kan op meerdere manieren worden gegenereerd

1. Iteratieve aanpak

Op deze manier is de eenvoudigste manier om series te genereren.

Code:

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. Recursieve methode

Dit is een andere methode om dit probleem op te lossen.

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

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

Output:

3. Fibonacci met behulp van array

Code:

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

Output:

Hoe de Nth Term van Fibonacci-serie te vinden?

Hieronder volgen de methoden

Methode 1

Code:

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

De bovenstaande code is om de nde term in de Fibonacci-serie te vinden. Als we bijvoorbeeld de 12e term in de serie willen vinden, zou het resultaat 89 zijn.

Methode 2

(O (Log t) Tijd).

Er is nog een herhalingsformule die kan worden gebruikt om het Fibonacci-getal te vinden. Als t gelijk is dan = t / 2:

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

Als t oneven is, dan is k = (t + 1) / 2

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

Fibonacci-matrix

Na het bepalen van de determinant, krijgen we (-1) t = Ft + 1Ft-1 - Ft2

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

Door t = t + 1 te zetten,

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

Putting m = t

F2t-1 = Ft2 + Ft-12

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

Om de formule te krijgen, zullen we het volgende doen

Als t even is, zet k = t / 2

Als t oneven is, zet k = (t + 1) / 2

Dus door deze nummers te sorteren, kunnen we voorkomen dat STACK constant geheugenruimte gebruikt. Het geeft tijdcomplexiteit van O (n). Het recursieve algoritme is minder efficiënt.

Code:

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

Nu wanneer het bovenstaande algoritme wordt uitgevoerd voor n = 4

fn (4)

f (3) f (2)

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

f (1) f (0)

Dus het is een boom. Voor het berekenen van f (4) moeten we f (3) en f (2) enzovoort berekenen. Voor een kleine waarde van 4 wordt f (2) twee keer berekend en wordt f (1) driemaal berekend. Dit aantal toevoegingen groeit met grote aantallen.

Er is een vermoeden dat het aantal benodigde toevoegingen voor het berekenen van f (n) f (n + 1) -1 is.

Conclusie

Hier heeft de iteratiemethode altijd de voorkeur omdat het een snellere aanpak heeft om dit soort problemen op te lossen. Hier slaan we het eerste en het tweede aantal Fibonacci-series op in het vorige nummer en het vorige nummer (dit zijn twee variabelen) en ook gebruiken we het huidige nummer om het Fibonacci-nummer op te slaan.

Aanbevolen artikelen

Dit is een handleiding voor de Fibonacci-serie in C #. Hier bespreken we de Fibonacci-serie logica met verschillende methoden en hoe we de nde term van de Fibonacci-serie vinden. U kunt ook onze andere gerelateerde artikelen doornemen voor meer informatie-

  1. Fibonacci-serie in C
  2. C # Compilers
  3. C # Commando's
  4. C # voor lus
  5. Handleiding voor Fibonacci-serie in C ++
  6. Fibonacci-serie in JavaScript