Úvodní stránka | Tato stránka v originále

Věž Hanoi

Věž Hanoi (také volal Věže Hanoi) je matematická hra nebo hádanka. To sestává ze tří věšáků a množství disků různých velikostí, které mohou obrábět na nějakém věšáku. Hádanka začíná disky úhledně nacpaný v pořadí velikosti na jednom věšáku, nejmenší nahoře, tak dělat konický tvar.

Věže Hanoi (fotka EvH) ' '

Předmět hry má pohybovat celou hromadou k dalšímu věšáku, dodržovat následující pravidla:

Tabulka s obsahem
1 jak řešit to
2 vysvětlení algoritmu
3 algoritmus praktické zkoušky
4 původy
5 aplikací
6 vnějšího spojení

Jak řešit to

Většina hračkových verzí hádanky má 8 disků. Hra vypadá nemožná k nováčkovi, přesto je rozpustitelný s jednoduchý algoritmus:

Rekurzivní algoritmus

Pohybovat se n disky od věšáku k věšáku B:

  1. pohyb n-1 disky od k C. toto opustí disk # n osamocený na věšáku
  2. disk pohybu # n od k B
  3. pohyb n-1 disky od C k B tak oni sedí na disku # n

Nahoře je rekurzivní algoritmus: uskutečnit kroky 1 a 3, aplikovat stejný algoritmus znovu pro n- 1. Celý postup je konečné množství kroků od té doby, co na nějakém místě algoritmus bude požadovaný pro n = 1. Tento krok, pohybovat jediným diskem od věšáku k věšáku B je triviální.

Vysvětlení algoritmu

Více člověka-čitelná verze stejného algoritmu následuje:

  1. disk pohybu 1 k věšáku B
  2. disk pohybu 2 k věšáku C
  3. disk pohybu 1 od B k C, tak to sedí na 2
Vy teď máte 2 disky vyrovnaly správně na věšáku C, věšák B je prázdný znovu
  1. disk pohybu 3 k věšáku B
  2. opakovat první 3 kroky nahoře pohybovat se 1 a 2 sedět na vrcholu 3

Každý čas vy jste re-stavět věž od disku i nahoru k 1, disk pohybu i + 1 od věšáku, startovat zásobník a pohyb pracovní věž znovu.

Algoritmus praktické zkoušky

Střídavě disk pohybu 1 a jeden z větších disků. Jestliže dva větších disků být dostupný, vždy pohybovat tím menším na větší. Když vy se pohybujete zvláštní-počítal disk, vždy pohybovat tím jeden věšák clockwise; když vy se pohybujete dokonce-počítal disk, vždy pohybovat tím jeden counterclockwise věšáku.

V zášti jednoduchosti algoritmů, nejkratší způsob, jak vyřešit problém s n disky bere 2n- 1 pohyby. To není známé obecně kolik pohybů je vyžadováno vyřešit hádanku když tam být více než 3 věšáky, ačkoli to by mělo brát méně nebo se rovnat krokům než 2n- 1 pohyby. (pro poněkud intuitivní důvody: 3-řešení věšáku může být používáno pro více-než-tři-hry věšáku jestliže jeden pouze “zamítne” jiné věšáky.)

Věž Hanoi je problém často učil programování začátku. Ilustrovaná verze této hádanky je programována do emacs editora, zpřístupňovaný tím, že píše M-x hanoi.

Původy

Hádanka byla vynalezena francouzským matematikem Edouard Lucas v 1883. Tam je legenda o Hindském chrámu jehož kněží byli stále zaneprázdnění pohybováním soubor 64 disků shodovat se k pravidlům věže Hanoi hádanky. Shodovat se k legendě, svět by skončil, když kněží dokončili jejich práci. Hádanka je proto také známá jako věž Brahma hádanky. To není jasné zda Lucas vynalézal tuto legendu nebo byl inspirován tím.

Interestingly, jestliže legenda byla pravdivá, a jestliže kněží byli schopní k diskům pohybu v poměru 1 za sekundu používat nejmenší množství pohybů, to by vzalo kněze 264 - 1 nebo hrubě 1.8 × 1019 sekundy dokončit hádanku. Toto je ekvivalentní k asi 580,000,000,000 rokům, který je více než odhadovaný věk vesmíru.

Dvě strany o původech na hádance:

A další jávská simulace s dalšími odkazy:

Aplikace

Věž Hanoi je často používána v psychologickém průzkumu na problém platit. Tam dělat existovat také varianty této úlohy volaly Towera Londýna pro diagnózu neuropsychological a léčbu výkonných funkcí.

Vnější spojení