Pozytywne informacje z Polski i ze Świata.

Tutaj znajdziesz je wszystkie!

Wieże Hanoi

Z Wikipedii

Skocz do: nawigacji, szukaj
od lewej: wieża A, bufor, wieża B
Rozwiązanie łamigłówki dla czterech krążków

Wieże Hanoi – problem polegający na odbudowaniu, z zachowaniem kształtu, wieży z krążków o różnych średnicach (popularna dziecięca zabawka), przy czym podczas przekładania wolno się posługiwać buforem, reprezentowanym w tym przypadku przez dodatkowy słupek, jednak przy ogólnym założeniu, że nie można kłaść krążka o większej średnicy na mniejszy ani przekładać kilku krążków jednocześnie. Jest to przykład zadania, którego złożoność obliczeniowa wzrasta niezwykle szybko w miarę zwiększania parametru wejściowego, tj. liczby elementów wieży.

Spis treści

[edytuj] Pochodzenie

Zagadka Wież Hanoi stała się znana w XIX wieku dzięki matematykowi Édouard Lucasowi, który proponował zagadkę dla 8 krążków. Do sprzedawanego zestawu była dołączona (prawdopodobnie wymyślona przez Lucasa) tybetańska legenda, według której mnisi w świątyni Brahmy rozwiązują tę łamigłówkę dla 64 złotych krążków. Legenda mówi, że gdy mnisi zakończą zadanie, nastąpi koniec świata. Zakładając, że wykonują 1 ruch na sekundę, ułożenie wieży zajmie 264−1 = 18 446 744 073 709 551 615 (blisko 18 i pół tryliona) sekund, czyli około 584 542 miliardów lat. Dla porównania: Wszechświat ma około 13 700 mld lat.

[edytuj] Algorytm

Wieże Hanoi można łatwo rozwiązać za pomocą prostego algorytmu rekurencyjnego lub iteracyjnego.

  • nazywamy słupki: A, B, C
  • niech n będzie liczbą krążków, które chcemy przenieść ze słupka A na słupek B posługując się słupkiem C jako buforem

[edytuj] Rozwiązanie rekurencyjne

Algorytm rekurencyjny składa się z następujących kroków:

  1. (rekurencyjnie) przenieś n-1 krążków ze słupka A na słupek C posługując się słupkiem B
  2. przenieś jeden krążek ze słupka A na słupek B
  3. (rekurencyjnie) przenieś n-1 krążków ze słupka C na słupek B posługując się słupkiem A

przykładowa implementacja w Pythonie:

def hanoi(n,A,B,C):
    """słupki A,B,C są listami"""
    if n > 0:
        hanoi(n-1,A,C,B)     # rekurencyjnie przekładamy n-1 krążków z A na C
        B.insert(0,A.pop(0)) # przekładamy jeden krążek z A na B
        hanoi(n-1,C,B,A)     # rekurencyjnie przekładamy n-1 krążków z C na B

W nauczaniu informatyki algorytm rozwiązywania wież Hanoi jest często pierwszym przykładem algorytmu rekurencyjnego.

[edytuj] Rozwiązanie iteracyjne

Algorytm iteracyjny składa się z następujących kroków:

  1. przenieś najmniejszy krążek na kolejny (*) słupek.
  2. wykonaj jedyny możliwy do wykonania ruch, nie zmieniając położenia krążka najmniejszego
  3. powtarzaj punkty 1 i 2, aż do odpowiedniego ułożenia wszystkich krążków.

(*) Kolejny słupek wyznaczamy w zależności od ilości krążków. Jeśli ilość krążków jest parzysta, kolejnym słupkiem jest ten po prawej stronie (gdy dojdziemy do słupka C w następnym ruchu używamy słupka A). Natomiast jeśli ilość krążków jest nieparzysta, kolejnym słupkiem jest ten po lewej stronie (gdy dojdziemy do słupka A w następnym ruchu używamy słupka C)

[edytuj] Równanie na ilość ruchów

Równanie określające ilość ruchów potrzebnych do rozwiązania problemu wież Hanoi dla n krążków:

\! L(n)\ =\ L(n-1)\ +\ 1\ +\ L(n-1)

[edytuj] Dowód

Łatwo pokazać, że \! L(n)\ \le \ L(n-1)\ +\ 1\ +\ L(n-1):

  • w pierwszym kroku przekładamy n-1 krążków na jeden słupek (BSO załóżmy, że jest to krążek nr 3) - wymaga to co najmniej L(n-1) ruchów
  • przekładamy n-ty krążek na drugi słupek - wymaga to jednego ruchu
  • przekładamy pozostałe krażki ze słupka 3. na n-ty krążek leżący na 2. słupku - wymaga to co najmniej L(n-1) ruchów

a więc \! L(n)\ \le \ L(n-1)\ +\ 1\ +\ L(n-1).

Aby wykazać, że \! L(n)\ \ge \ L(n-1)\ +\ 1\ +\ L(n-1) można przeprowadzić następujące rozumowanie:

Aby móc ruszyć n-ty krążek, trzeba najpierw zdjąć wszystkie leżące na nim krążki, tak by po ich zdjęciu jeden z słupków pozostał wolny (aby na jego "dno" mógł trafić n-ty krążek). A więc ze słupka 1 przekładamy krążki 1,2,\cdots n-1 na słupek 3. Ponieważ aż do momentu gdy na drążku 1 pozostanie tylko n-ty krążek nie ma znaczenia czy rzeczywiście się on tam znajduje, a więc do tego momentu sytuacja upraszcza się do rozwiązania problemu wież Hanoi dla n-1 krążków (którego minimalna ilość ruchów wynosi L(n-1)). Na przełożenie krążka n-tego potrzeba co najmniej jeden ruch. Po jego przełożeniu znów potrzeba przełożyć krążki 1,2,\cdots n-1 - jest to oczywiście znów sytuacja n-1 krążków (wymagająca co najmniej L(n-1) ruchów).

A więc \! L(n)\ \ge \ L(n-1)\ +\ 1\ +\ L(n-1)

co w połączeniu z górnym ograniczeniem na L(n) daje równość

\! L(n)\ =\ L(n-1)\ +\ 1\ +\ L(n-1)\ =\ 2\cdot L(n-1)\ +\ 1

[edytuj] Postać jawna wzoru na liczbę ruchów

Powyższe równanie rekurencyjne można w łatwy sposób przekształcić do postaci jawnej, tj. nie korzystającej z rekursji:

\! L(n)\ =\ 2\cdot L(n-1)\ +\ 1 \! /+1
\! L(n)\ +\ 1\ =\ 2\cdot L(n-1)\ +\ 1\ +\ 1\ =\ 2\cdot (L(n)\ +\ 1)

Niech \! L'(n)\ =\ L(n)\ +\ 1

Wtedy

2\cdot (L(n)\ +\ 1)\ =\ 2\cdot L'(n)
\! L'(n)\ +\ 1\ =\ \ 2\cdot L'(n-1)

jest to równanie określające ciąg geometryczny o ilorazie równym 2 takie, że

\begin{matrix} L^\prime(0)\ =\ 1 \\ L^\prime(1)\ =\ 2 \\ L^\prime(2)\ =\ 4 \\ \vdots \\ L^\prime(n)\ =\ 2^n \end{matrix}

Po powrocie do L(n) otrzymujemy

\! L(n)\ =\ 2^n\ -\ 1

[edytuj] Zastosowanie

Mimo swojego wieku łamigłówka jest stale tematem prac matematyków i znane są jej bardziej rozbudowane wersje np. z więcej niż trzema słupkami.

W psychologii łamigłówka ta jest jednym z testów na kojarzenie.

[edytuj] Zobacz też

Wyjazdowe obrady klubu PO: wraca sprawa Staroń

