Hogy kellett megoldani a Celeb vagyok, ments. C. musorban levo logikai feladatot?
a feladat hogy atpakolni az utolso oszlopra a kockakat hogy ellerjek a kulcsot az oszlop felett.
A kis kockara nem lehetett pakolni nagy kockat csak kisebb kerulhet fele.
Nem egy bonyolult dolog. Keress rá a Hanoi-torony problémára.
5 magasat így kell a harmadikra pakolni:
- megfogod egyben a felső 4-et és "átrakod" a másodikra
- a legalsót átteszed a harmadikra
- a másodikról a négyet megfogod egyben, és "rárakod" a harmadikra
De nem lehet 4-et egyszerre pakolni. Ezért
- megfogod a felső hármat és "átrakod" a harmadikra
- a negyediket átteszed a másodikra
- a felső hármat a harmadikról egybefogva "rárakod"
De hármat se lehet egyszerre a harmadikra pakolni, ezért:
- megfogod a felső kettőt, "átrakod" a másodikra
- a harmadikat átteszed a harmadik rúdra
- a felső kettőt "rárakod" a másodikról
De kettőt se lehet egyszerre... arra már ugye rájössz?
És így kell a többit is végiggondolni. Sok mozzanatot kell fejben tartani, hisz a fenti "átrakodások" csak fejben mehetnek, de így lesz a leggyorsabb. Így az 5 magas Hanoi torony átpakolás 2⁵-1 = 31 lépést igényel.
---
Ha a fentiek nem rémísztettek még meg, akkor itt egy másik módszer, ez még kevésbé celebeknek való:
Kettes számrendszerben számolsz egyesével:
00000
00001
00010
00011
00100
00101
...stb.
11101
11110
11111
A legutolsó bit felel meg a legkisebb kockának, a jobbról második bit a másodiknak, stb. a bal oldali bit a legnagyobbnak. Ahogy számolsz, mindig azt a kockát kell mozgatni, ami éppen 0-ról 1-re váltott a növeléskor. (Ez egyébkét az adott szám jobbról legelső 1-es bitje.) A kockát pedig saját magától jobbra kell lerakni az első lehetséges helyre (ahol nem nála kisebb van felül), A "jobbra" úgy értendő, mintha a rudak egy körben lennének, szóval a jobb szélsőtől jobbra a bal szélső van.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!