Въведение в сериите на Фибоначи в C #

Серията Фибоначи в C # в серията Фибоначи е една от известните серии последователности. Последователността е 0, 1, 1, 2, 3, 5, 8…. Серията Фибоначи започва от нула и едно, а следващото число е сумата от две предходни числа. Казано е, че серията Фибоначи, създадена от Леонардо Писано Биголо през 13 век. Поредицата от Фибоначи е полезна за някои сценарии. Поначало той първоначално е бил използван за решаване на проблема със зайците, т.е. Броят на зайците, родени от двойка. Има и други проблеми, при които последователността на Фибоначи е полезна.

Логика от серията Фибоначи

Както в серията на Фибоначи, числото е сборът на двете му предходни числа. Така че, ако имаме серия на Фибоначи, кажете 0, 1, 1, 2, 3, 5, 8, 13, 21 … Според това следващо число ще бъде сумата от предходните му две като 13 и 21. Следователно следващото число е 13 + 21 = 34.

Ето логиката за генериране на серии от Фибоначи

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

Когато F (n) е число на термина и F (n-1) + F (n-2) е сбор от предходни стойности.

Така че, ако имаме серии 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 …

Според логиката F (n) = F (n-1) + F (n-2)

F (n) = 55 + 89

F (n) = 144

Следващият мандат ще бъде 144.

Различен метод за създаване на серии от Фибоначи

Поредицата от Фибоначи може да се генерира по много начини

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
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. Рекурсивен метод

Това е друг метод за решаване на този проблем.

Метод 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();
)
)
)

Метод 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();
)
)
)

изход:

3. Фибоначи с помощта на масив

Код:

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

изход:

Как да намерите N-ия термин от сериите на Фибоначи?

Следват методите

Метод 1

Код:

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

Горният код е да се намери n-тия термин в серията на Фибоначи. Например, ако искаме да намерим 12 -ия термин в поредицата, резултатът ще бъде 89.

Метод 2

(O (Време на t) Време).

Има още една формула за повторение, която може да се използва за намиране на t-то число на Фибоначи, ако t е дори тогава = t / 2:

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

Ако t е нечетно, тогава k = (t + 1) / 2

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

Матрицата на Фибоначи

След получаване на детерминант ще получим (-1) t = Ft + 1Ft-1 - Ft2

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

Слагайки t = t + 1,

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

Поставяне на m = t

F2t-1 = Ft2 + Ft-12

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

За да получим формулата, ще направим следното

Ако t е равно, поставете k = t / 2

Ако t е нечетно, поставете k = (t + 1) / 2

Така че чрез сортиране на тези числа можем да предотвратим постоянно използваното пространство за памет на STACK. Дава сложна време на O (n). Рекурсивният алгоритъм е по-малко ефективен.

Код:

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

Сега, когато горният алгоритъм работи за n = 4

Fn (4)

f (3) f (2)

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

f (1) f (0)

Значи това е дърво. За изчисляване на f (4) трябва да изчислим f (3) и f (2) и т. Н. За малка стойност от 4, f (2) се изчислява два пъти и f (1) се изчислява три пъти. Този брой допълнения ще расте за голям брой.

Има предположение, че броят на добавките, необходими за изчисляване на f (n), е f (n + 1) -1.

заключение

Тук методът на итерация винаги се предпочита, тъй като има по-бърз подход за решаване на този вид проблем. Тук съхраняваме първото и второто число на сериите на Фибоначи в предишното число и предишното число (това са две променливи), а също така използваме текущото число, за да съхраним числото на Фибоначи.

Препоръчителни статии

Това е ръководство за сериите на Фибоначи в C #. Тук обсъждаме логиката на серията Фибоначи с различни методи и как да намерим n-ия термин от серията Фибоначи. Можете също да разгледате и другите ни свързани статии, за да научите повече-

  1. Серия на Фибоначи в С
  2. C # Съставители
  3. C # Команди
  4. C # За контур
  5. Ръководство за сериите на Фибоначи в C ++
  6. Серия на Фибоначи в JavaScript