In der Python -Programmierung können viele komplexe Aufgaben in einfachere Unteraufgaben unterteilt werden. Rekursion ist eine leistungsstarke Möglichkeit, diese Zerlegung umzusetzen, wodurch der Code prägnanter und leichter aufrechterhalten wird. In diesem Tutorial werden die Konzepte der Rekursion, die Vorteile und die Verwendung in Python behandelt.
Rekursion ist eine Möglichkeit, ein Problem zu lösen, indem eine kleinere Instanz des Problems gelöst wird. Dieser Ansatz kann auf viele Herausforderungen bei der Programmierung angewendet werden.
Einige der Vorteile der Verwendung von Rekursion umfassen:
Rekursion mag kompliziert erscheinen, aber nicht. Einfach ausgedrückt, nehmen Sie an, Sie haben zwei Rechtecke A und B. Fügen Sie sie zusammen, um ein Rechteck zu bilden. C. Dies ist ein rekursiver Prozess für sich. Wir verwenden kleinere Instanzen von Rechtecken, um uns selbst zu definieren. Wenn wir Python -Funktionen schreiben wollen, sieht es so aus:
def rectangle(a, b): return a + b
Da die rekursive Funktion sich selbst aufruft, ist eine Regel oder ein Haltepunkt erforderlich, um den Prozess oder die Schleife zu beenden. Dieser Zustand wird als Benchmark -Zustand bezeichnet. Jedes rekursive Programm erfordert eine Benchmark -Erkrankung, andernfalls führt der Prozess zu einer unendlichen Schleife.
Die zweite Anforderung ist der rekursive Fall, dh der Funktionsaufruf selbst.
Nehmen wir ein Beispiel:
In diesem Beispiel schreiben Sie eine faktorielle Funktion, die eine Ganzzahl (positive Zahl) als Eingabe erfordert. Ein Faktor für eine Zahl wird erhalten, indem die Zahl mit allen darunter liegenden positiven Ganzzahlen multipliziert wird. Zum Beispiel factorial(3) = 3 x 2 x 1
, factorial(2) = 2 x 1
, factorial(0) = 1
.
Definieren Sie zuerst den Benchmark -Fall, dh factorial (0) = 1.
Wie oben gezeigt, gibt es eine Beziehung zwischen jeder aufeinanderfolgenden faktoriellen Szene. Sie sollten faktorial (4) = 4 x Faktor (3) bemerken. In ähnlicher Weise faktorial (5) = 5 x Faktor (4).
Der zweite Teil schreibt eine Funktion, die sich selbst aufruft.
Nach der Vereinfachung ist die generierte Funktion:
def factorial(n): # 定义基准情况 if n == 0: return 1 else: return n * factorial(n - 1) print(factorial(5)) # 结果 # 120
Wenn n==0
ist die Lösung:
def factorial(n): # 定义基准情况 if n == 0: return 1 else: return n * factorial(n - 1) print(factorial(0)) # 结果 # 1
Jetzt, da Sie wissen, wie Sie rekursive Funktionen schreiben, schauen wir uns einige Fallstudien an, die Ihr Verständnis der Rekursion stärken.
In der Fibonacci -Sequenz ist jede Zahl die Summe der ersten beiden Zahlen: 1 1 = 2; Die Fibonacci -Sequenz wurde in vielen Bereichen angewendet, am häufigsten für Forex -Händler, die den Börsenpreitrends vorhersagen.
Fibonacci -Sequenzen beginnen mit 0 und 1. Die erste Zahl in der Fibonacci -Sequenz ist 0, die zweite Zahl ist 1 und der dritte Term in der Sequenz ist 0 1 = 1. Der vierte Term ist 1 1 = 2 und so weiter.
Um eine rekursive Funktion zu erhalten, müssen Sie zwei Benchmark -Fälle haben, nämlich 0 und 1. Sie können dann den Additionsmodus in den sonstigen Fall konvertieren.
Die generierte Funktion ist:
def rectangle(a, b): return a + b
In diesem Beispiel schreiben Sie eine Funktion, die eine Zeichenfolge als Eingabe nimmt und dann eine Inversion dieser Zeichenfolge zurückgibt.
Definieren Sie zuerst den Benchmark -Fall, der prüft, ob die Zeichenfolge gleich 0 ist, und wenn ja, wird die Zeichenfolge selbst zurückgegeben.
Der zweite Schritt besteht darin, die Inversionsfunktion rekursiv aufzurufen, um den Teil der Zeichenfolge mit Ausnahme des ersten Zeichens zu schneiden und dann das erste Zeichen bis zum Ende der Slice -Zeichenfolge zu verkettet.
Die generierte Funktion lautet wie folgt:
def factorial(n): # 定义基准情况 if n == 0: return 1 else: return n * factorial(n - 1) print(factorial(5)) # 结果 # 120
In diesem Beispiel schreiben Sie eine Funktion, die ein Array als Eingabe nimmt und dann die Summe der Elemente in der Liste zurückgibt.
Definieren Sie zuerst den Benchmark -Fall, mit dem prüft, ob die Größe der Liste Null ist, und wenn sie wahr sind, geben Sie 0 zurück.
Der zweite Schritt gibt das Element und den Aufruf an die Funktionssumme () zurück und subtrahiert ein Element der Liste.
Die Lösung lautet wie folgt:
def factorial(n): # 定义基准情况 if n == 0: return 1 else: return n * factorial(n - 1) print(factorial(0)) # 结果 # 1
Die Lösung für die leere Liste lautet wie folgt:
def fibonacci(n): # 定义基准情况 1 if n == 0: return 0 # 定义基准情况 2 elif n == 1: return 1 else: return fibonacci(n - 1) + fibonacci(n - 2) print(fibonacci(5)) # 结果为 5
Dieses Tutorial beschreibt, was Sie benötigen, um komplexe Programme in Python mithilfe von Rekursion zu lösen. Es sollte auch beachtet werden, dass Rekursion auch eigene Einschränkungen hat:
Dieses Miniaturbild wird unter Verwendung von Open ai dall-e generiert.
Das obige ist der detaillierte Inhalt vonEntmystifizierende Python -Rekursion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!