Вступ до серії Фібоначчі в 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 / 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