Code schreiben, um die Türme von Hanoi-Puzzle zu lösen,


F: Was ist der einfachste Weg um die Summe aller ganzen Zahlen zwischen 1 und 100 abzurufen?

A: zuerst erhalten Sie die Summe aller ganzen Zahlen zwischen 1 und 99, dann addieren Sie 100.

Albern, richtig? Dies ist eigentlich ein Beispiel für eine leistungsstarke Divide and conquer Technik in Computer-Programmierung, bekannt als "Rekursion". Rekursion behandelt eine Berechnung Aufgabe als eine Reihe von kleineren, ähnliche Berechnungen mit der nächsten kleineren Berechnung berechnet wird, und dann die nächste und die nächste, bis Sie zu einer "base Case" mit einem bekannten Antwort. Für den nächsten Schritt des obigen Beispiels man die Summe der ganzen Zahlen zwischen 1 und 99, Sie einfach kurz die ganze Zahlen zwischen 1 und 98 und dann hinzufügen 99. Wenn Sie die Kette runter zu halten, erhalten Sie auf der Basisfall Zusammenfassung ganze Zahlen zwischen 1 und 1, das wir kennen 1.

Ein lustiges Verwendung von Rekursion ist eine Programm schreiben, das kann Ihnen die Lösung, die Türme von Hanoi-Puzzle. Dieses Puzzle ist in der Abbildung auf dieser Seite gezeigt. Ziel ist es, alle Datenträger aus dem ersten Beitrag zu dem dritten Beitrag zu verschieben. Die Regeln des Puzzles sind:

  • Sie können nur eine Festplatte gleichzeitig von einem Pfosten zum anderen verschieben was bedeutet, dass zu einem bestimmten Zeitpunkt höchstens eine Scheibe an einem Pfosten sein kann.
  • Sie können jede Festplatte an die zweite Stelle als eine Ruhezone verschieben.
  • Datenträger können nicht auf eine kleinere Festplatte verschoben werden.

Wie kann dieses Rätsel in kleinere Teile werden abgebaut? Wie die Bilder zeigen, kann dieser 7-Disk-Version der Türme von Hanoi-Puzzle als gelöst werden:

  1. Lösen Sie die 6-Disk-Version des Puzzles von Post A nach B. post
  2. Disk 7 von Post A bis C. post zu bewegen
  3. Die 6-Disk-Version des Puzzles wieder lösen, diesmal aus post-B, C. post

Für diese instructable, verwende ich JavaScript als Programmiersprache so können Sie dies in einem standard Webbrowser laufen. Es hilft, werden einige grundlegende Konzepte der Computerprogrammierung vertraut, aber selbst wenn Sie nicht, hoffentlich wird dies instructable interessant sein.

Wenn Sie diese instructable mögen, bitte vote für mich in der codierten Kreationen Wettbewerb vor 18. Mai 2015. Danke.

Wir programmieren beginnen!

Stichworte: Javascript, Rekursion, Rekursiv

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