Zoznam úloh

1. Podzemný labyrint

Zadanie

Novinka: popis nemusíš odovzdávať len na konci kola, ale môžeš už priebežne. My sa ti ho pokúsime čo najskôr opraviť a ak nebudeš mať všetko alebo niečo nebude správne, tak tvoj popis môžeš doplniť/opraviť a znovu ho odovzdať.

V krajine za siedmimi horami a za siedmimi dolinami, kde sa voda sypala a piesok lial, žila raz Červená Čiapočka. Jedného dňa ochorela Červenej Čiapočke babka. Čiapočka dostala teda za úlohu jej zaniesť obed. Mama jej nabalila do košíka koláče, víno, a z nejakého dôvodu aj kriedy, a dievča sa vydalo na cestu lesom.

Červená Čiapočka si spokojne išla po lesnom chodníčku, keď tu zrazu ide okolo skalnej steny a vidí, že v nej sú dvere. “Fúha, čo tam môže byť, to musím preskúmať,” pomyslí si. Nakukne do dverí a vidí, že za nimi je chodba. Ide po chodbe, ale tá sa o chvíľu rozvetví na dve chodby. “To vyzerá ako bludisko,” hovorí si Čiapočka. “Zaujímalo by ma, čo je v ňom. Ale ako ho ho môžem preskúmať a nestratiť sa pri tom?”

Úloha

Bludisko si môžeme predstaviť ako štvorcovú mriežku, kde každé políčko je buď stena alebo voľné. Na všetky voľné políčka sa dá dostať od vchodu po voľných políčkach. Môže vyzerať napríklad takto:

Červená Čiapočka by chcela preskúmať bludisko. To znamená, že by chcela prejsť postupne všetkými políčkami a potom sa vrátiť späť von. Nemôže teda napríklad len vojsť a pri prvej križovatke sa otočiť a vyjsť naspäť von, lebo tak nepreskúma celé bludisko.

a. Nakresli v obrázku vyššie, ako ho môže Červená Čiapočka preskúmať, teda akou cestou ho môže prejsť.

Môže sa stať, že v bludisku je cyklus. To je taká postupnosť (aspoň troch) susedných políčok, že sú všetky rôzne a prvé susedí s posledným. Napríklad tieto políčka tvoria cyklus:

b. Predpokladajme, že v bludisku nie sú žiadne cykly. Daj Červenej Čiapočke návod, ako má bludisko preskúmať. Pozor, Červená Čiapočka nemá neobmedzenú pamäť, vie si pamätať iba zopár vecí. Vie si napríklad zapamätať posledné políčko, na ktorom bola, ale nevie si zapamätať celú jej cestu bludiskom.

c. Červená Čiapočka neverí tvojmu návodu, bojí sa dvoch vecí: (1) či takto naozaj prejde celé bludisko a žiadnu časť z neho nevynechá, a (2) či trafí naspäť z bludiska von, či sa jej nestane, že by v ňom takto blúdila donekonečna. Skús ju presvedčiť, že tvoj návod takto naozaj funguje.

Červená Čiapočka sa teda odhodlane vydala skúmať bludisko podľa tvojho návodu. Po chvíli vyšla zase von, ale niečo sa jej nezdalo. Určite predsa neprešla úplne všetkými chodbami.

d. Vymysli také bludisko (už v ňom môžu byť aj cykly), že keby ho Červená Čiapočka skúmala podľa tvojho návodu z minulej úlohy, tak ho buď nepreskúma celé, alebo v ňom bude blúdiť donekonečna.

“Aha, už vidím v čom je problém,” pomyslí si Čiapočka. “Ale ako to potom spravím, aby som sa v bludisku nestratila… počkať, veď ja tu niečo mám!” Spomenie si, že v košíku má okrem jedla aj kriedy, tak jednu z nich vytiahne.

e. Červená Čiapočka si teraz môže na každé políčko, ktorým prechádza, nakresliť kriedou nejakú značku (vie kresliť len zopár jednoduchých značiek, teda môže tam napríklad spraviť čiarku, ale nemôže tam nakresliť celú mapu bludiska). Uprav tvoj predchádzajúci návod tak, aby Čiapočka preskúmala celé bludisko a nestratila sa, aj keď v ňom sú cykly.


Červená Čiapočka sa teda vydala do bludiska aj s kriedou a poctivo preskúmala každé zákutie, keď zrazu pred sebou vidí - Vlka. “Ale ale, kto to tu chodí po mojom bludisku?” pýta sa Vlk. “Ja… ja som Červená Čiapočka,” bojazlivo povie Červená Čiapočka. “Idem babke zaniesť koláče, a po ceste som uvidela vchod, tak som sa len chcela pozrieť, čo tu je. Nechcela som vôbec rušiť…”

