(Python) Routinen. Rekursion


Recuring

Das Verfahren oder die Funktion kann eine interne Herausforderung für ein anderes Verfahren enthalten. Unter anderem kann sich das Unterprogramm nennen. In diesem Fall ist es dem Computer egal. Er ist auch, wie immer, oben unten, die Teams, die er traf.

Wenn Sie sich an Mathe erinnern, können Sie sich dort treffen.Mathematische Induktionsprinzip♪ Es ist:
für jede natürliche Aussagenwenn
ANHANG Gut genugn = 1und
2. Aus der Fairness des Anspruchs auf eine willkürliche Natur n = ksollte ihm fair sein.n = k + 1.

Es nennt sich ein Programm. Ich weiß nicht.
Recuring - es ist eine Möglichkeit, viele Objekte durch sich selbst viele auf der Grundlage einfacher Basis-Fälle zu definieren.

Recuring Es wird genannt Verfahren (Funktion)die sich direkt oder durch andere Verfahren und Funktionen verursacht.
Beispiel
def Rec(a):
    if (a>0): Rec(a-1)
    print(a)

Die schematische Arbeit des Wettbewerbs kann durch ein Bündel gekennzeichnet sein.



Rec() wird mit Parameter ausgeführt 3. Die Prozedur im Parameter 3 wird dann durch den Parameter 2 etc. ausgelöst, bis die Prozedur mit dem Parameter 0 herausgefordert wird. Bei einer Null-Responsive-Herausforderung steht das Null-Punkt-Verfahren nicht mehr zur Verfügung und es wird abgeschlossen. Die Steuerung wird dann mit dem Parameter 1 wieder auf das Verfahren übertragen, und sie beendet auch ihre Arbeit durch Drucknummer 1 usw. vor dem Verfahren mit dem Parameter 3.

Alle Verfahren, die gestellt wurden, werden im Auge behalten, bis ihre Arbeit beendet ist. Anzahl der gleichzeitigen Verfahren глубиной рекурсии

Ersatz des Zyklus

Wir haben gesehen, dass der Klassenraum eine Wiederholung der Teams im Unterprogramm ist. Dies ist wiederum dasselbe wie der Zyklus. Es gibt Programmiersprachen, in denen der Zyklus überhaupt nicht ausgelegt ist. Wie Prologue.
Versuchen wir, den Zyklus zu simulieren. for
Zyklus for enthält eine Variablenzahl. Im wiederkehrenden Teilprogramm kann diese Variable als Parameter übertragen werden.
# LoopImitation Verfahren mit zwei Parametern
♪ erster Parameter - Schrittzähler, zweiter Parameter - Gesamtzahl der Schritte
def LoopImitation(i, n):
Print("Hello N, I) # Operator, der zu jedem Wert wiederholt werden muss i
Wenn ich n Kanal: # bis der Zykluszähler gleich n wird,
LoopImitation(i + 1, n) # Aufruf für eine neue Kopie des Verfahrens,
# mit i+1 (Übertragung auf i)

Wiederkehrende und Irration
Um die Ansicht zu verstehen, müssen wir die Ansicht verstehen. ♪
ИтерацияProgrammierung . - Ja. ein Schritt zyklische Datenverarbeitung.
Häufig verwenden die literarischen Algorithmen der aktuellen Schritte das Ergebnis der gleichen Operation oder Operation, wie zuvor berechnet. Ein Beispiel für solche Berechnungen ist die Berechnung von Wettbewerbsverhältnissen.
Das einfache Beispiel des durch die Verwendung von Maisverhältnissen berechneten Wertes ist: - Ja.
Berechnung des Wertes an jedem Schritt (Berechnung) ist - Ja. Bei der Berechnung des Wertes - Ja., wir nehmen die Sache, die bereits erhalten ist.- Ja.

Die Zahl kann auch mit Hilfe beschrieben werden рекуррентной формулы:
Es tut mir leid.

Es sei darauf hingewiesen, dass diese Beschreibung nur eine wiederkehrende Funktion ist.
Das ist die erste Linie.- Ja.() ist der Basisfall (Bedingungszustand) und die zweite Zeile ist der Übergang zum nächsten Schritt.
Wiederkehrende FactoringfunktionIteration Algorithmus
def Factorial(n):
wenn n Entlüftung 1:
zurück n * Factorial(n - 1)
andere:
Rückkehr 1
x = 1
für i im Bereich(1, n + 1):
x = x * i;

Es ist zu verstehen, dass die Herausforderung der Funktionen zusätzliche Overhead-Kosten mit sich bringt, so dass die nicht-curriculare Berechnung etwas schneller wäre.

Fazit:
Wo Sie ein Programm mit einem einfachen heterogenen Algorithmus ohne Vorlesung schreiben können, müssen Sie ohne Vorlesung schreiben. Aber es gibt eine große Klasse von Aufgaben, bei denen der Rechenvorgang nur durch das Feld durchgeführt wird.
Andererseits werden die wiederkehrenden Algorithmen am häufigsten verstanden.

Ziel
In der Alphabetsprache des Stammes Tumba-Umba waren vier Buchstaben „K“, „L“, „M“ und „N“. Wir müssen alle Wörter auf dem Bildschirm setzen, bestehend aus n Buchstaben, die aus diesem Alphabet gebaut werden können.

Die Herausforderung ist eine normale Herausforderung zu überwinden, die reduziert werden kann.
Wir setzen die Briefe direkt auf das Wort.
In der ersten Position kann einer der vier Buchstaben des Alphabets stehen.K, L, M, N)
Zuerst legen wir den Brief an.K'. Dann erhalten Sie alle Optionen mit dem ersten Brief.K", wir müssen alle möglichen Kombinationen von Buchstaben auf den übrigen überqueren. n-1 (siehe Abbildung)
So haben wir eine klassische Lösung erreicht: Im Zyklus überqueren wir alle möglichen ersten Buchstaben (jeder Buchstaben des Alphabets auf den ersten Platz) und bauen für jeden Fall alle möglichen Hvosts in der Länge. n-1
Wiederkehrende Umwandlung von Symbolen
Stoppen Sie den Wettbewerb und setzen Sie das Wort heraus, wenn der Rest leer ist.n = 0Ich meine, alle Briefe wurden ausgewählt.
Das wiederkehrende Verfahren wäre wie folgt:
def TumbaWords(Wort, Alphabet, n):
wenn n Kanal 1:
Print(Wort)
zurück
für c im Alphabet:
TumbaWords(Wort+c, Alphabet, n - 1)