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

高洛峰
Freigeben: 2017-01-14 16:48:12
Original
2355 Leute haben es durchsucht

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])
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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")
Nach dem Login kopieren

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]
Nach dem Login kopieren

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...
Nach dem Login kopieren

Weisen Sie zunächst den ersten beiden Variablen Werte zu:

i, j = 0, 1
Nach dem Login kopieren

Natürlich können Sie es auch so schreiben:

i = 0
j = 1
Nach dem Login kopieren

Dann legen Sie einen Bereich fest, knapp innerhalb von 10.000:

while i < 10000:
Nach dem Login kopieren

Geben Sie dann i in der while-Anweisung aus und entwerfen Sie die Logik:

print i,
i, j = j, i+j
Nach dem Login kopieren

In Hier ist zu beachten: „i, j = i, i+j“ kann nicht wie folgt geschrieben werden:

i = j
j = i+j
Nach dem Login kopieren

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
Nach dem Login kopieren

Der korrekte gesamte Code lautet wie folgt:

i, j = 0, 1
while i < 10000:
 print i,
 i, j = j, i+j
Nach dem Login kopieren

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
Nach dem Login kopieren


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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage