Feladat
Adott három rúd, ezekre felfűzve n korong az átmérők (szigorúan) csökkenő sorrendjében. Át kell jutattni a korongokat az elsőről a harmadik rúdra.
Szabályok:
- Minden lépésben pontosan egy korongot mozgatunk egy rúdról egy másikra.
- Minden rúdról csak a legfelsőt lehet levenni.
- Sosem kerülhet nagyobb korong kisebbre.
Lásd még:
- https://hu.wikipedia.org/wiki/Hanoi_tornyai
- https://en.wikipedia.org/wiki/Tower_of_Hanoi
- https://www.mathsisfun.com/games/towerofhanoi.html
Megoldási ötlet: ahhoz, hogy a nagy korongot mozgatni lehessen, először az első (n-1)-et a segédrúdra kell tegyük (rekurzív hívással). Ez után jöhet a nagy korong mozgatása.
Megoldás
Számozni fogjuk a rudakat (1, 2, 3) és írunk egy rekurzív függvényt, aminek paramétere az is, hogy mely rudak között kell mozgasson.
| |
+ pontért:
Módosítjuk a feladatot:
Adott még egy rúdpár (pl. 1,3) és a párban szereplő rudak között nem szabad közvetlenül átmozgatni korongot.
- Megoldható-e még mindig a feladat?
- Ha igen, írjuk meg a megoldást!
| |