logo

Program pre algoritmus Hanojskej veže

Hanojská veža je matematická hádanka, v ktorej máme tri prúty ( A , B , a C ) a N disky. Spočiatku sú všetky disky naskladané v klesajúcej hodnote priemeru, t.j. najmenší disk je umiestnený na vrchu a sú na tyči A . Cieľom hádanky je presunúť celý stoh na inú tyč (tu sa uvažuje C ), pri dodržaní nasledujúcich jednoduchých pravidiel:

  • Naraz je možné presunúť iba jeden disk.
  • Každý pohyb pozostáva z vybratia horného disku z jedného z kôp a jeho položenia na vrch iného stohu, t. j. disk je možné posunúť len vtedy, ak je to najvrchnejší disk v stohu.
  • Na menší disk sa nesmie umiestniť žiadny disk.

Príklady:



Vstup : 2
Výkon: Disk 1 sa presunul z A do B
Disk 2 sa presunul z A do C
Disk 1 sa presunul z B do C

Vstup: 3
Výkon: Disk 1 sa presunul z A do C
Disk 2 sa presunul z A do B
Disk 1 sa presunul z C do B
Disk 3 sa presunul z A do C
Disk 1 sa presunul z B do A
Disk 2 sa presunul z B do C
Disk 1 sa presunul z A do C

Nasledujúce video ukazuje riešenie Hanojská veža pre vstup (N) = 3 –



Kvíz o rekurzii