Fibonacci-Zahlen sind eine bestimmte Sequenz, in der der erste Wert als 0 vorgezogen wird und der zweite Wert als 1 vorgezeichnet ist. Der Rest der Zahlen wird aus diesen beiden erzeugt, indem die beiden vorherigen Zahlen hinzugefügt werden. Alle Fibonacci -Zahlen sind positive Ganzzahlen, beginnend von 0. Die ersten zwölf Fibonacci -Zahlen und wie sie erhalten werden, sind wie folgt:
0
1
1 + 0 = 1
1 + 1 = 2
2 + 1 = 3
3 + 2 = 5
5 + 3 = 8
8 + 5 = 13
13 + 8 = 21
21 + 13 = 34
34 + 21 = 55
55 + 34 = 89
Ohne die Summenausdrücke können diese Fibonacci -Zahlen wie folgt in eine Tabelle gestellt werden:
0 | 1 | 1 | 2 | 3 | 5 | 8 | 13 | 21 | 34 | 55 | 89 |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
Die erste Reihe hat die Fibonacci -Zahlen. Die zweite Zeile verfügt.
Fibonacci -Zahlen können in O (n) Zeit und in o (1) Zeit erzeugt werden. In diesen zeitlichen Komplexitätsausdrücken bedeutet N n Hauptvorgänge und 1 Hauptbetrieb 1 Hauptbetrieb. Mit O (n) werden N -Fibonacci -Zahlen erzeugt, ab 0 ab 0. Mit O (1) wird eine Fibonacci -Zahl aus einem entsprechenden Index hergestellt. Deshalb dauert es nur einen Hauptvorgang anstelle von N -Hauptoperationen.
Ziel dieses Artikels ist es zu erklären.
Formel für eine Fibonacci -Nummer
Die formale Definition einer Fibonacci -Nummer lautet:
wo fN ist die Fibonacci-Nummer am null basierten n Erzeugung von Fibonacci -Zahlen in o (n) Zeit Wenn n 1 ist, wird nur 0 als Fibonacci -Nummer gedruckt. Wenn n 2 ist, werden 0 und 1 in dieser Reihenfolge als Fibonacci -Nummern gedruckt. Wenn N 3 ist, dann werden 0, 1 und 1 in dieser Reihenfolge als Fibonacci -Zahlen gedruckt. Wenn n 4 ist, dann würden 0, 1, 1 und 2 in dieser Reihenfolge als Fibonacci -Zahlen gedruckt. Wenn n 5, dann 0, 1, 1, 2 und 3 ist, werden in dieser Reihenfolge als Fibonacci -Zahlen gedruckt. Wenn n 6, dann 0, 1, 1, 2, 3 und 5 ist. Die Python -Funktion zur Erzeugung der ersten N -Fibonacci -Zahlen lautet: Es beginnt mit der Schaffung einer Reihe von N -Elementen, die alle zu Nullen initialisiert wurden. Dieses Array hält die Fibonacci -Nummern. Die erste Fibonacci -Nummer, 0, ist bereits da. Die zweite Fibonacci -Nummer 1 wird durch die nächste Anweisung zugewiesen (in der Funktion). Dann gibt. Es hat die Aussage: Dies fügt die unmittelbaren vorherigen zwei Zahlen hinzu. Code zum Aufrufen der Funktion und drucken die ersten zwölf Fibonacci -Nummern können sein: N = 12 Die Ausgabe ist: Erstellen einer Fibonacci -Zahl in konstanter Zeit Es gibt eine mathematische Formel, die einen Null-basierten Index mit der entsprechenden Fibonacci-Nummer bezieht. Die Formel lautet: Beachten Sie, dass auf der rechten Seite der Gleichung nicht die Quadratwurzel von 5 ist, die auf die Power N angehoben wird; Es ist der Ausdruck in Klammern, der an die Macht n angehoben wird. Es gibt zwei solche Ausdrücke. Wenn N 0 ist, wäre Fibn 0. Wenn n 1 ist, fibN wäre 1. Wenn n 2 ist, fibN wäre 1. Wenn N 3 ist, fibN wäre 2. Wenn n 4 ist, fibN wäre 3 und so weiter. Der Leser kann diese Formel mathematisch überprüfen, indem sie unterschiedliche Werte für n ersetzen und bewerten. n ist ein auf Null basierender Index in dieser Formel. Der Python -Code für diese Formel lautet: Mathematik importieren Das Mathematikmodul wurde importiert. Es hat die Quadratwurzelfunktion. Der Bediener ** wird für die Stromversorgung verwendet. Die Funktion fibno () implementiert die Formel direkt. Ein geeigneter Anruf und Druck für die Funktion fibno () lautet: N = 11 Die Ausgabe ist: Es ist möglich, die unnötigen Dezimalstellen aus der Antwort zu entfernen. Dies ist jedoch eine Diskussion für einige andere Zeit. Wenn für verschiedene N -Indizes verschiedene Fibonacci -Zahlen erforderlich sind, muss die Funktion fibno () für jeden der N -Index einmal aufgerufen werden, um die verschiedenen entsprechenden Fibonacci -Zahlen zurückzugeben. Das folgende Programm erledigt dies für die Null-basierten Indizes 7 bis 9 (inklusive): Mathematik importieren Die Ausgabe ist: Beachten Sie die Art und Weise, wie die For-Schleife in Python codiert wurde. Der erste Index ist 7. Der nächste Index ist 8 und der letzte Index ist 9. 10 im Bereich der Entfernung ist 9 + 1. Der Wert in der Position von 10 muss der letzte Null-basierte Index plus 1 sein. Das erste Argument, 7, ist der Start-Zero-basierte Index. Abschluss Fibonacci -Zahlen sind eine bestimmte Abfolge von ganzen Zahlen (positive Ganzzahlen). Es beginnt mit 0, gefolgt von 1 bedingungslos. Der Rest der Zahlen wird von dort aus entwickelt, indem die unmittelbaren vorherigen beiden Zahlen hinzugefügt werden. Um die ersten N-Fibonacci-Nummern zu erhalten, akzeptieren Sie 0 und 1 als die ersten beiden und verwenden Sie dann für den Rest eine For-Schleife mit einer Aussage wie: Das fügt die unmittelbaren vorherigen zwei Zahlen hinzu. Verwenden Sie die Formel, um nur eine Fibonacci-Nummer aus einem Null-basierten Index N zu erhalten:Def Fibonacci (n):
arr = [0] * (n)
arr [1] = 1
für i in Reichweite (2, n):
arr [i] = arr [i - 1] + arr [i - 2]
return arrarr [i] = arr [i - 1] + arr [i - 2]
A = fibonacci (n)
für i in Reichweite (n):
drucken (a [i], end = ")
drucken()0 1 1 2 3 5 8 13 21 34 55 89
def fibno (n):
Fibn = (((1+math).SQRT (5))/2) ** n - ((1 -Math).SQRT (5)) / 2) ** n) / Mathematik.SQRT (5)
Fibn zurückgeben
ret = fibno (n)
drucken (ret)89.000000000003
def fibno (n):
Fibn = (((1+math).SQRT (5))/2) ** n - ((1 -Math).SQRT (5)) / 2) ** n) / Mathematik.SQRT (5)
Fibn zurückgeben
für i in Reichweite (7, 10):
print (fibno (i), end = ")
drucken()13.0000000000002 21.0000000000004 34.00000000000001
arr [i] = arr [i - 1] + arr [i - 2]