Введение в ряд Фибоначчи в 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 (Log 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

Положить м = т

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

п (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