Lachs Mit Gemüsereis

Dies ist eine Hausaufgabe, an der ich gearbeitet habe. Ich habe 2 Klassen erstellt, um die Türme von Hanoi zu spielen. Der erste ist der Läufer, der die eigentliche Spielklasse ausführt.

  1. Türme von hanoi java.lang
  2. Türme von hanoi java programm

Türme Von Hanoi Java.Lang

Der Algorithmus, den wir gerade definiert haben, ist ein rekursiver Algorithmus um Türme mit n Scheiben zu verschieben. Wir werden diesen Algorithmus in Python als rekursive Funktion implementieren. Der zweite Schritt ist eine einfache Bewegung einer Scheibe, aber um die Schritte 1 und 3 zu verwirklichen, müssen wir den Algorithmus wieder auf sich selbst anwenden. Die Berechnung endet in einer endlichen Anzahl von Schritten, da die Rekursion jedesmal mit einem um 1 verminderten Argument gegenüber der aufrufenden Funktion gestartet wird. Türme von hanoi java.fr. Am Schluss ist noch eine einzelne zu bewegende Scheibe übrig. Rekursives Python-Programm Das folgende in Python geschriebene Skript enthält eine rekursive Funktion namens "hanoi" zur Lösung des Spiels "Türme von Hanoi": def hanoi(n, source, helper, target): if n > 0: # move tower of size n - 1 to helper: hanoi(n - 1, source, target, helper) # move disk from source peg to target peg if source: (()) # move tower of size n-1 from helper to target hanoi(n - 1, helper, source, target) source = [4, 3, 2, 1] target = [] helper = [] hanoi(len(source), source, helper, target) print source, helper, target Anmerkung: AUX heißt in unserem Programm "helper".

Türme Von Hanoi Java Programm

(2^n)-1, Konstante Lösung. Naja, "ständig" so weit wie 2^n ist eine Konstante, die ich denke, ist eigentlich in O(log(n)) Plus die Zeit es braucht, um zu konvertieren, dass zu den üblichen Basis 10 notation () für die Ausgabe. Es sei denn Sie berechnen den arithmetischen Operationen in der richtigen Basis aus zu starten. Informationsquelle Autor | 2012-09-12

Hier kommt die Rekursion ins Spiel. In den Schritten 1 und 3 rufen Sie die Methode rekursiv auf, wobei Sie jedes Mal eine zu verschiebende Festplatte weniger angeben und jedes Mal den vorherigen Zielstift als Ersatzstift verwenden. Sie fragen sich, warum die rekursive Methode den Ersatzstift nicht als Argument akzeptieren muss? Weil Sie es angesichts der Quell- und Zielstifte leicht berechnen können. Da es nur drei Stifte mit den Nummern 1, 2 und 3 gibt, beträgt die Summe der drei Stifte 6 (1 + 2 + 3). Mit den Quell- und Zielstiften können Sie den Ersatzstift berechnen, indem Sie den Quell- und Zielstift von 6 subtrahieren. Wenn beispielsweise der Quellstift 1 und der Zielstift 3 ist, muss der Ersatzstift 2 sein, da 6 – 3 – 1 = 2. Die Lösung finden Sie auf der Registerkarte Downloads der Java All-in-One für Dummies, Produktseite der 4. Ausgabe. Bergervei/Java-Turm-von-Hanoi – ProgrammingWiki. Viel Glück!