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č -
- Fibonaccijeva serija v C
- C # prevajalniki
- C # ukazi
- C # Za zanko
- Vodnik po Fibonaccijevih serijah v C ++
- Serija Fibonaccije v JavaScript