Kasutaja:Germohn/Hanoi tornide ülesanne

Allikas: Vikipeedia

Hanoi tornid (Brahma tornid) on matemaatiline mäng või pusle, mis koosneb kolmest vardast ja erineva suurusega ketastest. Mängu alguses on kõik kettad esimese varda otsas kasvavas järjekorras suurim kõige all, tekitades koonuse. Mängu eesmärk on kõik kettad liigudata esimeselt vardalt kolmandale. Seejuures tuleb järgida kolme reeglit: korraga tohib liigutada ainult ühte ketast, iga käik tähendab pealmise ketta võtmist ja selle asetamist teise varda otsa, kusjuures tuleb järgida, et ei asetataks suuremat ketast väiksema peale (rikkudes sellega koonuse kuju).

Põritolu: pusle mõtles välja Prantsuse matemaatik Edouard Lucas(1842-1891) aastal 1883. Legendi kohaselt on ühe India templi suures ruumis kolm suurt sammast 64 kullast kettaga, kus braahmanid, järgides iidset ennustust, neid kettaid aegade algusest liigutavad. Sealjuures järgides just neid samu ettekirjutatud reegleid. Seetõttu on mõistatus tuntud ka kui Brahma tornid. Legendi kohaselt pärast viimase ketta tõstmist tuleb maailmalõpp. Ei ole selge kas Lucas mõtles selle legendi välja või oli sellest inspireeritud. Kui legend oleks tõsi ja braahmanid suudaksid liigutada ühe ketta sekundis, kuluks neil mõistatuse lõpetamiseks 264 − 1 sekundit ehk ligikaudu 585 miljardit aastat, ehk 18 446 744 073 709 551 615 käiku. Legende on mitmeid, näiteks mõnes on templi asemel tegemist kloostriga ja preestrite asemel tõstavad kettaid mungad. Samuti võib tempel või klooster olla maailma eri paigus sealhulgas Hanoi või Vietnam ja võib siduda ükskõik millise religiooniga. Mõne legendi kohaselt võivad preestrid või mungad teha ainult ühe käigu päevas.

Lahendus: Mängu võib mängida erineva hulga ketastega, kuigi enamikes variantides kasutatakse umbes 7-9 ketast. Mäng võib esialgu paljudele võimatuna tunduda, kuid on lahendatav väga lihtsa algoritmiga. Hanoi tornide lahendamine võtab täpselt 2n − 1 käiku, kus n on ketaste arv.