Code schreiben, um die Türme von Hanoi-Puzzle zu lösen, (2 / 4 schritt)


Schritt 2: Code das rekursive Muster

Um für N Scheiben zu lösen, müssen wir für n-1 Festplatten lösen können. Wo kommt der Rekursion. Als Teil dieses Plans möchten Sie Code schreiben, der für eine unterschiedliche Anzahl von Datenträgern für die Puzzle sowie verschiedene Start- und Zielpunkt Beiträge gilt.

Der Pseudo-Code dafür sieht:

Ich ausdrücklich genannten post A, post B und C genannten Posten, aber der Code muss sich verallgemeinert werden, da abhängig von der Festplatte, Start Post und Ankunftsort Beiträge anders sein werden. Wenn man darüber nachdenkt, sind wir 3 Mal das Rätsel lösen:

  1. Verschieben von n-1-Festplatten von Post A bis B post
  2. Verschieben von n-1-Festplatten von Post B C Posten
  3. Bewegliche N Festplatten von Post A bis C post

So benötigen Sie eine generalisierte Programm, mit denen Sie es sagen, was die Start- und Zielpunkt Beiträge sind. Interessant ist, dass Sie nicht wirklich eine Menge Code, schreiben die einen großen Teil des Reizes der Rekursion ist. Beschreiben Sie einfach im Programm wie eine Berechnung in kleinere Stücke zu brechen, und der Computer erledigt den Rest.

Die detaillierte Pseudo-Code sieht wie:

So sieht der JavaScript-Code:

Wenn Sie kein Programmierer sind, lassen Sie mich erklären, dass der obige Code ist verpackt in eine "Funktion", die Sie den gleichen Code mit unterschiedlichen Eingaben ausführen kann. Sie können jetzt sagen, dass dem Programm wie viele Festplatten Sie in Ihr Puzzle haben sowie die Beiträge der Start, Ziel und Zwischenstationen sind. Die Funktion ist auch die Grundlage für die Möglichkeit, Rekursion, in die immer wieder der gleiche Code ausgeführt wird, aber mit verschiedenen Eingängen (Eingänge sind auch bekannt als "Parameter" oder "Argumente" in Programmierung "Lingo") ausgeführt.

In Verbindung stehende Artikel

Wie erstelle ich einen Roboter, die Türme von Hanoi spielen können

Wie erstelle ich einen Roboter, die Türme von Hanoi spielen können

am September habe ich gebaut, einen Roboter, der Turm von Hanoi von Makeblock spielen kann. Und wir haben es auf die Welt Maker Faire New York 2013.Weitere Informationen finden Sie hier.Erste SchritteVor kurzem habe ich eine neue umgebaut. Diese inst
Wie man die Türme von Hanoi - zwei Jungs mit ihrem Opa bauen.

Wie man die Türme von Hanoi - zwei Jungs mit ihrem Opa bauen.

Es war Ostern, aus den verschiedenen Eltern für ein paar Tage und Opa hatte eine Überraschung für #1 und #2 Sohn - er nahm sie in seine Schule Werkstatt ordentlich Powertoolsverwenden.Natürlich mussten sie tatsächlich etwas zu machen, so bereitete er
Lernende Algorithmen mit der Türme von Hanoi

Lernende Algorithmen mit der Türme von Hanoi

In diesem Tutorial erstellen wir ein Lernpaket die Türme von HanoiDie Türme von Hanoi ist ein mathematisches Puzzle besteht aus drei Turm und mehrere Ringe:Diese Ringe sind in verschiedenen Größen und nach in aufsteigender Reihenfolge, d.h. die klein
Entfernen Sie die Wärme von einem Pfeffer (nicht nur de-Aussaat!)

Entfernen Sie die Wärme von einem Pfeffer (nicht nur de-Aussaat!)

