Fibonacci-Reihe in Java: Wie man Fibonnaci in Java schreibt und anzeigt

Veröffentlicht: 2020-07-29

Die Fibonacci-Folge hat ihren Namen von dem italienischen Mathematiker Leonardo Fibonacci. Er führte diese Reihe bereits 1202 mit seinem Buch Liber Abaci in Westeuropa ein. Die indische Mathematikszene hatte die Fibonacci-Magie bereits 200 v. Chr. gesehen, wie die Werke von Pingala belegen. Diese Darstellung von Zahlen nimmt auch in den Bereichen des Codierens und Rechnens einen besonderen Platz ein. Am Ende dieses Erklärers werden Sie gelernt haben, wie man eine Fibonacci-Reihe in Java schreibt.

Die Ganzzahlfolge beginnt mit 0 und 1, und jede Zahl danach ist die Summe der beiden Zahlen, die ihr vorangehen, zum Beispiel 0, 1, 1, 2, 3, 5 und so weiter. Es gibt zwei Hauptwege, um es in JavaScript zu erzeugen, nämlich (i) durch Iteration, dh ohne Verwendung von Rekursion, und (ii) durch Verwendung von Rekursion. Während der iterative Ansatz lineare Zeit benötigt, um die Aufgabe zu erledigen, erhalten Sie die Lösung mit der rekursiven Technik exponentiell. Lassen Sie uns nun nacheinander auf die Details dieser Methoden eingehen.

Lesen Sie: Python vs. Javascript Throwdown: Welche sollten Sie bevorzugen?

Inhaltsverzeichnis

Schreiben von Fibonacci-Reihen in Java

Methode 1: Ohne Rekursion

  • Für Schleife

In diesem Fall soll das Java-Programm die ersten n Zahlen einer Fibonacci-Folge generieren. Hier ist ein detaillierter Blick darauf, wie die Iteration der 'for'-Schleife funktioniert.

Zunächst initialisieren Sie die ersten beiden Zahlen der Reihe. Dann addiert die For-Schleife die beiden unmittelbaren Vorgänger und gibt den Wert aus. Dieser Vorgang wird fortgesetzt, bis die ersten n Zahlen angezeigt wurden. Da das Programm vor Beginn der Iteration bereits 0 und 1 veröffentlicht hat, ist die Bedingung der For-Schleife durch n-2 gegeben.

  • While-Schleife

Sie folgt einer ähnlichen Logik wie die For-Schleifen-Methode, erfordert jedoch, dass Programmierer bei ihrer Anwendung vorsichtiger sind. Die Ablaufsteuerungsanweisung der „while“-Schleife führt Code wiederholt bei einer booleschen Bedingung aus. Nur wenn die Bedingung erfüllt oder wahr ist, wird der Schleifenkörper ausgeführt. Außerdem inkrementiert der Aktualisierungsausdruck die Schleifenvariable. Umgekehrt verlassen wir die While-Schleife, wenn die Bedingung als falsch ausgewertet wird.

Lesen Sie: Java-Architektur und -Komponenten erklärt

Betrachten wir den unten angegebenen Java-Code, um die While-Schleife besser zu verstehen:

Methode 2: Mit Rekursion

Wenn Sie die Fibonacci-Reihe in Java mit Rekursion schreiben, ruft sich die Funktion direkt oder indirekt selbst auf. Es handelt sich um eine grundlegende JavaScript-Programmiertechnik, und die Funktion wird als rekursive Funktion bezeichnet.

Rekursive Algorithmen können Ihnen helfen, komplexe Probleme mit Leichtigkeit zu lösen. Angenommen, Sie möchten die ersten 'n' Zahlen der Fibonacci-Folge mit Rekursion drucken. Sie benötigen ein rekursives Java-Programm, um die erforderliche Reihe zu generieren. Hier ist die schrittweise Erklärung einer solchen Implementierung:

  • Der Benutzer würde die Eingabe machen
  • For-Schleife würde auf Schleife angewendet, bis jede Iteration die Funktion aufruft, die die Fibonacci-Zahl an Position n zurückgibt. Sei Fibonaccinzahl (int n)
  • Dann würde sich die Funktion rekursiv selbst aufrufen und die beiden vorherigen Fibonacci-Zahlen addieren

Beispiele für Fibonacci-Reihen

Einige reale Beispiele der Fibonacci-Folge umfassen die Blütenblätter einer Blume, Tannenzapfen, Zweige von Bäumen, Spiralen von Muscheln und viele andere Darstellungen in der Natur. Diese Regel des Goldenen Schnitts dieser mathematischen Sequenz ist den grundlegendsten Eigenschaften des Universums inhärent, wie unseren DNA-Molekülen und den Spiralen von Galaxien.

Die oben beschriebenen iterativen und rekursiven Verfahren sind Implementierungen der Wiederholungsrelation der Fibonacci-Reihe. Sie ist gegeben durch: F(n) = F(n-1) + F(n-2). Wenn wir die Ausgangswerte in diese Beziehung einsetzen, erhalten wir: F(0) = 0 und F(1) = 1. Wie finden Sie für eine gegebene Zahl n die n-te Zahl in einer Fibonacci-Reihe? Betrachten wir dieses Szenario mit verschiedenen Eingaben.

  • Bei einer Eingabe n=2 wäre die Ausgabe 1
  • Bei einer Eingabe n=9 wäre das Ergebnis 34

