Kuidas Hanoi torni mängida
- Vali, mitu ketast soovid (3 kuni 8). Kõik algavad vaial 1 virna pandult, suurim all ja väikseim peal.
- Puuduta vaia, et võtta selle ülemine ketas, seejärel puuduta vaia, kuhu soovid selle tõsta. Ketta saad ka teisele vaiale lohistada.
- Tõsta üks ketas korraga ja ära pane kunagi ketast väiksema ketta peale.
- Võidad, kui kogu torn on teisel vaial. Loendur näitab sinu käike ja võimalikku miinimumi; kui jääd toppama, mängib nupp Lahenda lühima lahenduse ette.
Loogika ja rekursiooni klassika
Hanoi torn on matemaatiline pusle, mille leiutas prantslane Édouard Lucas 1883. aastal. n kettaga on käikude miinimum 2 astmes n miinus 1: kolme kettaga 7, nelja kettaga 15, viie kettaga 31 ja kaheksa kettaga 255. Iga lisatud ketas kahekordistab töö ja lisab ühe.
Lahendamiseks on süstemaatiline viis. n ketta torni tõstmiseks tõsta kõigepealt ülemised n−1 ketast vabale vaiale, seejärel suurim ketas sihtvaiale ja lõpuks n−1 ketast selle peale. See on tüüpiline rekursiooni näide. Veel üks nipp: väikseim ketas liigub igal paaritul käigul alati samas suunas (paaritu arvu kettaga vaialt 1 vaiale 3, vaialt 3 vaiale 2 ja vaialt 2 vaiale 1; paarisarvu kettaga vaialt 1 vaiale 2, vaialt 2 vaiale 3 ja vaialt 3 vaiale 1); paaris käikudel on kahe ülejäänud vaia vahel võimalik ainult üks käik.
Legend räägib, et mungad tõstavad 64 kuldkettast koosnevat torni; see võtaks üle 18 kvintiljoni käigu ehk sadu miljardeid aastaid, kui teha üks käik sekundis. Kõike mängitakse sinu brauseris: midagi ei saadeta ühelegi serverile ja seadmesse salvestatakse ainult sinu parim tulemus.
Head teada
- Rekord (vähim käike) salvestatakse iga ketaste arvu kohta eraldi ainult selles brauseris: kui kustutad saidi andmed, läheb see kaotsi.
- Kui kasutad nuppu Lahenda, ei lähe mäng rekordi arvestusse. Nupp arvutab parima lahenduse sellest seisust, kus oled, mitte algusest.
- 8 kettaga on vaja vähemalt 255 käiku; automaatne lahendus mängib need ette mõnusas tempos ja saad selle igal hetkel peatada.
Korduma kippuvad küsimused
Mis on Hanoi torni eesmärk?
Tõsta kõik kettad vaialt 1 teisele vaiale, üks korraga, panemata kunagi suurt ketast väiksema peale.
Mitu käiku on vähemalt vaja?
2 astmes ketaste arv, miinus 1: 3 kettaga 7, 4 kettaga 15, 5 kettaga 31, 6 kettaga 63, 7 kettaga 127 ja 8 kettaga 255. Ülal olev loendur näitab sinu mängu miinimumi.
Kuidas kettaid telefonis liigutada?
Puuduta lähtevaia ja seejärel sihtvaia või lohista ülemine ketas sõrmega teisele vaiale. Arvutis saad kasutada ka klahve 1, 2 ja 3.
Milleks on nupp Lahenda?
See mängib praegusest seisust samm-sammult ette lühima lahenduse. See on kasulik mustri õppimiseks; seejärel saad alustada uut mängu ja proovida ise.
Kas on nippi, kuidas mitte eksida?
Jah: väikseim ketas liigub paaritutel käikudel ja alati samas suunas; paaris käikudel on kahe ülejäänud vaia vahel ainult üks lubatud käik.
Kas see on tasuta? Kas pean midagi installima?
See on tasuta, ei vaja registreerimist ega installimist ning töötab telefonides ja arvutites. Andmeid ei laadita ühelegi serverisse üles.