Code schrijven om te lossen van de toren van Hanoi puzzel


Q: wat is de makkelijkste manier om de som van alle gehele getallen tussen 1 en 100?

A: eerst je de som van alle gehele getallen tussen 1 en 99, voeg dan 100.

Silly, juiste? Dit is eigenlijk een voorbeeld van een krachtige verdeel-en-heers-techniek in computerprogrammering bekend als "recursie." Recursie behandelt een berekening taak als een reeks van kleinere, gelijkaardige berekeningen, met de volgende kleinere berekening wordt berekend, en vervolgens de volgende en de volgende, totdat je bij een "basisscenario" met een bekende antwoord. Voor de volgende stap van het bovenstaande voorbeeld, om de som van de gehele getallen tussen 1 en 99, u gewoon de som van de gehele getallen tussen 1 en 98, voeg dan 99. Als je blijven gaan in de keten, zal u het basisscenario voor het optellen van hele getallen tussen 1 en 1, waarvan we weten dat het 1.

Een leuk gebruik van recursie is het schrijven van een programma dat kan je de oplossing van de puzzel van de toren van Hanoi. Dat raadsel is weergegeven in de afbeelding op deze pagina. Het doel is om alle schijven van de eerste post naar de derde post. De regels van de puzzel zijn:

  • U kunt alleen één schijf tegelijk verplaatsen van een post naar de andere, wat betekent dat op een bepaald moment, hooguit één schijf uit een post worden kan.
  • U kunt een schijf verplaatsen naar de tweede post als een rust ruimte.
  • Schijven kunnen niet worden verplaatst op de top van een kleinere schijf.

Hoe kan deze puzzel worden opgesplitst in kleinere delen? Als de beelden laten zien, kan deze 7-schijf versie van de toren van Hanoi puzzel opgelost worden als:

  1. Oplossen van de 6-schijf versie van de puzzel van post A naar B. post
  2. Schijf 7 verplaatsen van post A naar C. post
  3. Oplossen van de 6-schijf versie van de puzzel opnieuw, ditmaal vanuit post B naar C. post

Voor dit instructable, ik gebruik JavaScript als de programmeertaal zodat u dit in een standaard webbrowser kan draaien. Het helpt om worden vertrouwd zijn met enkele elementaire computer programmeerconcepten, maar zelfs als je niet, hopelijk dit instructable zal interessant zijn.

Als je dit instructable, please vote voor me in de gecodeerde creaties wedstrijd vóór 18 mei 2015. Dank u.

Laten we beginnen met coderen!

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