Wiederholung - Iteration

Iteration ist die Wiederholung eines Prozesses, um eine (möglicherweise unbegrenzte) Folge von Ergebnissen zu generieren. Jede Wiederholung des Prozesses ist eine einzelne Iteration, und das Ergebnis jeder Iteration ist dann der Ausgangspunkt der nächsten Iteration.

In der Mathematik und Informatik ist die Iteration (zusammen mit der verwandten Technik der Rekursion ) ein Standardelement von Algorithmen .

In Mathematik

In der Mathematik kann sich Iteration auf den Prozess des Iterierens einer Funktion beziehen , dh das wiederholte Anwenden einer Funktion unter Verwendung der Ausgabe einer Iteration als Eingabe für die nächste. Die Iteration scheinbar einfacher Funktionen kann komplexe Verhaltensweisen und schwierige Probleme erzeugen – Beispiele finden Sie in der Collatz-Vermutung und den Jongleursequenzen .

Eine weitere Anwendung der Iteration in der Mathematik sind iterative Verfahren, die verwendet werden, um ungefähre numerische Lösungen für bestimmte mathematische Probleme zu erzeugen. Das Newton-Verfahren ist ein Beispiel für ein iteratives Verfahren. Die manuelle Berechnung der Quadratwurzel einer Zahl ist eine gängige Anwendung und ein bekanntes Beispiel.

Im Computerbereich

In der Informatik ist Iteration die Technik, die einen Block von Anweisungen innerhalb eines Computerprogramms für eine definierte Anzahl von Wiederholungen markiert . Dieser Anweisungsblock wird als iteriert bezeichnet ; Informatiker könnte auch in diesem Block von Anweisungen , wie beziehen eine „Iteration“.

Der folgende Pseudocode ist ein Beispiel für eine Iteration; die Codezeile zwischen den Klammern der for- Schleife wird dreimal "durchlaufen":

a = 0
for i from 1 to 3        // loop three times
{
    a = a + i            // add the current value of i to a
}
print a                  // the number 6 is printed (0 + 1; 1 + 2; 3 + 3)

Es ist zulässig und oft notwendig, Werte aus anderen Programmteilen außerhalb des Anweisungsblocks in Klammern zu verwenden, um die gewünschte Funktion auszuführen. Im obigen Beispiel verwendet die Codezeile den Wert von i, wenn sie inkrementiert wird.

Zusammenhang mit Rekursion

In algorithmischen Situationen können Rekursion und Iteration mit dem gleichen Effekt verwendet werden. Der Hauptunterschied besteht darin, dass Rekursion als Lösung verwendet werden kann, ohne vorher zu wissen, wie oft die Aktion wiederholt werden muss, während eine erfolgreiche Iteration dieses Vorwissen erfordert.

Einige Arten von Programmiersprachen, die als funktionale Programmiersprachen bekannt sind , sind so konzipiert, dass sie keine Anweisungsblöcke zur expliziten Wiederholung wie bei der for- Schleife einrichten . Stattdessen verwenden diese Programmiersprachen ausschließlich Rekursion . Anstatt einen Codeblock aufzurufen, der eine vordefinierte Anzahl von Malen wiederholt werden soll, "teilt" der ausführende Codeblock stattdessen die zu erledigende Arbeit in eine Anzahl separater Teile, wonach der Codeblock sich selbst auf jedem einzelnen Teil ausführt. Jedes Arbeitsstück wird wiederholt geteilt, bis die "Menge" der Arbeit so klein wie möglich ist, woraufhin der Algorithmus diese Arbeit sehr schnell erledigt. Der Algorithmus "kehrt" dann um und setzt die Teile wieder zu einem vollständigen Ganzen zusammen.

Das klassische Beispiel für Rekursion sind Listensortierungsalgorithmen wie merge sort . Der rekursive Merge-Sort-Algorithmus teilt die Liste zunächst wiederholt in aufeinanderfolgende Paare auf; jedes Paar wird dann geordnet, dann jedes aufeinanderfolgende Paar von Paaren und so weiter, bis die Elemente der Liste in der gewünschten Reihenfolge sind.

Der folgende Code ist ein Beispiel für einen rekursiven Algorithmus in der Programmiersprache Scheme , der dasselbe Ergebnis wie der Pseudocode unter der vorherigen Überschrift ausgibt.

(let iterate ((i 1) (a 0))
  (if (<= i 3)
    (iterate (+ i 1) (+ a i))
    (display a)))

Andere Terminologie

In der objektorientierten Programmierung ist ein Iterator ein Objekt, das sicherstellt, dass die Iteration für eine Reihe unterschiedlicher Datenstrukturen auf die gleiche Weise ausgeführt wird, was Zeit und Aufwand bei späteren Codierungsversuchen spart. Insbesondere ermöglicht ein Iterator, die gleiche Art von Operation an jedem Knoten einer solchen Datenstruktur zu wiederholen, oft in einer vordefinierten Reihenfolge.

Ein Iteratee ist eine Abstraktion, die Daten während einer Iteration akzeptiert oder ablehnt.

Ausbildung

In einigen pädagogischen Schulen werden Iterationen verwendet, um den Prozess des Lehrens oder der Anleitung von Schülern zur Wiederholung von Experimenten, Bewertungen oder Projekten zu beschreiben, bis genauere Ergebnisse gefunden werden oder der Schüler die technischen Fähigkeiten beherrscht. Diese Idee findet sich in dem alten Sprichwort "Übung macht den Meister". Insbesondere wird „iterativ“ als „Lern- und Entwicklungsprozess definiert, der zyklische Untersuchungen beinhaltet und den Menschen vielfältige Möglichkeiten bietet, Ideen zu überdenken und ihre Auswirkungen kritisch zu reflektieren“.

Im Gegensatz zu Computer und Mathematik sind Bildungsiterationen nicht vorbestimmt; stattdessen wird die Aufgabe wiederholt, bis ein Erfolg nach einigen externen Kriterien (oft ein Test) erreicht ist.

Siehe auch

Verweise