Meine Methode zur Entfernung von 100 % der "Schärfe" ein Pfeffer, oder wenn Sie möchten, nur es hochgelagert.Alles was Sie brauchen ist ein Messer, einen Daumen einige Gummihandschuhe, Olivenöl und eine starke Trinkalkohol Ihrer Wahl (Tequila ge
Machen Sie eine Turm von Hanoi-Puzzle Spiel

Machen Sie eine Turm von Hanoi-Puzzle Spiel

In diesem kurzen Projekt wird ich gezeigt, wie ein Turm von Hanoi bauen Puzzle-Spiel mit Holz, das ich von Paletten erworben. Das Spiel ist einfach zu spielen, und es macht einen guten Kaffee-Tisch-Stück. Für alle nicht vertraut mit dem Spiel, hier s
Gewusst wie: schreiben Poleepkwa (die fremde Sprache von District 9)

Gewusst wie: schreiben Poleepkwa (die fremde Sprache von District 9)

Poleepkwa ist die Sprache, die der nicht-Menschen (Aliens, Garnelen, Outlanders) aus dem Film District 9, zu sprechen. Aber kann ich nicht weiß, wie man Ihnen beibringen, wie Poleepkwa zu sprechen, ich Ihnen wie man es schreiben beibringen. Zeigen Si
Liebling, ich geschrumpft die Arduino: Verschieben von Arduino auf ATtiny und Schreiben von Code in reinen AVR-C

Liebling, ich geschrumpft die Arduino: Verschieben von Arduino auf ATtiny und Schreiben von Code in reinen AVR-C

Arduino ist eine große Hard- und Software-Plattform, aber mit all seinen Funktionen ist es auch ein bisschen angeschwollen und oft brauchen Sie nur einen kleinen Teil aller Funktionen. Ihr Projekt erfordert manchmal zu kleinere und billigere Geräten
Die spezifische Wärme von Wasser und anderen Flüssigkeiten zu messen

Die spezifische Wärme von Wasser und anderen Flüssigkeiten zu messen

Dies ist ein einfaches Experiment, die "spezifische Wärme" (auch "spezifische Wärmekapazität" genannt) von Flüssigkeiten zu messen. Neben dem Grundsatz der spezifischen Wärme zeigt das Experiment auch einige elektrische Grundprinzipien
Shooting für eine Homepage-Funktion: Timelapse und Multi-Exposure Fotografie der DIY Weg (machen oder Ihren eigenen Code schreiben!)

Shooting für eine Homepage-Funktion: Timelapse und Multi-Exposure Fotografie der DIY Weg (machen oder Ihren eigenen Code schreiben!)

Was ich liebe Instructables ist, dass es Foto-centric: das erste, was Sie sehen, bei der Erstellung einer neuen Instructable ist "Bilder hinzufügen", vor jedem Texteintrag Dialog erscheint! Bilder sind in der Welt, in die wir heute leben, alles.
Die erste Verwendung von NodeMCU ESP12E DEVKIT V2

Die erste Verwendung von NodeMCU ESP12E DEVKIT V2

Heute werde ich Ihnen zeigen, wie NodeMCU ESP12E DEVKIT V2 zum ersten Mal verwenden. Am ersten, dieses Board als NodeMCU Entwicklungsboard nennen wir, obwohl es ESP8266MOD Modul drauf, hat, die dieses Board macht fit Aufruf Entwicklungsboard genug is
Ihr erstes Drehbank-Projekt: Die M40-Granate von "Aliens"

Ihr erstes Drehbank-Projekt: Die M40-Granate von "Aliens"

Dies ist eine ausgezeichnete Starter-Projekt für die Metall-Drehbank; Es erfordert mehrere verschiedene Operationen, erfordert einen minimalen Satz von Werkzeugen, es kann getan werden, in leichten "freie Bearbeitung" Aluminium, und abgesehen vo
Wie Sie eine Xbox 360 einlösen Code Leben oder einen Marketplace-Einkauf von Ihrem Computer zu machen!

Wie Sie eine Xbox 360 einlösen Code Leben oder einen Marketplace-Einkauf von Ihrem Computer zu machen!

Haben Sie einen Xbox 360-live-Code aus einem Online-Wettbewerb bekommen? Möchten Sie einen Xbox 360-Download von überall (in der Nähe eines Computers) starten und haben es bereit zum download, wenn Sie Ihre Xbox starten? Möchten Sie die Xbox-360-Mark
Ganz anders die Diät von Daniel: gesunde Ernährung der Bibel

Ganz anders die Diät von Daniel: gesunde Ernährung der Bibel

habe ich eine Diät, die ähnelt, was Daniel während seiner Zeit in Babylon aßen entworfen. Die Rezepte habe ich Liste Sachen gegeben, die unten nicht aufgeführt ist, aber kann gelöscht werden, wenn Sie wollen. Es basiert auf nicht genau dasselbe. Ich
Die Engagement-Box (von 3DS und ZBrush Realität)

Die Engagement-Box (von 3DS und ZBrush Realität)

In dieser Instructable gebe ich einen detaillierten Überblick darüber, wie ich eine Schmuck erstellt in 3DS Max und Zbrush vor dem Drucken von Shapewaysbox.  Ich entwarf die Schmuck-Box mit der Absicht, schlägt vor, meine Freundin mit dem Ring im Inn