Introduzione alla serie Fibonacci in C #

La serie Fibonacci in C # della serie Fibonacci è una delle famose serie sequenziali. La sequenza è 0, 1, 1, 2, 3, 5, 8…. La serie di Fibonacci inizia da zero e uno e il numero successivo è la somma di due numeri precedenti. È stato detto che la serie Fibonacci creata da Leonardo Pisano Bigollo nel 13 ° secolo. La serie Fibonacci è utile per alcuni scenari. Fondamentalmente è stato originariamente utilizzato per risolvere il problema del coniglio, ovvero il numero di conigli nati da una coppia. Esistono anche altri problemi in cui la sequenza di Fibonacci è utile.

Logica serie Fibonacci

Come nella serie Fibonacci, il numero è la somma dei suoi due numeri precedenti. Quindi se abbiamo una serie di Fibonacci diciamo 0, 1, 1, 2, 3, 5, 8, 13, 21 … Secondo questo prossimo numero sarebbe la somma dei suoi due precedenti come 13 e 21. Quindi il prossimo numero è 13 + 21 = 34.

Ecco la logica per generare la serie di Fibonacci

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

Dove F (n) è il numero del termine e F (n-1) + F (n-2) è una somma dei valori precedenti.

Quindi, se abbiamo serie 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89 …

Secondo la logica F (n) = F (n-1) + F (n-2)

F (n) = 55 + 89

F (n) = 144

Il prossimo termine sarebbe 144.

Vari metodi di creazione della serie Fibonacci

Le serie di Fibonacci possono essere generate in più modi

1. Approccio iterativo

In questo modo è il modo più semplice per generare serie.

Codice:

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. Metodo ricorsivo

Questo è un altro metodo per risolvere questo problema.

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

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

Produzione:

3. Fibonacci usando Array

Codice:

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

Produzione:

Come trovare l'ennesimo termine della serie di Fibonacci?

Di seguito sono riportati i metodi

Metodo 1

Codice:

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

Il codice sopra è quello di trovare l'ennesimo termine nella serie di Fibonacci. Ad esempio, se vogliamo trovare il 12 ° termine della serie, il risultato sarebbe 89.

Metodo 2

(O (Registro t) Tempo).

Esiste un'altra formula di ricorrenza che può essere utilizzata per trovare il numero di Fibonacci Se t è pari allora = t / 2:

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

Se t è dispari, allora k = (t + 1) / 2

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

Matrice di Fibonacci

Dopo aver ottenuto il determinante, otterremo (-1) t = Ft + 1Ft-1 - Ft2

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

Mettendo t = t + 1,

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

Mettere m = t

F2t-1 = Ft2 + Ft-12

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

Per ottenere la formula faremo quanto segue

Se t è pari, inserisci k = t / 2

Se t è dispari, inserisci k = (t + 1) / 2

Quindi, ordinando questi numeri, possiamo impedire l'uso costante dello spazio di memoria di STACK. Dà complessità temporale di O (n). L'algoritmo ricorsivo è meno efficiente.

Codice:

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

Ora quando l'algoritmo sopra funziona per n = 4

fn (4)

f (3) f (2)

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

f (1) f (0)

Quindi è un albero. Per calcolare f (4) dobbiamo calcolare f (3) ef (2) e così via. Per un piccolo valore di 4, f (2) viene calcolato due volte e f (1) viene calcolato tre volte. Questo numero di aggiunte aumenterà per grandi numeri.

C'è una congettura che il numero di aggiunte necessarie per calcolare f (n) è f (n + 1) -1.

Conclusione

Qui il metodo di iterazione è sempre preferito perché ha un approccio più veloce per risolvere questo tipo di problema. Qui stiamo memorizzando il primo e il secondo numero delle serie di Fibonacci nel numero precedente e nel numero precedente (queste sono due variabili) e inoltre stiamo usando il numero corrente per memorizzare il numero di Fibonacci.

Articoli consigliati

Questa è una guida alla serie Fibonacci in C #. Qui discutiamo della logica della serie Fibonacci con diversi metodi e come trovare l'ennesimo termine della serie Fibonacci. Puoi anche consultare i nostri altri articoli correlati per saperne di più-

  1. Serie di Fibonacci in C.
  2. Compilatori C #
  3. Comandi C #
  4. C # per loop
  5. Guida alla serie Fibonacci in C ++
  6. Serie Fibonacci in JavaScript

Categoria: