Úvod do série Fibonacci v C #

Řada Fibonacci v C # v řadě Fibonacci je jednou ze slavných sekvenčních řad. Sekvence je 0, 1, 1, 2, 3, 5, 8…. Fibonacciho řada začíná od nuly a jedna a další číslo je součet dvou předchozích čísel. Bylo řečeno, že série Fibonacci vytvořil pan Leonardo Pisano Bigollo ve 13. století. Fibonacciho řada je užitečná pro některé scénáře. V podstatě se původně používalo k řešení problému králíků, tj. Počtu králíků narozených z páru. Existují i ​​další problémy, ve kterých je Fibonacciho sekvence užitečná.

Logika řady Fibonacci

Stejně jako v sérii Fibonacci je číslo součtem jeho dvou předchozích čísel. Takže pokud máme Fibonacciho řadu, řekni 0, 1, 1, 2, 3, 5, 8, 13, 21… Podle tohoto dalšího čísla by byla součet jeho předchozích dvou jako 13 a 21. Takže další číslo je 13 + 21 = 34.

Zde je logika pro generování série Fibonacci

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

Kde F (n) je číslo termínu a F (n-1) + F (n-2) je součet předchozích hodnot.

Takže pokud máme řadu 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89…

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

F (n) = 55 + 89

F (n) = 144

Další termín bude 144.

Různé metody vytváření série Fibonacci

Série Fibonacci lze generovat několika způsoby

1. Iterativní přístup

Tento způsob je nejsnadnějším způsobem generování série.

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. Rekurzivní metoda

Toto je další metoda k vyřešení tohoto problému.

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

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

Výstup:

3. Fibonacci pomocí pole

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

Výstup:

Jak najít N-tý termín Fibonacciho série?

Níže jsou uvedeny metody

Metoda 1

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

Výše uvedený kód má najít n-tý termín v Fibonacciho sérii. Pokud například chceme najít 12. termín v řadě, bude výsledkem 89.

Metoda 2

(O (Log t) Čas).

Existuje ještě jeden vzorec opakování, který lze použít k nalezení t'thého Fibonacciho čísla. Pokud je t sudé, pak = t / 2:

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

Pokud je t liché, pak k = (t + 1) / 2

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

Fibonacciho matice

Po získání determinantu dostaneme (-1) t = Ft + 1Ft-1 - Ft2

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

Zadáním t = t + 1,

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

Uvedení m = t

F2t-1 = Ft2 + Ft-12

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

Abychom dostali vzorec, uděláme následující

Pokud je t sudé, dejte k = t / 2

Pokud je t liché, uveďte k = (t + 1) / 2

Takže tříděním těchto čísel můžeme zabránit tomu, aby se neustále používalo paměťové místo STACK. Dává časovou složitost O (n). Rekurzivní algoritmus je méně efektivní.

Kód:

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

Nyní, když výše uvedený algoritmus běží pro n = 4

fn (4)

f (3) f (2)

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

f (1) f (0)

Takže je to strom. Pro výpočet f (4) musíme vypočítat f (3) a f (2) atd. Pro malou hodnotu 4, f (2) se počítá dvakrát a f (1) se počítá třikrát. Tento počet přírůstků poroste o velká čísla.

Existuje domněnka, že počet přírůstků požadovaných pro výpočet f (n) je f (n + 1) -1.

Závěr

Zde je vždy preferována metoda iterace, protože má rychlejší přístup k řešení tohoto druhu problému. Zde ukládáme první a druhé číslo řady Fibonacci do předchozího a předchozího čísla (jedná se o dvě proměnné) a také pomocí aktuálního čísla ukládáme Fibonacciho číslo.

Doporučené články

Toto je průvodce Fibonacciho řadou v C #. Zde diskutujeme logiku řady Fibonacci s různými metodami a jak najít n-tý termín Fibonacciho řady. Další informace naleznete také v dalších souvisejících článcích.

  1. Fibonacciho série v C
  2. C # Kompilátory
  3. C # Příkazy
  4. C # Pro smyčku
  5. Průvodce Fibonacciho řadou v C ++
  6. Fibonacci Series V JavaScriptu

Kategorie: