LoslegenKostenlos loslegen

Die Türme von Hanoi

In dieser Übung sollst du das Rätsel der Türme von Hanoi mit einem rekursiven Algorithmus umsetzen. Das Ziel dieses Spiels ist es, alle Scheiben von einer der drei Stangen zu einer anderen zu bringen, indem du diese Regeln befolgst:

  • Du kannst immer nur eine Festplatte auf einmal verschieben.
  • Du kannst nur die oberste Scheibe von einem der Stapel nehmen und sie auf einen anderen Stapel legen.
  • Du kannst nicht eine größere Scheibe auf eine kleinere legen.

Bild des Spiels Turm von Hanoi

Der gezeigte Algorithmus ist eine Umsetzung dieses Spiels mit vier Scheiben und drei Stäben namens "A", "B" und "C". Der Code enthält zwei Fehler. Wenn du sie ausführst, stürzt die Konsole ab, weil sie die maximale Rekursionstiefe überschreitet. Kannst du die Fehler finden und sie beheben?

Diese Übung ist Teil des Kurses

Datenstrukturen und Algorithmen in Python

Kurs anzeigen

Anleitung zur Übung

  • Korrigiere den Basisfall.
  • Korrigiere die Aufrufe der Funktion hanoi().

Interaktive Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

def hanoi(num_disks, from_rod, to_rod, aux_rod):
  # Correct the base case
  if num_disks >= 0:
    # Correct the calls to the hanoi function
    hanoi(num_disks, from_rod, aux_rod, to_rod)
    print("Moving disk", num_disks, "from rod", from_rod,"to rod",to_rod)
    hanoi(num_disks, aux_rod, to_rod, from_rod)   

num_disks = 4
source_rod = 'A'
auxiliar_rod = 'B'
target_rod = 'C'

hanoi(num_disks, source_rod, target_rod, auxiliar_rod)
Code bearbeiten und ausführen