Die Türme von Hanoi Die Lösungsfindung nach dem Prinzip der Rekursion wird noch einmal textuell und grafisch erläutert. 20.1.2004.

Slides:



Advertisements
Ähnliche Präsentationen
PC-Senioren Ludwigsburg
Advertisements

WAS ZUM NACHDENKEN !
Steigung m berechnen Man kann die Steigung auch berechnen,
Vom graphischen Differenzieren
WR + WS ZEIGEN Neues aus der Mathematik.
Materialien der IHK Erfurt Aus- und Weiterbildung Lehrstellensuche (k)ein Problem....
Interview mit der Tell Familie
Berechnung und Vereinfachung von Termen
Rekursion Was ist Rekursion? Was sind rekursive Methoden?
Klicke Dich mit der linken Maustaste durch das Übungsprogramm!
Klicke Dich mit der linken Maustaste durch das Übungsprogramm! Der Umfang von Dreiecken Ein Übungsprogramm der IGS - Hamm/Sieg © IGS-Hamm/Sieg 2007 Dietmar.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Die Funktionsgleichung
Funktionsgraphen zeichnen
Meine Zeit steht in deinen Händen
Wie macht man ein Sudoku? Transformations-Methode:
SAMMS 2008 – Mathematik in aller Welt
Woher kommt das Spiel? aus dem westlichen Afrika. Die ältesten Spiele wurden bei Matara und Yeha gefunden Woraus besteht das Spiel? aus einem Kalaha-Spielbrett.
Kapitel 6 Spuren der Geschichte.
Gedanken über das Leben
Fragen zu den 4 Quadraten B A D C Bitte die Figur hier links aufmerksam anschauen. Ich werde dir 4 Fragen zu den Quadraten stellen. Bereit?
R.P.G. MAL WAS ZUM NACHDENKEN!.
Anlegen von Ordnern, speichern und Öffnen von Bildern und Briefen
Wie man eine einfache Präsentation erstellt...
Willkommen bei Sycarus – dem Mathematikprogramm, das neue Wege geht.
Du hast bei einem Wettbewerb folgenden Preis gewonnen:
PRÄSENTATION Pictual.org Visuelles Worterbuch.
Das ist ein Test von SONY´s neuer Technologie
Moin. Ich benutze PPT 2002 und möchte drei Bilder nacheinander 1
Chaos und Fraktale M. Bostelmann Michael Bostelmann.
Abendliches Treffen.
"Die vier Gesetze der Spiritualität"
Temperaturmessung.
Modal Verbs Narrative Past. Ich will Ich wollte.
Dritter Platz. Dieser Stier paart sich 3mal am Tag!
Von wegen nur Männer sind chauvinistisch....
Wie man eine einfache Präsentation erstellt...
Umgang mit Konflikten Mag. Weber Adrian.
Emma und Leo Das glückliche Paar !
Bereit ???? Nimm dir 10 Minuten Zeit. Ich versuche es dir zu erklären.
Wer von euch hat Lust auf ein Spiel?
Präsentiert TheMakingof... Da hatten 4 junge Gmundner eine Idee.. Wann programmiere n wir wieder mal etwas? Ja ich bin dabei, was denn?? Hmm, wie wäre.
Disziplin 2: Man geht aus von zwei 3er-Stapeln und einem 6er-Stapel
Die üble Nachrede.
Die üble Nachrede.
Abendliches Treffen.
Disziplin 3: Cycle. Man geht aus von zwei 3er-Stapeln und einem 6er-Stapel
WAS ZUM NACHDENKEN !.
..
Schnittpunkt von zwei Geraden
by animalanimal.jimdo.com
Hypothenuse berechnen
10 Ideen um täglich bei guter Laune zu bleiben …
Wolfgang´s Powerpoint Präsentation DerWeg des Herzens.
Arbeit 1. Unfall am Arbeitsplatz
Vom graphischen Differenzieren
Er: "Ich bestell‘ Pizza. Willst du auch was?" Sie: "Nein." Er: "Okay."
Aber ich will Dir noch schnell die Lösung sagen...
Personen: Julian, Romea, Kassandra, Romeas Vater, Romeas Mutter
Aufgabe: Umsetzen Tretbootfahrer (TF):Beifahrer (BF): Gang (G): Aufgabe: Zwei Freunde fahren mit dem Tretboot am See. Nachdem sie die Hälfte des Weges.
DSD I Trainingsstunde 5 HÖRVERSTEHEN Teil 1. Der 1. Teil des Hörverstehens sind 5 kurze Hörszenen. Jede Szene hat ein Thema. Es gibt für jede Szene eine.
SICHER IM INTERNET Tipps für Jugendliche.
Du hast Dich dereinst für dieses Leben entschieden. Weiter mit Mausklick.
Michael Häupl ist überfahren worden und kommt in den Himmel. Herbert Ich zeige dir mein Paradies..
Programmiersprachen II Fortsetzung Datenstrukturen Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Übungsart: Seite: Bearbeitet von: Siegbert Rudolph Lesemotivationstraining Titel: Quelle: Nächste Seite 1 Bedienungshinweise: Mit einem Klick geht es immer.
10 Ideen um täglich bei guter Laune zu bleiben ….
Diese Präsentation hat der Schüler der vierten Klasse Lapin Wowa geschaffen.
Übungsart: Seite: Bearbeitet von: Siegbert Rudolph Lesemotivationstraining Titel: Quelle: Nächste Folie 1 Bedienungshinweise: Makros müssen freigeschaltet.
 Präsentation transkript:

Die Türme von Hanoi Die Lösungsfindung nach dem Prinzip der Rekursion wird noch einmal textuell und grafisch erläutert. 20.1.2004

