Code schrijven om te lossen van de toren van Hanoi puzzel (2 / 4 stap)

Stap 2: Code de recursieve patroon

Om op te lossen voor N schijven, moeten we kunnen voor N-1 schijven op te lossen. Dit is waar de recursie komt. U wilt als onderdeel van dit plan, schrijf code die voor een verschillend aantal schijven voor de puzzel, evenals de verschillende posten voor start en bestemming geldt.

De pseudo-code voor die lijkt op:

Ik bedoelde specifiek post A, post B en C hierboven post, maar de code dient te worden veralgemeend omdat afhankelijk van de schijf, de post van de start en bestemming berichten zullen afwijken. Als je erover nadenkt, zijn we de puzzel 3 keer oplossen:

  1. N-1 schijven verplaatsen van post A post B
  2. N-1 schijven verplaatsen van post B post C
  3. N schijven verplaatsen van post A naar post C

Dus moet je een veralgemeende programma waarmee u vertellen wat de start en bestemming posten zijn. Wat interessant is is dat je niet echt het schrijven van een heleboel code, die een groot deel van de aantrekkingskracht van recursie. U simpelweg beschrijven in het programma hoe een berekening breken in kleinere stukken, en de computer doet de rest.

De gedetailleerde pseudo-code ziet er als:

Hier is hoe de JavaScript-code eruit ziet:

Als je niet een programmeur, laat het me uitleggen dat de bovenstaande code is verpakt in een "functie" die u kunt uitvoeren dezelfde code met verschillende ingangen. U kunt het programma nu vertellen hoeveel schijven u in uw puzzel hebt, alsmede welke posten de start, bestemming en halteplaatsen zijn. De functie is ook de basis voor het kunnen uitvoeren van recursie, in die dezelfde code opnieuw wordt uitgevoerd, maar met verschillende ingangen (ingangen zijn ook bekend als "parameters" of "argumenten" in programmering lingo).

Gerelateerde Artikelen

Maak een toren van Hanoi puzzel spel

Maak een toren van Hanoi puzzel spel

In dit korte project demonstreer ik hoe het bouwen van een toren van Hanoi puzzelspel met behulp van hout die ik van pallets verworven. Het spel is eenvoudig te spelen, en het maakt een goede koffietafel stuk. Voor iedereen niet vertrouwd zijn met he
Leren van algoritmes met de torens van Hanoi

Leren van algoritmes met de torens van Hanoi

In deze tutorial zullen we een educatieve Kit van de torens van Hanoi makenDe toren van Hanoi, is een wiskundige puzzel die bestaat uit drie toren en meerdere ringen:Deze ringen zijn van verschillende grootte en gestapeld op in oplopende volgorde, da
Hoe op te lossen van een 5 x 5 door 5 Rubik's Cube

Hoe op te lossen van een 5 x 5 door 5 Rubik's Cube

In dit Instrucable leert u hoe op te lossen van de 5 door 5 x 5 rubiks kubus. Eerst wilde ik zeggen dat ik ben Duitse, dus f ik heb spellingmistakes vertel me. Ik wilde ook zeggen dat ik alle bewegingen op mijn één exept van het speciale geval uitgev
Hoe op te lossen van een 3 x 3 door 3 rubik's kubus

Hoe op te lossen van een 3 x 3 door 3 rubik's kubus

Dit is een Instructable hoe op te lossen van een 3 x 3 door 3 rubik's kubus. Alle movments zijn zelf uitgevonden. En ik wilde zeggen dat ik Duitse ben, dus als u eventuele spellingmistakes vertel het me.Stap 1: Voordat u begint Voordat beginnen u moe
Hoe te bouwen van de toren van Hanoi - twee jongens met hun opa.

Hoe te bouwen van de toren van Hanoi - twee jongens met hun opa.

Was de paasvakantie, af aan de verschillende ouders voor een paar dagen, en opa had een verrassing voor #1 en #2 zoon - hij nam ze mee naar zijn werkplaats van de school gebruik van de juiste machtshulpmiddelen.Natuurlijk, nodig ze eigenlijk iets te
Hoe op te lossen van een 3-laags kubus?