Sie können auf diesen Grundlagen aufbauen, um eine Funktion zu schreiben, die F(n) zurückgibt. Die Funktion kann angegeben werden durch: int fib (int n). Die fib()-Funktion gibt 0 zurück, wenn n = 0. In ähnlicher Weise sollte fib() 1 zurückgeben, wenn n = 1. Und die Ausgabe sollte F(n-1) + F(n-2) für n > 1 sein.

Testfall für die Funktion fib()

Für eine kurze Sequenz, d.h. [0, 1, 1, 2, 3, 5, 8,…,55] und fib(5), würde das Ergebnis 5 ergeben. Wir wollen also ein Element mit dem Index 5 aus dem Fibonacci-Folgen-Array zurückgeben . Lassen Sie uns sehen, wie sich dies mit der iterativen Methode entwickelt.

  • Funktion fib(n){

Lassen Sie Array = [0,1];

für (sei j = 2; j < n + 1; j ++) {

array.push(array[j-2] + array[j-1])

}

Rückgabearray[n]

}

Sie können feststellen, dass wir im obigen Codeausschnitt die Array-Variable [0,1] zugewiesen haben, anstatt ein leeres Array zu erstellen. Die Schleife beginnt mit der Iteration bei j = 2 und fügt weitere Zahlen hinzu, bis die Länge des Arrays n + 1 beträgt. Auf diese Weise geben wir die Zahl am Index n zurück. Daher wäre die Ausgabe 3 für Fib (4), 5 für Fib (5) und so weiter.

Wenn Sie in einem Interview gebeten werden, dasselbe Problem durch Rekursion zu lösen, können Sie den folgenden Basisfall verwenden.

  • Funktion fib(n){

wenn (n > 2){

Rückkehr n

}

Rückgabe fib(n-1) + fib(n-2)

}

Angenommen, Sie rufen fib() mit Argument 5 auf. Hier erstellt die fib-Funktion weitere Zweige des Baums, bis sie den Basisfall erreicht (der Wert von n ist kleiner als 2), wonach sie beginnt, die Rückgabe zu summieren Werte der einzelnen Zweige. Die rekursiven Aufrufe werden nur beendet, wenn eine ganze Zahl gleich 5 ausgegeben wird.

Vorteile der Fibonacci-Reihe in Java

  • Mit einem einfachen Javascript-Programm können Sie eine Fibonacci-Reihe ausführen, um mühelos eine Reihe bis zu einer bestimmten Zahl oder einem bestimmten Begriff anzuzeigen
  • Rekursion liefert einen prägnanten und aussagekräftigen Code in Java
  • Iterative Algorithmen bieten eine hervorragende Lösung in der Produktion, da sie begrenzt sind und den Code robust halten. Im Gegensatz dazu führen rekursive Algorithmen manchmal zu Stapelüberlauffehlern
  • Die Fibonacci-Suche funktioniert in sortierten Arrays und ist leistungsfähiger als die binäre Suche, hauptsächlich wenn die Zugriffsgeschwindigkeit von dem zuvor aufgerufenen Ort abhängt
  • Die Vertrautheit mit der Fibonacci-Reihe ermöglicht es den Schülern, Logik zu entwickeln, während sie an modernen Anwendungen arbeiten, die verschiedene Front-End- und Back-End-Funktionalitäten erfordern

Schauen Sie sich an: Java-Projektideen

Zusammenfassen

In diesem Artikel haben wir versucht, Ihnen bei der Implementierung einer Fibonacci-Reihe in Java zu helfen und die Logik hinter verschiedenen Methoden zu verstehen. Sie können Fibonacci-Zahlen mit Rekursion oder ohne Rekursion (For-Schleife und While-Schleife) darstellen. Danach haben wir die Kernkonzepte der beiden Methoden aufgefrischt und auch ihre Vorteile besprochen.

Mit all diesen Informationen können Sie Ihr Wissen über Algorithmen auffrischen und besseren Code schreiben. Am besten wäre es, wenn Sie auch ein gutes Verständnis von Datenstrukturen wie Arrays, Binärbäumen, verknüpften Listen usw. hätten. Verwenden Sie den obigen Artikel als Ausgangspunkt für Ihre Wiederholung und bauen Sie Ihre Programmierkenntnisse aus!

Wenn Sie mehr über Java und Full-Stack-Softwareentwicklung erfahren möchten, schauen Sie sich das PG-Diplom in Full-Stack-Softwareentwicklung von upGrad & IIIT-B an, das für Berufstätige konzipiert ist und mehr als 500 Stunden strenge Schulungen und mehr als 9 Projekte bietet und Aufgaben, IIIT-B-Alumni-Status, praktische praktische Schlusssteinprojekte und Arbeitsunterstützung bei Top-Unternehmen.

Landen Sie in Ihrem Traumjob

UPGRAD UND IIIT-BANGALORES PG-DIPLOM IN FULL-STACK-ENTWICKLUNG
Jetzt bewerben