Was sind die Tuerme von Hanoi ueberhaupt? Die Türme von Hanoi sind ein klassisches Puzzle, meist als Spiel angesehen. Das Puzzle besteht aus einer Platte mit drei Pfählen. Auf einem der Pfähle sind runde Scheiben mit Loch in Pyramidenform aufgetürmt: stets kleinere auf größeren Scheiben. Die Aufgabe des Puzzles ist es, den Turm auf einen der anderen Pfähle zu bewegen, allerdings unter den folgenden Einschränkungen: Es darf nur eine Scheibe auf einmal bewegt werden. Es darf nie eine größere Scheibe auf eine kleinere Scheibe gelegt werden. [Quelle: Michael Sperber, Script zur Vorlesung im WS1999/ 2000, veröffentlicht als Herbert Klaeren, Michael Sperber: Vom Problem zum Programm. 3. Auflage. Teubner 2001]

Eine Loesungsstrategie Eine mögliche Strategie zur Lösung des Puzzles ist folgende: Falls der Turm die Höhe n hat, bewege den Turm der Höhe n-1 zunächst auf den dritten Pfahl. (Wie das zu machen ist, wird auf morgen verschoben.) Bewege die untere, größte Scheibe auf den Zielpfahl. Bewege den Turm der Höhe n-1 auf den Zielpfahl. (Wie das zu machen ist, wird auf morgen verschoben.) Einen Tag später hat sich das Problem darauf reduziert, das Hanoi-Puzzle für n-1 Scheiben zu lösen, Das lässt sich wiederum auf das Puzzle für n-2 Scheiben reduzieren etc., bis schließlich das Problem nur noch für eine Scheibe zu lösen ist und damit trivial geworden ist. [Quelle: (leicht geändert) Michael Sperber, Script zur Vorlesung im WS1999/ 2000, veröffentlicht als Herbert Klaeren, Michael Sperber: Vom Problem zum Programm. 3. Auflage. Teubner 2001]

Wie sieht das grafisch aus? Wollen

Wie sieht das grafisch aus? Nehmen wir an, wir könnten den Turm der Höhe n-1, also den oberen gelben Teil, bewegen. Was würden wir tun?

Wie sieht das grafisch aus? Den (n-1)-Turm auf den Hilfspfahl bewegen...

Wie sieht das grafisch aus? ... und dann die unterste Scheibe. Damit haben wir schon viel gewonnen, denn unser Problem, einen Turm der Höhe n zu bewegen, hat sich darauf reduziert, einen Turm der Höhe n-1 zu bewegen...

Wie sieht das grafisch aus? Wollen Die ehemals unterste Scheibe können wir uns wegdenken. Das neue Problem sieht so aus.

Wie sieht das grafisch aus? Wir bewegen also den Turm der Höhe n-2 auf den Hilfspfahl...

Wie sieht das grafisch aus? Wir bewegen also den Turm der Höhe n-2 auf den Hilfspfahl... ...und dann die neue unterste, noch zu bewegende, Scheibe.

Wie sieht das grafisch aus? Wollen Die ehemals unterste Scheibe können wir uns wieder wegdenken. Das neue Problem sieht jetzt so aus.

Wie sieht das grafisch aus? Wir bewegen also den Turm der Höhe n-3 auf den Hilfspfahl... ...und dann die neue unterste, noch zu bewegende, Scheibe.

Wie sieht das grafisch aus? Wollen Die ehemals unterste Scheibe können wir uns wieder wegdenken. Das neue Problem sieht jetzt so aus. Wir lösen es wieder genau gleich...

Wie sieht das grafisch aus? Wollen Die ehemals unterste Scheibe können wir uns wieder wegdenken. Das neue Problem sieht jetzt so aus. Wir lösen es wieder genau gleich...

Wie sieht das grafisch aus? Wollen Die ehemals unterste Scheibe können wir uns wieder wegdenken. Das neue Problem sieht jetzt so aus. Wir lösen es wieder genau gleich...

Wie sieht das grafisch aus? Wollen Die ehemals unterste Scheibe können wir uns wieder wegdenken. Das neue Problem sieht jetzt so aus und das ist einfach ;)

Wie sieht das grafisch aus? Wir bewegen die neue unterste, noch zu bewegende, Scheibe.

Wie sieht das grafisch aus? FERTIG!

Wie sieht also der Code aus? public void moveTower(int layers, int from, int via, int to) { if (layers > 1){ moveTower(layers-1, from, to, via); // Bewege den Turm der Höhe n-1 moveLayer(from, to); // Versetze die unterste Scheibe moveTower(layers-1, via, from, to); // Löse das Problem für den Restturm }else{ moveLayer(from, to); // Der einfachste Fall: nur noch eine Scheibe... }

Anmerkung: Schlussbemerkung Die Folien stellen nur wichtige Zwischenschritte dar. Wenn Du das Beispiel einmal testest, indem Du Deine Lösung von Aufgabe 8.3 nimmst* und in der main-Methode (TowersOfHanoi.java) numberOfLayers = 7 setzt, wirst Du feststellen, dass sehr viele Schritte geschehen. Das ist klar, denn das Bewegen eines jeden der gelben Türme stellt genau wieder das Ausgangsproblem dar - will heißen, für jeden dieser Teiltürme müssen wir alle Überlegungen wieder treffen, um zu der Lösung zu kommen. Bewege gelben Turm von links nach rechts zerfällt also in viele Schritte. Dennoch hast Du alles verstanden, wenn Dir die Folien bis hier alle klar geworden sind, denn die fehlenden Schritte funktionieren genau gleich nur auf einer Teilmenge der Scheiben – das ist gerade das Prinzip der Rekursion... * falls Du die Aufgabe nicht gelöst haben solltest, musst Du einfach den Code der vorhergehenden Folie in der HanoiModel-Klasse einbauen