Hoe op te lossen van een 3-laags kubus?

KIEZEN VAN EEN KUBUSHET EERSTE KRUIS OPLOSSENDE ONDERSTE HOEKEN OPLOSSENOPLOSSEN VAN DE MIDDEN-LAGENHET BOVENSTE KRUIS OPLOSSENOPLOSSEN VAN DE TOP, MIDDEN STUKKENStap 1: Kies een goede kubus Nu gebruik ik moyu aolong , waarom is zo goed voor me, kunt
Hoe maak je een robot die toren van Hanoi spelen kan

Hoe maak je een robot die toren van Hanoi spelen kan

op September heb ik een robot die toren van Hanoi door Makeblock spelen kan gebouwd. En we nam het mee naar de wereld Maker Faire New York 2013.Voor meer informatie vindt u hier.Aan de slagOnlangs heb ik een nieuwe herbouwd. Dit instructable, hoe maa
HOE op te lossen van SANBORN KRYPTOS: deel 4 - de betekenis van K4

HOE op te lossen van SANBORN KRYPTOS: deel 4 - de betekenis van K4

Deel 4 van een serie waarin wordt uitgelegd hoe om te ontdekken de verborgen in verschillende delen van Kryptos berichten.Stap 1: De Sanborn omissie in deelvenster 1Van deel 1 van deze serie: Sanborn van 'fouten' zijn aanwijzingen.Stap 2: Irrelevant
Hoe op te lossen van Sanborn Kryptos: het laatste stukje van de puzzel - deel 2

Hoe op te lossen van Sanborn Kryptos: het laatste stukje van de puzzel - deel 2

Het laatste stukje van de puzzel Kryptos.Stap 1: Het vinden van een VectorDezelfde techniek die gebruikt wordt in de verkeerd gespelde DIGETAL - Extra ruimte na de E (dot), ruimte voor een ander punt: (dot dot) = IIn deel 3, stap 5 van deze serie, ge
Hoe op te lossen van Sanborn Kryptos: het laatste stukje van de puzzel - deel 1

Hoe op te lossen van Sanborn Kryptos: het laatste stukje van de puzzel - deel 1

Wij vinden wat Kryptos symboliseert en de boodschap die Sanborn met dit kunstwerk vervoert.(Klik op een willekeurige dia voor een vergroting.)Stap 1: Wat Is Sanborn suggereert?Stap 2: Subtiele aanwijzingenStap 3: Bepaal de aanwijzingInterviewer: En w
Het oplossen van sudoku puzzels (beginner en gevorderde)

Het oplossen van sudoku puzzels (beginner en gevorderde)

In deze handleiding die ik van de trucs die ik gevonden uitleggen zal heb om de mogelijkheden in een sudoku puzzel en uiteindelijk het oplossen. Elke stap in dit instructable zal worden van een andere truc dus als u over om het even welk u al weet va
RFIDuino - met behulp van een Arduino & RFID-lezer te maken van een puzzel GeoCache

RFIDuino - met behulp van een Arduino & RFID-lezer te maken van een puzzel GeoCache

ik geniet van zowel Geocaching en elektronica en heb een paar van elektronische puzzel caches met behulp van een Arduino.Mijn nieuwste creatie (met de hulp van een collega cacher voor de code) is met behulp van een Arduino en RFID lezer te maken van
Het uitvoeren van een puzzel

Het uitvoeren van een puzzel

Jigsaw puzzels zijn leuk, ze kunnen ook worden niet leuk, als je bouwt een harde puzzel (of gemakkelijke) deze paar tips moeten helpen.Ik heb een volledige stapsgewijze samengesteld voor het voltooien van een puzzel.Ik ben met behulp van een 100 (108
Omzetten van uw puzzel in een bench-top zaag met behulp van een oude computer desk

Omzetten van uw puzzel in een bench-top zaag met behulp van een oude computer desk

Ik gebruikte deze instructables als model:Stap 1: Tools Oude computerbureauOogbeschermingDremelHamerBeitelMeetlintBouten en moerenPotloodJigsawBoorStap 2: Gaten in de puzzel-base Demonteren van de puzzel-baseDe boorgatenStap 3: Markering de computerb