Einführung
Die Fibonacci-Folge, auch als Goldene-Schnitt-Folge bekannt, bezieht sich auf eine solche Folge: 0, 1, 1, 2, 3, 5, 8, 13, 21, ... in Mathematisch ist die Fibonacci-Folge rekursiv wie folgt definiert:
F(0)=0, F(1)=1, F(n)=F(n-1)+F(n -2) ( n≥2, n∈N*).
1. Tupel-Implementierung
fibs = [0, 1] for i in range(8): fibs.append(fibs[-2] + fibs[-1])
Dies kann eine Liste von Fibonacci-Zahlen innerhalb des angegebenen Bereichs erhalten.
2. Iterator-Implementierung
class Fibs: def __init__(self): self.a = 0 self.b = 1 def next(self): self.a, self.b = self.b, self.a + self.b return self.a def __iter__(self): return self
Dadurch wird eine unendliche Sequenz erhalten, auf die auf folgende Weise zugegriffen werden kann:
fibs = Fibs() for f in fibs: if f > 1000: print f break else: print f
3
class Fib(object): def __getitem__(self, n): if isinstance(n, int): a, b = 1, 1 for x in range(n): a, b = b, a + b return a elif isinstance(n, slice): start = n.start stop = n.stop a, b = 1, 1 L = [] for x in range(stop): if x >= start: L.append(a) a, b = b, a + b return L else: raise TypeError("Fib indices must be integers")
Auf diese Weise können Sie eine Datenstruktur erhalten, die einer Sequenz ähnelt, und Sie können über Indizes auf die Daten zugreifen:
f = Fib() print f[0:5] print f[:10]
4 Beispiel einer Fibonacci-Folge
Werfen wir zunächst einen Blick auf die Fibonacci-Folge...
0 1 1 2 3 5 8 13 21 34 55 89 144 233...
Weisen Sie zunächst den ersten beiden Variablen Werte zu:
i, j = 0, 1
Natürlich können Sie es auch so schreiben:
i = 0 j = 1
Dann legen Sie einen Bereich fest, knapp innerhalb von 10.000:
while i < 10000:
Geben Sie dann i in der while-Anweisung aus und entwerfen Sie die Logik:
print i, i, j = j, i+j
In Hier ist zu beachten: „i, j = i, i+j“ kann nicht wie folgt geschrieben werden:
i = j j = i+j
Wenn es so geschrieben wird, j ist nicht der Wert der ersten beiden Ziffern addiert, sondern der Wert der Summe von i und j, denen von j ein Wert zugewiesen wurde. In diesem Fall lautet die Ausgabesequenz wie folgt:
0 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192
Der korrekte gesamte Code lautet wie folgt:
i, j = 0, 1 while i < 10000: print i, i, j = j, i+j
Zeigen Sie abschließend die laufenden Ergebnisse:
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
Zusammenfassung
Das Obige dreht sich alles um die Verwendung von Python zur Implementierung der Fibonacci-Sequenz. Ich hoffe, dass dieser Artikel für das Studium oder die Arbeit eines jeden hilfreich sein kann. Wenn Sie Fragen haben, können Sie eine Nachricht zur Kommunikation hinterlassen.
Weitere Beispiele für die Implementierung der Fibonacci-Sequenz in Python finden Sie auf der chinesischen PHP-Website!