In diesem Artikel wird hauptsächlich die rekursive JavaScript-Funktion zur Implementierung des „Turms von Hanoi“ vorgestellt, die einen bestimmten Referenzwert hat. Jetzt können Freunde in Not darauf verweisen.
Der „Turm“. „Hanoi“ ist ein berühmtes Puzzlespiel. Der Turm besteht aus drei Säulen und einem Satz Hohlscheiben mit unterschiedlichen Durchmessern. Zu Beginn werden alle Scheiben der Säule in der Reihenfolge von klein nach groß gestapelt. Das Ziel besteht darin, einen Scheibenstapel in die Zielspalte zu verschieben, indem jeweils eine Scheibe in eine andere Spalte verschoben wird. Während des Vorgangs dürfen keine größeren Scheiben auf kleinere Scheiben gelegt werden.
Interpretieren Sie diese Passage sorgfältig. Wenn es 10 oder mehr Scheiben gibt, wird die Anzahl der Schritte definitiv schockierend sein, aber das Ziel besteht darin, ein paar Scheiben zur Zielsäule zu bewegen Wird als ein Satz betrachtet, und die 10. Scheibe wird als ein weiterer Satz betrachtet. Verschieben Sie zuerst die 9 Scheiben auf eine andere Säule, und dann werden die 8 Scheiben darüber als ein Satz betrachtet, und die 9. Scheibe wird als ein weiterer Satz betrachtet ... Analog dazu , Zerlegung und Bewegung spiegelt die Idee rekursiver Funktionen wider.
Vervollständigen Sie den Code, eine sehr einfache Möglichkeit, ihn zu schreiben. Gibt es eine einfachere Möglichkeit, ihn zu schreiben?
var hanoi = function {disc, begin, end, helper) { if (disc > 0) { hanoi(disc - 1, begin, helper, end); document.writeln('移动圆盘 ' + disc + ' 从 ' + begin + ' 到 ' + helper); hanoi(disc - 1, end, begin, helper); } }; hanoi(3, '柱子一', '柱子二', '柱子三');
Ausgabe, wenn die Anzahl der Scheiben 3 beträgt:
Verschiebe 1 von Säule eins zu Säule drei
Verschiebe 2 von Säule eins Zur zweiten Säule
Bewegen Sie 1 von der dritten zur zweiten Säule
Bewegen Sie 3 von der ersten zur dritten Säule
Bewegen Sie 1 von der zweiten zur ersten Säule
Bewegen Sie 2 von der zweiten zur dritten Säule
Verschieben Sie 1 von Säule eins zu Säule drei
Die an die Hanoi-Funktion übergebenen Parameter umfassen die aktuell verschobene Festplattennummer und die drei Säulen, die sie verwenden wird. Wenn es senior aufruft, verarbeitet es die Festplatte über der aktuell verarbeiteten. Letztendlich wird es mit einer Festplattennummer aufgerufen, die nicht existiert. In solchen Fällen passiert nichts. Da diese Funktion unzulässige Werte ignoriert, besteht kein Grund zur Sorge, dass es zu einer Endlosschleife kommt.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich ist. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
Das obige ist der detaillierte Inhalt vonRekursive JavaScript-Funktion implementiert „Tower of Hanoi'. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!