“No dobre teda”, povie Vlk. “Neboj, ja ti nič nespravím. Len mi povedz, kde to tá tvoja babka vlastne býva?” Červenej Čiapočke odľahlo, že ju Vlk nezožerie, a tak mu povedala, kde býva jej babka. Vlk potom odbehol a Červená Čiapočka sa vrátila späť von z bludiska a pokračovala v ceste.

a, b

Stačí, ak sa bude Čiapočka stále držať pravej steny bludiska, teda vždy bude odbočovať doprava. Na príklade z úlohy (a) to potom bude vyzerať takto:

Chceli by sme ale vedieť, prečo toto určite bude fungovať pre hocijaké bludisko a nie len to, na ktorom sme si to vyskúšali. Ako vieme, že žiadne políčka nevynecháme a že sa určite nestratíme a vrátime späť k východu?

Aby sme to lepšie pochopili, ukážeme si najprv, kedy tento návod nefunguje, čo sa stane (ako nám zadanie nappovedá), keď sú v bludisku cykly.

d

Skoro hocičo s cyklami funguje, napríklad toto:

Červené políčka sú tie nenavštívené.

c

Prečo teda ten náš návod funguje akurát vtedy, keď tam nie sú cykly? Pozrime sa v obrázku v riešení (d) na tú križovatku hore. Prídeme do nej sprava, odídeme doľava, a už sa tam nikdy nevrátime, takže nikdy nepôjdeme cestou dole. To je preto, lebo sa dostaneme k východu inou cestou, takže nemusíme použiť tú červenú cestu v strede.

A to je presne to, v čom nám pomôže, keď v bludisku nie sú cykly: vtedy je medzi každými dvomi políčkami iba jedna cesta. Ak by ich bolo viac, tak by tie časti, kde sa cesty líšia, tvorili cyklus.

Pozrime sa teraz na to, čo sa stane, keď prídeme na križovatku. Bludisko si môžeme rozdeliť na (najviac) štyri časti: tú vľavo, vpravo, dole a hore od križovatky. Keďže medzi hocijakými dvoma políčkami je iba jedna cesta, tak tieto časti sú oddelené a dá sa medzi nimi dostať iba cez tú našu križovatku.

Najprv si pre zjednodušenie predstavme, že v bludisku nie sú žiadne iné križovatky. Povedzme, že sa ku križovatke dostaneme zľava. Potom sa teda vyberieme cestou dole, až kým neprídeme na koniec, kde sa otočíme a vrátime späť na križovatku. Z nej pôjdeme ďalej tým ďalším smerom (teda doprava), zase až na koniec cesty, vrátime sa, to isté smerom hore, až nakoniec sa vrátime ku križovatke a pôjdeme naspäť doľava, odkiaľ sme prišli.

No a keď je v bludisku viac križovatiek, tak to vôbec nevadí, bude to fungovať podobne: na prvej križovatke si vyberieme jeden zo smerov. Potom keď sa dostaneme k ďalšej križovatke, tak si zase vyberieme smer, a tak ďalej, až kým sa nedostaneme do slepej uličky. Vtedy sa vrátime naspäť ku poslednej križovatke a vyberieme si iný smer.

Takto postupne vyskúšame na každej križovatke všetky smery a vždy sa nakoniec vrátime tam, odkiaľ sme prišli. Preto určite prehľadáme celé bludisko a nestratíme sa v ňom.

c (iné riešenie)

Ak vám toto riešenie prišlo príliš zložité alebo sa vám nepáčilo, je ešte iný spôsob, ako sa na to dá pozerať. Keď sa držíme pravej steny, ideme vlastne po obvode bludiska.

V bludisku bez cyklov musí každé políčko (aspoň rohom) susediť so stenou, inak by tie susedné políčka tvorili cyklus. Predstavme si, že by sme nejaké políčko nenavštívili (ako napríklad v riešení úlohy (d)). Ono susedí s nejakou stenou a tá má tiež nejaký obvod. Ale keďže sme ho nenavštívili, tak tento obvod musí byť iný ako ten, po ktorom sme išli. Takže políčka na tomto obvode tvoria cyklus.

V bludisku bez cyklov sa toto teda nemôže stať, a preto keď takto prehľadávame bludisko bez cyklov, tak ho určite prejdeme celé.

e

Úlohu už vieme riešiť pre bludisko bez cyklov. Keď máme v bludisku cykly, čo keby sme pomocou kriedy skúsili spraviť niečo, aby tam tie cykly ako keby neboli?

Stačí si robiť čiarky na políčka, kde sme už boli. Potom vždy, keby sme mali “uzavrieť cyklus”, teda prísť z políčka, kde sme ešte neboli, na políčko, kde sme už boli, tak tam jednoducho nepôjdeme, ako keby tam bola stena. Takto všetky cykly odrežeme tam, kde sa pripájajú, takže tam už nebudú cykly a môžeme použiť riešenie predchádzajúcich úloh.

Pre odovzdávanie sa musíš prihlásiť.