Podczas wyjazdowego posiedzenia klubu PO w miejscowości Ossa k. Rawy Mazowieckiej Lidia Staroń czyniła wyrzuty kolegom, że nie wsparli jej po publikacji "Rzeczpospolitej". Gazeta napisała, że Staroń zarobiła kilkaset tysięcy zł, bo ustawa, nad którą pracowała, pozwoliła jej uwłaszczyć lokal usługowy. Donald Tusk - relacjonuje zastrzegający anonimowość uczestnik obrad - poparł Staroń, natomiast Zbigniew Chlebowski nie zabrał głosu.

Pierwsza ofiara mrozu. Mężczyzna znaleziony na Podkarpaciu

45-letni mężczyzna jest najprawdopodobniej pierwszą tegoroczną ofiarą mrozów na Podkarpaciu. Policjanci wyjaśniają dokładne przyczyny śmierci mieszkańca Trzebuski. Mężczyznę znaleziono niespełna sto metrów od jego domu. Wiele wskazuje na to, że zmarł w wyniku wychłodzenia organizmu.

Pacelt do dymisji, dostanie nowe zadania

Ostrowiecki poseł Platformy Obywatelskiej Zbigniew Pacelt zostanie odwołany ze stanowiska wiceministra sportu. Teraz będzie odpowiadał za przygotowania reprezentacji Polski do igrzysk w Londynie.

Osiedlowy zespół ukradł sprzęt Acid Drinkers

Policjanci odzyskali sprzęt muzyczny należący do zespołu Acid Drinkers. Złodziejami okazali się 17-letni Jakub K. i 18-letni Paweł K., członkowie osiedlowego zespołu z Ełku. Za kradzież odpowiedzą przed sądem. Grozi im nawet pięć lat więzienia.

Pijany policjant spowodował kolizję

26-letni pijany policjant spowodował w sobotę w Elblągu kolizję. Funkcjonariusz, który miał w wydychanym powietrzu 2,5 promila alkoholu, straci pracę. Czeka go także sprawa karna - poinformowała Justyna Grzeczka z elbląskiej policji.

Drugie podejście PO do ustawy o mediach

PO wraca do rozmów z lewicą o zmianach w mediach. W przyszłym tygodniu politycy Platformy maja wyłożyć na stół nowy projekt ustawy medialnej - dowiedział się "Dziennik".

PiS zaniepokojone sprawą posłów Sejmu Litwy z Kartą Polaka

PiS jest zaniepokojone sprawą posłów litewskiego Sejmu posiadających Kartę Polaka. Dwóm z trzech posłów AWPL grozi utrata mandatu litewskiego posła z powodu przyjęcia przez nich Karty, co budzi na Litwie kontrowersje.

Ojciec, gdy wypił, znęcał się nad córką

Ojciec nadużywał alkoholu. Gdy był pijany, bił córkę drewnianą listewką. Dziewczynka opowiedziała o tym opiekunce ze świetlicy osiedlowej. Ta o sprawie zawiadomiła policję. 47-letniego Arkadiusza L. zatrzymano. Miał prawie promil alkoholu we krwi. Został aresztowany na trzy miesiące.

Kaczyński: Pokażemy inne przypadki pijanych posłów w Sejmie

- PiS nie będzie podejmował żadnych decyzji w sprawie Elżbiety Kruk - powiedział Jarosław Kaczyński. Posłanka w czasie wczorajszych porannych głosowań w Sejmie chwiała się na nogach i niewyraźnie mówiła.

Zawieje i zamiecie na południu, dużo śniegu na północy

Zawieje i zamiecie śnieżne mogą nękać aż do jutrzejszego popołudnia całe południe Polski. na północy, nad Bałtykiem pada i ma padać śnieg. Jak zapowiada Instytut Meteorologii i Gospodarki Wodnej w ciągu doby może tam spaść nawet 20 centymetrów śniegu.

Zobacz także inne, godne uwagi serwisy. Piewrszy z nich prezentuje wysokiej jakości drzwi natomiast drugi z nich projekty domów parterowych.
Wyjazdowe obrady klubu PO: wraca sprawa Staroń

Podczas wyjazdowego posiedzenia klubu PO w miejscowości Ossa k. Rawy Mazowieckiej Lidia Staroń czyniła wyrzuty kolegom, że nie wsparli jej po publikacji "Rzeczpospolitej". Gazeta napisała, że Staroń zarobiła kilkaset tysięcy zł, bo ustawa, nad którą pracowała, pozwoliła jej uwłaszczyć lokal usługowy. Donald Tusk - relacjonuje zastrzegający anonimowość uczestnik obrad - poparł Staroń, natomiast Zbigniew Chlebowski nie zabrał głosu.

Pierwsza ofiara mrozu. Mężczyzna znaleziony na Podkarpaciu

45-letni mężczyzna jest najprawdopodobniej pierwszą tegoroczną ofiarą mrozów na Podkarpaciu. Policjanci wyjaśniają dokładne przyczyny śmierci mieszkańca Trzebuski. Mężczyznę znaleziono niespełna sto metrów od jego domu. Wiele wskazuje na to, że zmarł w wyniku wychłodzenia organizmu.

Pacelt do dymisji, dostanie nowe zadania

Ostrowiecki poseł Platformy Obywatelskiej Zbigniew Pacelt zostanie odwołany ze stanowiska wiceministra sportu. Teraz będzie odpowiadał za przygotowania reprezentacji Polski do igrzysk w Londynie.

Osiedlowy zespół ukradł sprzęt Acid Drinkers

Policjanci odzyskali sprzęt muzyczny należący do zespołu Acid Drinkers. Złodziejami okazali się 17-letni Jakub K. i 18-letni Paweł K., członkowie osiedlowego zespołu z Ełku. Za kradzież odpowiedzą przed sądem. Grozi im nawet pięć lat więzienia.

Pijany policjant spowodował kolizję

26-letni pijany policjant spowodował w sobotę w Elblągu kolizję. Funkcjonariusz, który miał w wydychanym powietrzu 2,5 promila alkoholu, straci pracę. Czeka go także sprawa karna - poinformowała Justyna Grzeczka z elbląskiej policji.

Drugie podejście PO do ustawy o mediach

PO wraca do rozmów z lewicą o zmianach w mediach. W przyszłym tygodniu politycy Platformy maja wyłożyć na stół nowy projekt ustawy medialnej - dowiedział się "Dziennik".

PiS zaniepokojone sprawą posłów Sejmu Litwy z Kartą Polaka

PiS jest zaniepokojone sprawą posłów litewskiego Sejmu posiadających Kartę Polaka. Dwóm z trzech posłów AWPL grozi utrata mandatu litewskiego posła z powodu przyjęcia przez nich Karty, co budzi na Litwie kontrowersje.

Ojciec, gdy wypił, znęcał się nad córką

Ojciec nadużywał alkoholu. Gdy był pijany, bił córkę drewnianą listewką. Dziewczynka opowiedziała o tym opiekunce ze świetlicy osiedlowej. Ta o sprawie zawiadomiła policję. 47-letniego Arkadiusza L. zatrzymano. Miał prawie promil alkoholu we krwi. Został aresztowany na trzy miesiące.

Kaczyński: Pokażemy inne przypadki pijanych posłów w Sejmie

- PiS nie będzie podejmował żadnych decyzji w sprawie Elżbiety Kruk - powiedział Jarosław Kaczyński. Posłanka w czasie wczorajszych porannych głosowań w Sejmie chwiała się na nogach i niewyraźnie mówiła.

Zawieje i zamiecie na południu, dużo śniegu na północy

Zawieje i zamiecie śnieżne mogą nękać aż do jutrzejszego popołudnia całe południe Polski. na północy, nad Bałtykiem pada i ma padać śnieg. Jak zapowiada Instytut Meteorologii i Gospodarki Wodnej w ciągu doby może tam spaść nawet 20 centymetrów śniegu.

Zobacz także inne, godne uwagi serwisy. Piewrszy z nich prezentuje wysokiej jakości drzwi natomiast drugi z nich projekty domów parterowych.

Jeśli skorzystałeś z informacji przedstawionych tutaj?

Nie bądź samolubem. Daj link do serwisu http://www.theplaceofhousesinc.com wszystkim z Twojego GG.