Fibonacci-Sequenz in Python

Manav Narula 14 April 2021
  1. Verwenden Sie die mathematische Formel, um eine Fibonacci-Sequenz in Python zu erstellen
  2. Verwenden Sie die for-Schleife, um eine Fibonacci-Sequenz in Python zu erstellen
  3. Verwenden Sie eine rekursive Funktion, um eine Fibonacci-Sequenz in Python zu erstellen
  4. Verwenden Sie die dynamische Programmiermethode, um eine Fibonacci-Sequenz in Python zu erstellen
Fibonacci-Sequenz in Python

Die Fibonacci-Sequenz ist eine in der Mathematik häufig verwendete Reihe. Es ist unten gezeigt.

0,1,1,2,3,5,8,13,21,34,55,89,144,229....

Die nächste Zahl in der Fibonacci-Sequenz ist die Summe der beiden vorhergehenden Zahlen und kann mathematisch als Fn = Fn-1 + Fn-2 dargestellt werden.

Das erste und das zweite Element der Reihe sind 0 bzw. 1.

In diesem Tutorial werden wir diskutieren, wie eine solche Sequenz in Python erstellt wird.

Verwenden Sie die mathematische Formel, um eine Fibonacci-Sequenz in Python zu erstellen

Jedes Element in einer Fibonacci-Sequenz kann mit der folgenden mathematischen Formel dargestellt werden.

Fibonacci-Gleichung

Wir können diese Formel in Python implementieren, um die Serie bis zur erforderlichen Nummer zu finden und die Sequenz auszudrucken. Der folgende Code zeigt wie.

from math import sqrt


def F(n):
    return ((1 + sqrt(5)) ** n - (1 - sqrt(5)) ** n) / (2 ** n * sqrt(5))


def Fibonacci(startNumber, endNumber):
    n = 0
    cur = F(n)
    while cur <= endNumber:
        if startNumber <= cur:
            print(cur)
        n += 1
        cur = F(n)


Fibonacci(1, 100)

Ausgabe:

1.0
1.0
2.0
3.0000000000000004
5.000000000000001
8.000000000000002
13.000000000000002
21.000000000000004
34.00000000000001
55.000000000000014
89.00000000000003

Die Funktion Fibonacci() berechnet die Fibonacci-Zahl an einer Position in einer durch die Start- und Endnummer angegebenen Reihenfolge.

Verwenden Sie die for-Schleife, um eine Fibonacci-Sequenz in Python zu erstellen

Wir werden eine Funktion mit der for-Schleife erstellen, um die erforderlichen Reihen zu implementieren. Bei dieser Methode wird eine Sequenz mit der erforderlichen Länge gedruckt. Wir werden nur die for-Schleife verwenden, um auf die erforderliche Länge zu iterieren und die erforderlichen Variablen bei jeder Iteration zu ändern. Der folgende Code erklärt, wie:

def fibonacci_iter(n):
    a = 1
    b = 1
    if n == 1:
        print("0")
    elif n == 2:
        print("0", "1")
    else:
        print("0")
        print(a)
        print(b)
        for i in range(n - 3):
            total = a + b
            b = a
            a = total
            print(total)


fibonacci_iter(8)

Ausgabe:

0
1
1
2
3
5
8
13

Verwenden Sie eine rekursive Funktion, um eine Fibonacci-Sequenz in Python zu erstellen

Eine rekursive Funktion ist eine Funktion, die sich selbst aufruft. Solche Methoden können die Zeitkomplexität verringern, aber mehr Speicher verwenden. Wir können eine solche Funktion erstellen, um die Fibonacci-Zahl zurückzugeben und die erforderlichen Reihen mit einer for-Schleife zu drucken.

Zum Beispiel,

def rec_fib(n):
    if n > 1:
        return rec_fib(n - 1) + rec_fib(n - 2)
    return n


for i in range(10):
    print(rec_fib(i))

Ausgabe:

0
1
1
2
3
5
8
13
21
34

Verwenden Sie die dynamische Programmiermethode, um eine Fibonacci-Sequenz in Python zu erstellen

Dynamische Programmierung ist eine Methode, bei der wir Probleme in Unterprobleme unterteilen und die Werte dieser Unterprobleme speichern, um Lösungen zu finden. Diese Methode wird normalerweise zur Optimierung von Problemen verwendet und kann zum Generieren der Fibonacci-Sequenz verwendet werden, wie unten gezeigt:

def fibonacci(num):
    arr = [0, 1]
    if num == 1:
        print("0")
    elif num == 2:
        print("[0,", "1]")
    else:
        while len(arr) < num:
            arr.append(0)
        if num == 0 or num == 1:
            return 1
        else:
            arr[0] = 0
            arr[1] = 1
            for i in range(2, num):
                arr[i] = arr[i - 1] + arr[i - 2]
            print(arr)


fibonacci(10)

Ausgabe:

[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

Beachten Sie, dass die Sequenz bei dieser Methode in einem Array gespeichert wird.

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Verwandter Artikel - Python Math