Introduktion till Fibonacci-serien i C #

Fibonacci-serien i C # i Fibonacci-serien är en av de berömda sekvensserierna. Sekvensen är 0, 1, 1, 2, 3, 5, 8 …. Fibonacci-serien börjar från noll och ett och nästa nummer är summan av två föregående siffror. Det har sagts att Fibonacci-serien skapades av Mr.Leonardo Pisano Bigollo på 1200-talet. Fibonacci-serien är användbar för vissa scenarier. I grund och botten användes det ursprungligen för att lösa kaninproblemet, dvs antalet kaniner födda från ett par. Det finns andra problem där Fibonacci-sekvensen är användbar.

Fibonacci-seriens logik

Liksom i Fibonacci-serien är numret summan av dess två föregående nummer. Så om vi har en Fibonacci-serie säger du 0, 1, 1, 2, 3, 5, 8, 13, 21 … Enligt detta kommer nästa nummer att vara summan av de föregående två som 13 och 21. Så nästa nummer är 13 + 21 = 34.

Här är logiken för att generera Fibonacci-serien

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

Där F (n) är termnummer och F (n-1) + F (n-2) är en summa av föregående värden.

Så om vi har serier 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 …

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

F (n) = 55 + 89

F (n) = 144

Nästa mandatperiod skulle vara 144.

Olika metoder för att skapa Fibonacci-serien

Fibonacci-serien kan genereras på flera sätt

1. Iterativ metod

Detta sätt är det enklaste sättet att generera serier.

Koda:

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. Rekursiv metod

Detta är en annan metod för att lösa detta problem.

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

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

Produktion:

3. Fibonacci med Array

Koda:

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

Produktion:

Hur hittar jag den nionde termen i Fibonacci-serien?

Följande är metoderna

Metod 1

Koda:

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

Ovanstående kod är att hitta den nionde termen i Fibonacci-serien. Om vi ​​till exempel vill hitta den 12: e termen i serien skulle resultatet bli 89.

Metod 2

(O (Log t) Tid).

Det finns varandra återkommande formel som kan användas för att hitta det Fibonacci-talet Om t är jämnt då = t / 2:

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

Om t är udda så är k = (t + 1) / 2

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

Fibonacci-matris

Efter att ha fått en bestämning får vi (-1) t = Ft + 1Ft-1 - Ft2

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

Genom att sätta t = t + 1,

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

Sätta m = t

F2t-1 = Ft2 + Ft-12

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

För att få formeln gör vi följande

Om t är jämnt, sätt k = t / 2

Om t är udda, sätt k = (t + 1) / 2

Så genom att sortera dessa nummer kan vi förhindra att minnesutrymmet ständigt används i STACK. Det ger tidskomplexitet av O (n). Den rekursiva algoritmen är mindre effektiv.

Koda:

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

Nu när ovanstående algoritm körs för n = 4

fn (4)

f (3) f (2)

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

f (1) f (0)

Så det är ett träd. För att beräkna f (4) måste vi beräkna f (3) och f (2) och så vidare. För ett litet värde på 4 beräknas f (2) två gånger och f (1) beräknas tre gånger. Detta antal tillägg växer för stort antal.

Det finns en antagande om att antalet tillägg som krävs för att beräkna f (n) är f (n + 1) -1.

Slutsats

Här föredras iterationsmetoden alltid eftersom den har en snabbare strategi för att lösa den här typen av problem. Här lagrar vi det första och det andra numret på Fibonacci-serien i föregående nummer och föregående nummer (det här är två variabler) och vi använder också det aktuella numret för att lagra Fibonacci-numret.

Rekommenderade artiklar

Detta är en guide till Fibonacci-serien i C #. Här diskuterar vi Fibonacci-seriens logik med olika metoder och hur man hittar den nionde termen i Fibonacci-serien. Du kan också gå igenom våra andra relaterade artiklar för att lära dig mer-

  1. Fibonacci-serien i C.
  2. C # Compilers
  3. C # Kommandon
  4. C # för slinga
  5. Guide till Fibonacci-serien i C ++
  6. Fibonacci-serien i JavaScript

Kategori: