Bevezetés a Cibonacci sorozatba

A C # Fibonacci sorozat a Fibonacci sorozatban az egyik a híres sorozat sorozat. A sorrend 0, 1, 1, 2, 3, 5, 8…. A Fibonacci sorozat nullától kezdődik, és az egyik, a következő szám pedig az előző két szám összegét jelenti. Azt mondják, hogy a Leibardo Pisano Bigollo által a 13. században létrehozott Fibonacci sorozat. A Fibonacci sorozat bizonyos forgatókönyvekhez hasznos. Alapvetően eredetileg a nyúlprobléma, azaz a párból született nyulak számának megoldására használták. Vannak más problémák is, amelyekben a Fibonacci-szekvencia hasznos.

Fibonacci sorozat logika

Mint a Fibonacci sorozatban, a szám két előző számának összege. Tehát ha van egy Fibonacci-sorozatunk, mondjuk a 0, 1, 1, 2, 3, 5, 8, 13, 21… E szerint a következő szám az előző kettő összege, például a 13 és a 21. Ez tehát a következő szám 13 + 21 = 34.

Itt van a Fibonacci sorozat létrehozásának logikája

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

Ahol F (n) a kifejezés száma, és F (n-1) + F (n-2) az előző értékek összege.

Tehát ha van 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 sorozat

A logika szerint F (n) = F (n-1) + F (n-2)

F (n) = 55 + 89

F (n) = 144

A következő ciklus 144.

Különböző módszer a Fibonacci sorozat létrehozására

A Fibonacci sorozat többféle módon generálható

1. Iteratív megközelítés

Ez a módszer a sorozat előállításának legegyszerűbb módja.

Kód:

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. Rekurzív módszer

Ez egy másik módszer a probléma megoldására.

1. módszer

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. módszer

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

Kimenet:

3. Fibonacci Array használatával

Kód:

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

Kimenet:

Hogyan lehet megtalálni a Fibonacci sorozat n.

Az alábbiakban bemutatjuk a módszereket

1. módszer

Kód:

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

A fenti kód a Fibonacci sorozat n-edik kifejezését tartalmazza. Például, ha meg akarjuk találni a 12. ciklust a sorozatban, akkor az eredmény 89 lesz.

2. módszer

(O (Log t) Idő).

Van egy másik ismétlődési formula, amellyel megtalálható a tizedik Fibonacci-szám, ha t még akkor is = t / 2:

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

Ha t páratlan, akkor k = (t + 1) / 2

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

Fibonacci mátrix

A meghatározó meghatározása után (-1) t = Ft + 1Ft-1 - Ft2 lesz

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

T = t + 1 megadásával

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

M = t megadása

F2t-1 = Ft2 + Ft-12

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

A képlet megszerzéséhez az alábbiakat kell tennünk

Ha t egyenletes, akkor tegye k = t / 2-t

Ha t páratlan, akkor tegye k = (t + 1) / 2-t

Tehát ezeknek a számoknak a rendezésével megakadályozhatjuk a STACK folyamatos memóriaterületét. O (n) időbeli összetettségét adja meg. A rekurzív algoritmus kevésbé hatékony.

Kód:

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

Most, amikor a fenti algoritmus n = 4-re fut

fn (4)

f (3) f (2)

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

f (1) f (0)

Tehát ez egy fa. Az f (4) kiszámításához kiszámítanunk kell az f (3) és f (2) és így tovább.Kicsi 4 értéknél f (2) kétszer és f (1) háromszor kerül kiszámításra. Ez a kiegészítés nagy számban növekszik.

Feltételezzük, hogy az f (n) kiszámításához szükséges kiegészítések száma f (n + 1) -1.

Következtetés

Itt mindig az iterációs módszert részesítjük előnyben, mivel gyorsabb megközelítést alkalmaz az ilyen típusú problémák megoldására. A Fibonacci sorozat első és második számát az előző és az előző számban tároljuk (ezek két változó), és a Fibonacci szám tárolására az aktuális számot használjuk.

Ajánlott cikkek

Ez egy útmutató a C # Fibonacci sorozatához. Itt tárgyaljuk a Fibonacci sorozat logikáját különböző módszerekkel, és hogyan találjuk meg a Fibonacci sorozat n. Terminusát. Megnézheti más kapcsolódó cikkeinket, hogy többet megtudjon-

  1. Fibonacci sorozat, C
  2. C # Összeállítók
  3. C # parancsok
  4. C # hurokhoz
  5. Útmutató a C ++ Fibonacci sorozathoz
  6. Fibonacci sorozat a JavaScript-ben

Kategória: