Heim  >  Artikel  >  Backend-Entwicklung  >  Beispiel für die Implementierung einer Fibonacci-Sequenz in Python

Beispiel für die Implementierung einer Fibonacci-Sequenz in Python

高洛峰
高洛峰Original
2017-01-14 16:48:122343Durchsuche

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*).

Beispiel für die Implementierung einer Fibonacci-Sequenz in Python

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn