Erkundung - Lösung für drei Scheiben
Lösung für drei Scheiben
Wir analysieren zunächst den Fall von drei Scheiben. In diesem Fall ist das Problem noch recht überschaubar, sodass wir die Zugfolge noch gut explizit aufschreiben können.
Aufgabe 1
- Verschiebe den Turm nach den vorgegebenen Regeln vollständig von A nach C.
- Wie viele und welche Züge brauchst du dazu?
Verallgemeinerung für vertauschte Rollen der Türme
In Aufgabe 1 hast du die Scheiben von A nach C verschoben. Wir betrachten jetzt das gleiche Rätsel mit vertauschten Rollen der Türme: Wie muss sich die Zugfolge ändern, wenn der Turm etwa von A nach B oder von B nach C verschoben werden soll?
Aufgabe 2
- Dokumentiere unten in den ersten drei Textfeldern eine Zugfolge, um die Scheiben wie gewollt zu verschieben. Dazu kannst du jeweils den Inhalt des Protokoll-Felds in der Simulation kopieren.
-
Gleiche die gesammelten Zugfolgen ab, um eine verallgemeinerte Lösung anzugeben:
Wie können drei Scheiben von
X
nachZ
(überY
) verschoben werden? Dabei sindX
,Y
undZ
zusammen eine beliebige Reihenfolge der Türme A, B und C. Fülle dazu auch das vierte Textfeld aus.
A nach C
(über B)
(über B)
A nach B
(über C)
(über C)
B nach C
(über A)
(über A)
X
nach Z
(über
Y
)Test durch Implementierung
Die verallgemeinerte Lösung für beliebige TürmeX
, Y
und Z
lässt sich mit einem Python-Programm testen, das die gesuchten Zugfolgen für eine beliebige Belegung erzeugt.
Aufgabe 3
-
Implementiere die Python-Funktion
bewegeDreiScheiben
mithilfe der Ergebnisse aus Aufgabe 2 analog zur FunktionbewegeZweiScheiben
. - Überprüfe die Ausgaben der Funktion für verschiedene Belegungen der Türme auf ihre Korrektheit.