Introduction à la série Fibonacci en C #

La série Fibonacci en C # de la série Fibonacci est l'une des célèbres séries de séquences. La séquence est 0, 1, 1, 2, 3, 5, 8…. La série de Fibonacci commence à zéro et à un et le nombre suivant est la somme de deux nombres précédents. Il a été dit que la série Fibonacci créée par M. Leonardo Pisano Bigollo au 13ème siècle. La série de Fibonacci est utile pour certains scénarios. Fondamentalement, il a été utilisé à l'origine pour résoudre le problème des lapins, à savoir le nombre de lapins nés d'une paire. Il existe également d'autres problèmes dans lesquels la séquence de Fibonacci est utile.

Logique de la série Fibonacci

Comme dans la série de Fibonacci, le nombre est la somme de ses deux nombres précédents. Donc, si nous avons une série de Fibonacci disons 0, 1, 1, 2, 3, 5, 8, 13, 21… Selon ce nombre suivant serait la somme de ses deux précédents comme 13 et 21. Donc, le nombre suivant est 13 + 21 = 34.

Voici la logique de génération de la série Fibonacci

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

Où F (n) est le numéro du terme et F (n-1) + F (n-2) est une somme des valeurs précédentes.

Donc, si nous avons les séries 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89…

Selon la logique F (n) = F (n-1) + F (n-2)

F (n) = 55 + 89

F (n) = 144

Le prochain mandat serait de 144.

Diverses méthodes de création de la série Fibonacci

La série Fibonacci peut être générée de plusieurs manières

1. Approche itérative

Cette façon est la façon la plus simple de générer des séries.

Code:

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. Méthode récursive

Il s'agit d'une autre méthode pour résoudre ce problème.

Méthode 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();
)
)
)

Méthode 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();
)
)
)

Production:

3. Fibonacci en utilisant Array

Code:

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

Production:

Comment trouver le Nième terme de la série Fibonacci?

Voici les méthodes

Méthode 1

Code:

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

Le code ci-dessus est de trouver le nième terme dans la série de Fibonacci. Par exemple, si nous voulons trouver le 12 e terme de la série, le résultat serait 89.

Méthode 2

(O (Log t) Time).

Il existe une autre formule de récurrence qui peut être utilisée pour trouver le nombre de Fibonacci Si t est pair alors = t / 2:

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

Si t est impair alors k = (t + 1) / 2

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

Matrice de Fibonacci

Après avoir obtenu le déterminant, nous obtiendrons (-1) t = Ft + 1Ft-1 - Ft2

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

En mettant t = t + 1,

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

Mettre m = t

F2t-1 = Ft2 + Ft-12

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

Pour obtenir la formule, nous ferons ce qui suit

Si t est pair, mettez k = t / 2

Si t est impair, mettez k = (t + 1) / 2

Ainsi, en triant ces nombres, nous pouvons empêcher l'utilisation constante de l'espace mémoire de STACK. Il donne la complexité temporelle de O (n). L'algorithme récursif est moins efficace.

Code:

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

Maintenant, lorsque l'algorithme ci-dessus s'exécute pour n = 4

fn (4)

f (3) f (2)

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

f (1) f (0)

C'est donc un arbre. Pour calculer f (4), nous devons calculer f (3) et f (2), etc. Pour une petite valeur de 4, f (2) est calculé deux fois et f (1) est calculé trois fois. Ce nombre d'ajouts augmentera pour de grands nombres.

Il y a une conjecture que le nombre d'additions nécessaires pour calculer f (n) est f (n + 1) -1.

Conclusion

Ici, la méthode d'itération est toujours préférée car elle a une approche plus rapide pour résoudre ce type de problème. Ici, nous stockons le premier et le deuxième nombre de séries de Fibonacci dans le numéro précédent et le numéro précédent (ce sont deux variables) et nous utilisons également le numéro actuel pour stocker le numéro de Fibonacci.

Articles recommandés

Ceci est un guide de la série Fibonacci en C #. Ici, nous discutons de la logique de la série Fibonacci avec différentes méthodes et comment trouver le nième terme de la série Fibonacci. Vous pouvez également consulter nos autres articles connexes pour en savoir plus-

  1. Série Fibonacci en C
  2. Compilateurs C #
  3. Commandes C #
  4. C # pour boucle
  5. Guide de la série Fibonacci en C ++
  6. Série Fibonacci en JavaScript