Wpisany przez Piotr Łabudziński
czwartek, 17 listopada 2005 20:38
Wieże Hanoi – dane mamy krążki o różnych średnicach, ułożonych na sobie od najmniejszego do największego. Problem polega na odbudowaniu (przeniesieniu wszystkich klocków wieży na ostatni palik), z zachowaniem kształtu, wieży składającej się z kolistych klocków o różnych średnicach. Na raz można przenosić tylko jeden krążek. Podczas przekładania wolno się posługiwać buforem, reprezentowanym przez dodatkową podstawkę na klocki, przy ogólnym założeniu, że nie można kłaść klocka o większej średnicy na mniejszy.
Zagadka ta wywodzi się z Tybetańskiej legendy, według której mnisi rozwiązują tą łamigłówkę dla 64 krążków. Legenda mówi, że gdy mnisi zakończą zadanie, nastąpi koniec świata.
Na początek proponuje zapoznać się z algorytmem dla 1,2 i 3-ch krążków, aby następnie można było wyprowadzić sobie algorytm na N ilość krążków.
Jak widać problem wież hanoi jest problemem, w którym liczba kroków rośnie wykładniczo w zależności od liczby krążków do przełożenia.
Zagadka ta wywodzi się z Tybetańskiej legendy, według której mnisi rozwiązują tą łamigłówkę dla 64 krążków. Legenda mówi, że gdy mnisi zakończą zadanie, nastąpi koniec świata.
Na początek proponuje zapoznać się z algorytmem dla 1,2 i 3-ch krążków, aby następnie można było wyprowadzić sobie algorytm na N ilość krążków.
- Problem dla 1 krążka:

- Dla 2 krążków:

- Dla 3 krążków:
rozwiązanie dla 3 krążków składa się z 7 ruchów:
kolejne etapy to:- przenieś krążek o najmniejszej średnicy na palik docelowy,
- krążek o średnicy większej przenieś na palik pomocniczy,
- krążek najmniejszy przenieś na palik pomocniczy,
- następnie krążek największy przenieś na palik docelowy a najmniejszy na źródłowy,
- na największym połóż średni i potem najmniejszy,
- koniec
- Rozwiązanie dla N elementów:
Cały problem przeniesienia krążków hanoi przy uzyciu 3 palików składa się z trzech podstawowych "kawałków":- przenieś N-1 górnych krążków z palika początkowego na palik pomocniczy,
- przenieś N-ty krążek na palik docelowy,
- przenieś N-1 górnych krążków z palika pomocniczego na docelowy.
Jak widać problem wież hanoi jest problemem, w którym liczba kroków rośnie wykładniczo w zależności od liczby krążków do przełożenia.
| Autor | Język programowania | Komentarz | Otwórz | Pobierz | Ocena |
| Tomasz Lubiński | C/C++ | ![]() | ![]() |
![]() ![]() ![]() ![]() / 10 | |
| Tomasz Lubiński | Delphi/Pascal | ![]() | ![]() |
![]() ![]() ![]() ![]() / 6 | |
| Tomasz Lubiński | Java | ![]() | ![]() |
![]() ![]() ![]() ![]() / 4 |
Poprawiony: czwartek, 09 czerwca 2011 21:09





