Uvod v Fibonaccijevo serijo v C #

Serija Fibonaccije v C # v seriji Fibonaccije je ena izmed znanih serij zaporedja. Zaporedje je 0, 1, 1, 2, 3, 5, 8…. Serija Fibonaccije se začne od nič in ena, naslednje število pa je vsota dveh predhodnih števil. Govorilo se je, da je serija Fibonacije, ki jo je v 13. stoletju ustvaril gospod Leonnardo Pisano Bigollo. Serija Fibonaccije je uporabna za nekatere scenarije. V bistvu je bil prvotno uporabljen za reševanje zajčje težave, tj. Število zajcev, rojenih iz para. Obstajajo tudi druge težave, pri katerih je koristno zaporedje Fibonaccije.

Logika Fibonaccijeve serije

Kot v Fibonaccijevem nizu je število vsota njegovih dveh prejšnjih števil. Če torej imamo Fibonaccijevo vrsto, recimo 0, 1, 1, 2, 3, 5, 8, 13, 21 … Glede na to bi bilo naslednje število vsota njegovih prejšnjih dveh, kot sta 13 in 21. Torej, naslednje število je 13 + 21 = 34.

Tu je logika za ustvarjanje Fibonaccijevih serij

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

Če je F (n) izraz številka in F (n-1) + F (n-2), je vsota predhodnih vrednosti.

Če imamo torej serije 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 …

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

F (n) = 55 + 89

F (n) = 144

Naslednji mandat bi bil 144.

Različna metoda ustvarjanja Fibonaccijevih serij

Serije Fibonaccije je mogoče ustvariti na več načinov

1. Iterativni pristop

Tako je najlažji način ustvarjanja serij.

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. rekurzivna metoda

To je še ena metoda za rešitev te težave.

1. metoda

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

2. metoda

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

Izhod:

3. Fibonacije z uporabo 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);
)
)
)

Izhod:

Kako najti N-ti termin Fibonaccijeve serije?

Sledijo metode

1. metoda

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

Zgornja koda najti n-ti izraz v Fibonaccijevem nizu. Na primer, če želimo najti 12. izraz v seriji, bi bil rezultat 89.

2. metoda

(O (Log t) Čas).

Obstaja še ena formula ponovitve, s katero lahko najdemo Fibonaccijevo število, če je t celo 0 = t / 2:

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

Če je t neparno, je k = (t + 1) / 2

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

Fibonacijeva matrica

Ko dobimo določitev, bomo dobili (-1) t = Ft + 1Ft-1 - Ft2

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

S postavitvijo t = t + 1

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

Postavitev m = t

F2t-1 = Ft2 + Ft-12

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

Da bi dobili formulo, bomo naredili naslednje

Če je t enakomeren, vstavite k = t / 2

Če je t lih, vstavite k = (t + 1) / 2

Tako lahko s sortiranjem teh številk preprečimo, da bi stalno uporabljali spominski prostor STACK. Daje časovno zapletenost O (n). Rekurzivni algoritem je manj učinkovit.

Koda:

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

Zdaj, ko zgornji algoritem deluje za n = 4

fn (4)

f (3) f (2)

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

f (1) f (0)

Torej je drevo. Za izračun f (4) moramo izračunati f (3) in f (2) in tako naprej. Za majhno vrednost 4 se f (2) izračuna dvakrat in f (1) izračuna trikrat. To število dodatkov bo naraščalo za veliko število.

Obstaja domneva, da je število dodatkov, potrebnih za izračun f (n), f (n + 1) -1.

Zaključek

Tu je metoda iteracije vedno prednostna, ker ima hitrejši pristop k reševanju te težave. Tu shranjujemo prvo in drugo številko Fibonaccijevih vrst v prejšnjem številu in prejšnji številki (to sta dve spremenljivki), prav tako pa trenutno uporabljamo trenutno številko za shranjevanje Fibonaccijevega števila.

Priporočeni članki

To je priročnik za Fibonaccijeve serije v C #. Tukaj razpravljamo o logiki Fibonaccijeve serije z različnimi metodami in kako najti n-ti izraz Fibonaccijeve serije. Obiščite lahko tudi druge naše sorodne članke, če želite izvedeti več -

  1. Fibonaccijeva serija v C
  2. C # prevajalniki
  3. C # ukazi
  4. C # Za zanko
  5. Vodnik po Fibonaccijevih serijah v C ++
  6. Serija Fibonaccije v JavaScript