Darbas kranu

Taškai: 9

Bebras dirba kranininku. Aikštelėje pastatytos dvi dėžės – A ir B. Iš pradžių dėžė A stovi ant 1-osios pakylos, dėžė B – ant 2-osios.
Kranas gali vykdyti šešias komandas: VIRŠUN, ŽEMYN, DEŠINĖN, KAIRĖN, SUGRIEBTI, PALEISTI.
Jos nurodomos spaudžiant komandų mygtukus.

Padėkite bebrui sukeisti dėžes: A turi būti ant 2-osios pakylos, o B – ant 1-osios!

Paaiškinimas

Iš šio uždavinio turėtų būti aiškiai matoma, kad reikia rasti nuoseklųjį algoritmą, kuris du objektus pastumia dviem pozicijomis. 
Tai pasiekiama tik tada, kai atsiranda trečioji pozicija.
Jei turėtume daugiau kranų, kurie veiktų vienu metu ir vienas kitam netrukdytų, tai galėtume naudoti lygiagretųjį algoritmą, kuriam nereikėtų trečiosios pozicijos.

Atsakymas

Yra be galo daug sprendimų. Sprendžiant uždavinį reikia, kad:
dėžė A būtų 2 pozicijoje, dėžė B – 1 pozicijoje, kranas – viršuje arba apačioje, griebtuvas –atidarytas arba uždarytas.
Vienas iš trumpiausių sprendimų yra:
ŽEMYN, SUGRIEBTI, VIRŠUN, DEŠINĖN, DEŠINĖN, 
ŽEMYN, PALEISTI, VIRŠUN, KAIRĖN, 
ŽEMYN, SUGRIEBTI, VIRŠUN, KAIRĖN, 
ŽEMYN, PALEISTI, VIRŠUN, KAIRĖN, KAIRĖN, 
​ŽEMYN, SUGRIEBTI, VIRŠUN, KAIRĖN, ŽEMYN.

Interaktyvi užduotis

 

 
Informacija atnaujinta 2015-12-03 07:50:57