1. Hüppemäng

Veroonika armastab hüpata. Ta leidis 17 ruutu, mis asetsevad ühel joonel, ja koostas nendest mänguplaani.

Veroonika pani mündi ruudustiku ühte otsa ja seisis ise teise otsa, näoga mündi poole.

Ta soovib hüpata rea igale ruudule, järgides järgmisi reegleid:

Küsimus

Milline mänguplatsi plaanidest viib ta kõigi teiste ruutude külastamise järel mündi juurde?

[Raadionupud]

A.

B.

C.

D.

Vastus

Õige vastus on: D.

Vastuse selgitus

Hüppamise järjekord on tähistatud nooltega.

Variandid A ja B ei ole õiged, kuna tüdrukul jääb vahele rea lõpus olev mündiga ruut ning samuti ka vasakult teine ja kolmas ruut. Variant C ei ole õige, kuna ta jätab vahele vasakult teise ruudu.

See on informaatika!

Toimingute järjekorra leidmist eesmärgi saavutamiseks vastavalt etteantud reeglitele nimetatakse algoritmiseerimiseks. Roboti või arvutirakenduse saab programmeerida nii, et see töötaks etteantud reeglite järgi. Kui vajame tulemuseks konkreetset väljundit, peame määrama ka sobiva sisendi. Oletame, et meil on pikk kitsas L-kujuline koridor ning meie puhastusrobot suudab minna ainult otse ja keerata 90° paremale, peame selle panema L-tähe lühema osa otsa, muidu ei saa tervet koridori puhtaks.

Kategooriad

2. Lennukiangaar

Kopralinna lennuväljal on ümmarguses angaaris asuvale pöörlevale alusele pargitud kuus lennukit. Alust saab pöörata vasakule või paremale, kasutades kahe noolega juhtpaneeli. Ühe nupuvajutusega pööratakse alust täpselt ühe parkimiskoha võrra vastavalt noolele kas vasakule või paremale. Angaari värav on parajasti nii lai, et üks lennuk saaks välja veereda. Alus pöörleb väga aeglaselt, seega mida vähem nupuvajutusi on vaja, seda kiiremini saab töö tehtud.

Hommikuti, kui piloodid tulevad lennukitele järele, on värava juures alati parkimiskoht nr 1. Parimal juhul tuleb nooleklahve vajutada viis korda, et kõik lennukid välja veereks. See juhtub siis, kui piloodid soovivad saada parkimiskohtadele järjekorras 1, 2, 3, 4, 5, 6 (siis tuleb viis korda järjest vajutada parempoolsele noolele) või järjekorras 1, 6, 5, 4, 3, 2 (siis tuleb viis korda järjest vajutada vasakpoolsele noolele).

Küsimus

Milline on halvim juhtum ehk milline parkimiskohtadele juurdepääsu järjekord nõuab kõigi lennukite väljaveeremiseks kõige rohkem nupuvajutusi?

(Sisesta kuus erinevat numbrit, näiteks 654321. Kui võimalikke vastuseid on mitu, sisesta ükskõik milline neist.)

[Tekstikast]

Vastus

Õige vastus on: 413625 või 415263.

Vastuse selgitus

Halvimaid järjekordi on kaks: 4, 1, 3, 6, 2, 5 ja 4, 1, 5, 2, 6, 3.

Halvima juhu ja seega ka õige vastuse saab leida, kui valida järgmiseks alati väravast kõige kaugemal asuv mittetühi parkimiskoht. Siin on vaja ette kujutada nii iga pöörde tulemust kui ka seda, kuidas alusel koht koha järel tühjaks saab. Kuna alust saab pöörata mõlemas suunas, on lahendusi rohkem kui üks.

4, 1, 3, 6, 2, 5:

4, 1, 5, 2, 6, 3:

Peaks olema lihtne näha, et ühe või kahe lennuki korral on ainult üks lahendus. Edasi on paarisarvu lennukite korral lahendusi alati kaks, paaritu arvu lennukite korral aga neli. Hea küsimus järele mõtlemiseks: miks see nii on?

See on informaatika!

Ümmarguse angaari eeliseks on, et see võimaldab ruumi kokku hoida. Aga kuidas on lood ajaga? Kui lennukid on pargitud pilootide saabumise järjekorras, saavad nad kiiresti lennukitesse istuda ja õhku tõusta. Lennukite kättesaamiseks on see parim juhtum, kuid nagu see ülesanne näitas, on enamike protsesside puhul ka halvimad juhud. Halvimal juhul läheb aeg kaotsi, seega tuleb otsustada, kas tähtsam on ruumi või aja kokkuhoid.

Informaatikas on protsessi efektiivsuse hindamine väga oluline. Kuigi probleemi parimaid juhtusid on ka hea teada, on just halvim võimalik juht lahenduse tõhususe iseloomustamisel olulisem. Tõhusus tähendab, et ressursse nagu aeg, energia ja salvestusruum kasutatakse säästlikult.

Tõhusa ladustamise näidet praktiseeritakse tänapäeval postimüügiäris: et kaupadele kiiremini juurde pääseda, ei järjestata neid sageli ei tähestiku ega artiklinumbri järgi; selle asemel võetakse kaupade paigutamisel arvesse, kui sageli neid tavaliselt ostetakse.

Kategooriad

3. Suusakuurort

Pildil on suusakuurordi kaart koos suusaradade ja suusatõstukitega:

Suusatajad kasutavad ülesmäge sõitmiseks ainult tõstukeid ja allamäge suusatavad ainult mööda kaardil märgitud radu. Kuurordis on kuus suusarada: A-C, C-B, C-E, D-F, F-H ja G-F.

Kopra-Vello vedas sõbraga kihla, et ta suudab suusatada nii, et kasutab iga tõstukit ja iga suusarada täpselt ühe korra ilma vahepeal kuidagi muud moodi ringi liikumata.

Küsimus

Millisest punktist peab Vello alustama, et seda teha?

[Raadionupud]

A. Punktist A

B. Punktist B

C. Punktist C

D. Punktist D

E. Punktist E

F. Punktist F

G. Punktist G

H. Punktist H

Vastus

Õige vastus on: C (punktist C).

Vastuse selgitus

Et kõigist suusaradadest täpselt ühe korra alla sõita ja iga suusatõstukit täpselt ühe korra kasutada, peab punkte läbima järjekorras C, B, A, C, E, D, F, H, G, F.

Järgmisel joonisel on kujutatud suusatõstukid ja suusarajad ning Vello liikumise suund:

Jooniselt on näha, et igal punktil peale C ja F on täpselt üks sisenev ja üks väljuv tee. Punktil C on kaks väljuvat teed (B ja E suunas), samas kui punktil F on kaks sisenevat teed (punktidest D ja G). See tähendab, et lahendus peab kindlasti algama punktist C ja lõppema punktis F.

Kui alustada punktist C liikumist punkti E suunas, ei ole pärast seda enam võimalik punktidesse A ja B pääseda. Seega on ainus võimalik lahendus alustada punktist C liikumist punkti B suunas. Siis on igal sammul alati üks veel kasutamata rada või tõstuk, millega edasi liikuda.

See on informaatika!

Vastuse selgituses toodud joonist nimetatakse graafiks (ingl graph). Graafil on tipud (punktid, mis tähistavad lippe) ja servad (jooned, mis tähistavad radu ja tõstukeid). Selle ülesande graaf on suunatud graaf (ingl directed graph, digraph), sest on oluline teada, millises suunas ühest tipust teise saab liikuda; seda näitavad servade otstes olevad nooled.

Graafe kasutatakse informaatikas üsna sageli, et esitada ülesannet abstraktsel kujul. Nagu näeme, võib selline graaf sisaldada ülesande lahendamiseks piisavalt teavet.

Kategooriad

  • Info mõistmine
  • Diskreetne matemaatika
  • Graafid

4. Saarte ühendamine

Kuuel saarel elav džunglikogukond soovib need saared ühendada, ehitades rippsildade võrgustiku. Selleks tehti võimalike sildade plaan, kus arvud näitavad iga silla ehitamise kulu.

Kogukond soovib ühendada saared sildadega nii, et igalt saarelt oleks võimalik liikuda igale teisele saarele (kas otse või muude saarte kaudu). Samas soovib kogukond ehitada sildu võimalikult odavalt.

Plaanil ristuvad sillad on erinevatel kõrgustel ja vee kohal ühelt sillalt teisele astuda ei saaks.

Küsimus

Kui palju minimaalselt maksab kõigi kuue saare ühendamine?

[Täisarv]

Vastus

Õige vastus on: 44.

Vastuse selgitus

  1. Alustame odavaimast sillast AC (hind 6).
  2. Seejärel valime odavuselt järgmise silla BD (7).
  3. Odavuselt kolmas sild on CE (8).
  4. Hinnalt järgmine on AE (9). Aga kui me selle ehitaks, saaksime ringi AECA, mis tähendab, et meil pole seda silda tegelikult üldse vajagi: saarte A, C ja E vahel saame liikuda ka ilma silda AE ehitamata.
  5. Neljas ehitatav sild on CD (10).
  6. Järgmine sild AB (11) tekitaks jälle ringi (ABDCA).
  7. Sarnaselt tekitaks sild BE (12) ringi (ACDBEA).
  8. Viies sild, mille peame ehitama, on BF (13).

Nüüd on meil kõik kuus saart ühendatud ja selleks ehitatud sildade hinnad kokku on 6+7+8+10+13=44.

Kuidas me aga teame, et see on kõige odavam võimalus?

Esiteks paneme tähele, et kuue saare ühendamiseks on kindlasti vaja viit silda. Iga uus sild ühendab kaks üksust üheks, ehk vähendab üksuste arvu ühe võrra. Alguses on meil iga saar eraldi üksus ja lõpuks on nad kõik ühendatud üheks üksuseks, seega on üksuste arv vähenenud viie võrra. Selle saavutamiseks on meil vaja viit silda.

Teiseks võime iga ehitamata jäetud silla kohta arutada nii: kui me selle silla ehitaks, võiksime ehitamata jätta ühe neist ülejäänud sildadest, millega koos uus sild ringi moodustab; aga nii vahetaks me odavama silla kallima vastu ja sellega läheks ka kõigi sildade ehitamise summa vastavalt suuremaks.

Seega on kindel, et eeltoodud ahne algoritm (ingl greedy algorithm) annab selles ülesandes kindlasti parima võimaliku lahenduse.

See on informaatika!

Arvutiteaduse seisukohalt on see graafis minimaalse kaaluga aluspuu leidmise ülesanne. Graaf (ingl graph) on struktuur, mis koosneb tippudest (meie ülesandes saared) ja neid ühendavatest servadest (meie ülesandes sillad). Üht graafi nimetatakse teise alamgraafiks, kui selle võib saada teisest graafist mingi hulga servade ja tippude kustutamisega (seejuures võib servi kustutada eraldi, aga tipuga koos kustutatakse alati ära ka kõik sellega seotud servad).

Graafi aluspuuks (ingl spanning tree) nimetatakse sellist alamgraafi, milles on alles kõik tipud ja parasjagu niipalju servi, et igast tipust igasse teise on täpselt üks tee. Graafi aluspuu kaaluks nimetatakse allesjäänud servade kaalude (meie ülesandes sildade hinnad) summat.

Graafi aluspuu leidmiseks on teada mitu meetodit. Eelpool kirjeldatud algoritm (lisame servi nende kaalude kasvamise järjekorras, jättes lisamata ainult need, mis tekitaks tsükli) on tundud Kruskali algoritmi (ingl Kruskal's algorithm) nime all.

Kategooriad

  • Diskreetne matemaatika
  • Graafid

5. Hiiremäng

Kaks sõpra, Bob ja Ralph, mängivad mängu. Alustuseks tõmbavad nad paberi alumisse äärde musta joone ja nimetavad seda "maaks". Seejärel joonistavad nad mõned sinised ja punased lõigud, luues hiirekujulise kujundi:

Mängu reeglid on järgmised:

  • Nad kustutavad kordamööda ühe lõigu, kuid Bobil on lubatud kustutada ainult siniseid ja Ralfil ainult punaseid jooni.
  • Lõigu kustutamisel kustutatakse nii see lõik ise kui ka kõik teised lõigud, mis pole enam maaga ühendatud.
  • Esimene mängija, kellel pole enam ühtegi lõiku eemaldada, loetakse kaotajaks.

Allpool on toodud üks võimalik käikude jada. Iga käigu kohta on kaks joonist: esimene joonis näitab halli värviga lõiku, mida mängija kavatseb kustutada, teine ​​joonis aga selle kustutamise tulemust.

Bobi käik:

Ralphi käik:

Bobi käik:

Ralphi käik:

Kuna Bobil pole enam ühtegi lõiku, mida eemaldada, kaotab ta mängu ja Ralph kuulutatakse võitjaks.

Nummerdame sinised lõigud järgmiselt:

Küsimus

Millise lõigu peaks Bob esimesena kustutama, et kindlasti võita, isegi kui Ralph teeb igas seisus oma parima võimaliku käigu?

[Raadionupud]

A. Lõigu 1

B. Lõigu 2

C. Lõigu 3

D. Lõigu 4

E. Lõigu 5

F. Bobil pole võimalik võita

Vastus

Õige vastus on: B (lõigu 2).

Vastuse selgitus

Tõestamaks, et 2. lõigu eemaldamine tagab Bobi võidu, valime kõigepealt ühe Ralphi võimaliku vastuse sellele avakäigule. Sealt edasi mängime mänge tervikuna süstemaatiliselt läbi, kuni leiame võitnud käikude jada (või strateegia). Allolev joonis näitab võidustrateegiat, kui Ralph eemaldab "näo" vasaku poole:

Pimesi mängimise vältimiseks on Bobil kasulik sundida Ralph seisu, mis on olemas eeltoodud võidustrateegias, kuna see võimaldab Bobil võitu kindlustada, kasutades sama käikude jada nagu eeltoodud strateegias. Järgmistel joonistel on need olukorrad tähistatud erinevat värvi ristkülikutega, mis illustreerivad, kuidas nimetatud ideed saab rakendada Ralphi järelejäänud vastuste vastu Bobi avakäigule:

  • Ralph eemaldab "näo" parema poole
  • Ralph eemaldab "keha" vasaku poole
  • Ralph eemaldab "saba"

Täielikkuse huvides võib ka näidata, et Bobil pole võiduvõimalust, kui ta alustab mõne teise lõigu kustutamisega ja Ralph valib igal käigul enda jaoks ideaalse vastuse:

  • Bob alustab 1. lõigu eemaldamisega
  • Bob alustab 3. lõigu eemaldamisega
  • Bob alustab 4. lõigu eemaldamisega

See on informaatika!

Selles ülesandes esitatud mäng (tuntud ka kui Hackenbush, https://en.wikipedia.org/wiki/Hackenbush) kuulub nn kombinatoorsete mängude hulka. Need on kahe mängijaga mängud, mis vastavad kolmele kriteeriumile:

  1. mängijad teevad käike vaheldumisi;
  2. mängud on deterministlikud (neid ei mõjuta juhuslikkus, näiteks täringute veeretamine vms);
  3. kõigil mängijatel on alati olemas täielik teave mängu seisust (nende eest ei peideta infot, näiteks ei varjata enda kaarte vms).

Populaarsed selliste mängude on näited male, kabe, go ja trips-traps-trull.

Kombinatoorsed mängud on informaatika (eriti teoreetilise arvutiteaduse ja tehisintellekti) jaoks väga väärtuslikud uurimisobjektid. Huvivaldkondadeks on võitja väljaselgitamine, kui mõlemad pooled mängivad alati parima võimaliku käigu (nn täiuslik mäng), strateegiate leidmine võiduvõimaluste maksimeerimiseks ja heuristika, et hinnata, kummal mängijal on antud seisus eelis.

Selliste mängude analüüsimiseks saab kasutada nn mängupuid (ingl game tree), mis kirjeldavad kõiki võimalikke seise ja igas seisus võimalikke käike. Mängudes võib aga olla väga palju võimalikke seise, mis muudab kogu mängupuu genereerimise ebaefektiivseks või isegi võimatuks. Sellega toime tulekuks on välja töötatud algoritmid, mis väldivad samade positsioonide mitmekordset uurimist (nagu tegime oma lahenduses) või "kärbivad" mängupuud sellega, et ei uuri edasi seise, mille hinnangud on mingist lävendist halvemad. Tehisintellektis uuritakse selliseid tehnikaid nagu stiimulõpe (ingl reinforcement learning), kus arvutit treenitakse "oma vigadest õppides" ja parandatakse nii otsuste langetamist keeruliste mängude (nt male ja go) puhul.

Kategooriad

  • Diskreetne matemaatika
  • Kombinatoorika

6. Sahver

Kopra-Mati leidis oma toidu jaoks kaks head peidukohta. Meelespidamiseks soovib ta need kaardil ristidega märkida. Aga kui tema rivaal Kati kaardi leiaks, teaks ta, kust otsida!

Kati segadusse ajamiseks lisab Mati kaardi teistesse ruutudesse mõned juhuslikud ristid, jälgides, et ristide koguarv igas reas ja veerus oleks paarisarv (tuletame meelde, et ka 0 on paarisarv). Seejärel kustutab ta need kaks risti, mis näitasid tema peidukohti. Valminud kaart on selline:

Küsimus

Millistes ruutudes asuvad Mati toiduvarud?

(Kirjuta kahe ruudu tähised, näiteks A1 B2.)

[Tekstikast]

Vastus

Õige vastus on: C3 E6.

Vastuse selgitus

Siin on kahe peidukoha asukohad:

Nende leidmiseks vaatame lõplikku kaarti ja leiame, et seal on kaks rida ja kaks veergu, kus ristide arv pole paaris, nendeks on read 3 ja 6 ning veerud C ja E. Järgneval joonisel on need read ja veerud tähistatud kollase värviga:

Kaks kustutatud risti peavad olema niisiis nendes ridades ja veergudes, me peame leidma viisi, kuidas need uuesti lisada, et taastada paarisarvulisuse omadus.

Kollaste ridade ja veergude ristumiskohti on neli. Neist ülemine parempoolne (E3) on juba tähistatud ristiga, seega ei saa see olla peidukohaks: teame, et Mati on tegelikke peidukohti tähistavad ristid kustutanud. Nii peame selleks, et taastada paarisarv riste real 3, lisama risti ülemisse vasakpoolsesse ristumisruutu ehk ruutu C3. Nüüd teame ühte peidukohta.

Teise peidukoha rist ei saa olla alumises vasakpoolses ristumisruudus ehk ruudus C6, kuna tulemuseks oleks 3 risti veerus C ja 3 pole paarisarv. Ainus valik on alumine parempoolne ristumisruut ehk E6. Nii saamegi ülaltoodud vastuse.

Siin on kaart, nagu ta oli enne ristide kustutamist, ja tõesti on paarisarv riste igas reas ja igas veerus:

See on informaatika!

Mati kasutab siin võtet, mis on seotud arvutiteaduses sageli tarvitatava paarsusbiti mõistega. See on osa suuremast hulgast võtetest, mis on tuntud vigade tuvastamise ja parandamise meetoditena. Idee seisneb selles, et kui me peame salvestama või edastama andmeid bittide (ühtede ja nullide) jadana, lisame jadale täiendavaid bitte, mis aitavad meil tuvastada, kas edastusel või salvestamisel on tekkinud vigu, näiteks selliseid, kus saadeti 1, aga vastu võeti 0.

Kui kasutame lihtsat veatuvastuskoodi, võime lisada paarsusbiti, nii et ühtede arv oleks paaris. Nii lisame jadale "0110101" nulli, et saada jada "01101010" ja ühtede arv jadas jääks paarisarvuks. Kui näiteks teine bitt võeti valesti vastu ning saadi hoopis jada "00101010", siis vastuvõetud sõnum ei vasta meie paarsusnõudele (jadas on paaritu arv ühtesid). Paneme tähele, et kui vigaseid bitte on rohkem kui üks, ei pruugi selline lihtne meetod probleemi tuvastada.

Kategooriad

  • Info mõistmine
  • Diskreetne matemaatika
  • Kodeerimine

7. Šiffer 8

Kaheksanurga igasse tippu on kirjutatud kolm või neli tähte. Must nool osutab kaheksanurga keskpunktist mingile täherühmale. Noolt saab pöörata ainult päripäeva.

Kasutame seda kaheksanurka ja noolt sõnumite kodeerimiseks. Uue sõnumi kodeerimise alguses osutab nool täherühmale ABC. Edasi kodeerime sõnumi iga tähe nii, et:

  • Tähe koodi esimene number näitab, mitme täherühma võrra tuleks noolt praegusest positsioonist edasi pöörata, et see hakkaks näitama kodeeritavat tähte sisaldavale rühmale.
  • Tähe koodi teine number näitab kodeeritud tähe asukohta selles rühmas, millele nool osutab.
  • Tähtede koodid on üksteisest eraldatud sidekriipsudega.

Näiteks sõnumi "TREE" kodeerime jadaga 62-73-42-02.

Küsimus

Kuidas me kodeerime sõnumi "WATER"?

[Raadionupud]

A. 72-11-26-32-53

B. 62-11-62-22-43

C. 62-11-26-22-53

D. 72-11-62-32-43

Vastus

Õige vastus on: D (72-11-62-32-43).

Vastuse selgitus

Õige vastuse saame, kodeerides sõnumi "WATER" tähthaaval. Sõnumi kood sisaldab 5 numbripaari:

  • Kodeerimise alguses osutab nool täherühmale ABC.
  • Täht W asub rühmas, millele nool osutab pärast seitsme rühma võrra edasi pööramist. W on rühma VWX teine täht, seega on esimese tähe kood 72.
  • Sõnumi teine täht on A. See on rühmas ABC, millele nool osutab pärast ühe rühma võrra pööramist oma praegusest asukohast täherühmas VWX. A on rühmas esimesel positsioonil, nii et teine tähekood on 11.
  • T rühmani jõuame noolt kuue rühma võrra pöörates ja T on rühma teine täht, seega kolmas tähekood on 62.
  • Täht E on rühmas, millele nool osutab pärast noole kolme rühma võrra pööramist ja E on rühma teine täht, seega on selle kood 32.
  • Sõnumi viimane täht on R, milleni jõuame pärast nelja rühma võrra pööramist; R on rühma kolmas täht, seega viimane tähekood on 43.

Sõnumi kood on seega 72-11-62-32-43.

See on informaatika!

Üks meetod andmete kaitsmiseks volitamata isikute eest on šifreerimine. Salakirjateadus e krüptograafia (ingl cryptography) sai alguse juba 3500 aastat tagasi. Üks lihtsamaid šifreid on iga tähe asendamine mingi teise tähega. Selline nn asendusšiffer (ingl substitution cipher) on kergesti lahti murtav, kuna igas keeles on erinevate tähtede esinemissagedused erinevad ja selle põhjal on üsna lihtne tuvastada enamkasutatavate tähtede koodid.

Meie ülesandes on kasutusel meetod, mis noole pöörlemise tõttu annab ühe tähe jaoks erinevad koodid vastavalt sellele, milline täht on sõnumis eelmine. Sellega tekib šifris mõningane varieeruvus ja seda on raskem lahti murda. Samas on šiffer aga piisavalt lihtne, et seda kergesti meelde jätta.

Kui me jagaks tähed gruppidesse teistmoodi või paigutaks gruppe kaheksanurga tippudesse teises järjekorras, saaksime samale sõnumile erinevaid koode. Šifreerimisskeemi sellist seadistust nimetatakse šifreerimisvõtmeks (ingl encryption key) ja selle äraarvamist krüptoanalüüsiks (ingl cryptoanalysis).

Kategooriad

  • Diskreetne matemaatika
  • Kodeerimine
  • Algoritmid

8. Toolimäng

Klassis on 31 tooli. Need asuvad ringikujuliselt ja on nummerdatud arvudega 1 kuni 31, nagu on näha joonisel.

Lapsed mängivad järgmiste reeglitega mängu:

  • Alguses lähevad kõik klassist välja ja seejärel sisenevad ühekaupa.
  • Iga siseneja püüab istuda oma sünnikuupäevale vastava numbriga toolile.
  • Kui toolil juba istub keegi, liigub ta kellaosuti liikumise suunas, kuni leiab vaba tooli.

Oletame näiteks, et Teele ja Tuuli on kaksikud, kes on sündinud 20. aprillil, Tõnu on sündinud 21. jaanuaril ja Toomas 22. septembril.

Kui nad saabuvad järjekorras Teele, Tuuli, Toomas, Tõnu, siis istub Teele toolile 20, Tuuli toolile 21, Toomas toolile 22 ja Tõnu toolile 23.

Kui nad saabuvad aga järjekorras Tuuli, Tõnu, Toomas, Teele, siis istub Tuuli toolile 20, Tõnu toolile 21, Toomas toolile 22 ja Teele toolile 23.

Nüüd on klassi sisenenud kuus last ja nad istuvad tabelis näidatud viisil:

Nimi Sünnipäev Tooli number
Anna 11. mai 13
Berta 12. veebruar 12
Cathy 14. september 14
David 11. august 11
Eero 13. aprill 15
Feliks 12. juuli 16

Küsimus

Milline järgmistest väidetest ei saa olla tõene?

[Raadionupud]

A. Cathy istus esimesena

B. Feliks istus viimasena

C. Eero istus enne Annat

D. Berta istus enne Davidit

Vastus

Õige vastus on: C (Eero istus enne Annat).

Vastuse selgitus

Cathy istub oma sünnipäevale vastaval toolil, nii et ta võis olla esimesena siseneja. Seega variant A võib olla tõene väide.

Selleks, et maanduda toolil 16, pidi Feliks saabuma pärast neid, kes istuvad toolidel 12–15. David istub toolil 11, seega pidi ta saabuma enne Annat, kellel on temaga sama sünnikuupäev. Seega on variant B kindlasti tõene väide.

Kui Eero oleks tulnud enne Annat, oleks tool 13 olnud vaba ja Eerol poleks olnud vaja istuda toolile 15. Seega ei saa variant C olla õige.

Berta ja David istuvad mõlemad oma sünnikuupäevale vastavatel toolidel ja võisid saabuda ükskõik kummas järjekorras. Seega variant D võib olla õige väide.

See on informaatika!

Räsimine (ingl hashing) on meetod suure hulga võimalike sisendväärtuste jagamiseks fikseeritud väljundväärtuste hulgale. Selles ülesandes on sisendhulk kõigi sünnipäevade kogum ja väljundhulk toolid numbritega 1 kuni 31. Räsifunktsioon arvutab iga sisendi põhjal väljundi. Kui sisendhulk on suurem kui väljundhulk, võidakse kahe sisendiga vastavusse panna sama väljund, seega peame pakkuma mehhanismi selliste kokkupõrgete (ingl collision) lahendamiseks. Ülesanne kirjeldab lahendust nimega avatud adresseerimine, mille puhul suunatakse kokkupõrke korral hilisem saabuja väljundhulgas järgmistele väärtustele. Räsimist ja selle erinevaid kokkupõrgete lahendamise viise kasutatakse andmete salvestamisel paisktabelites (ingl hash table).

Kategooriad

  • Info mõistmine
  • Algoritmid
  • Loogika

9. Hommikusöök

Anna, Brita, Carolin ja Debora valmistavad suurt hommikusööki. Nad lähevad poodi, et osta nelja toiduainet: mune, vorste, ube ja tomateid.

Kokku teevad nad kaheksa ostu: kaks karpi mune, kaks pakki vorste, kaks purki ube ja kaks tomatit.

Igaüks neist ostab kahte erinevat tüüpi toiduaineid, samuti on teada, et:

  • Anna ostab mune, aga Brita mitte;
  • Carolin ja Brita ostavad ube;
  • Debora ja Carolin ostavad ühe ühise toiduaine;
  • Brita ei osta vorste.

Küsimus

Kui Anna ja Debora ostavad ühe samasuguse toiduaine, siis milline see on?

[Raadionupud]

A. Karp mune

B. Pakk vorste

C. Purk ube

D. Tomat

Vastus

Õige vastus on: A (munad).

Vastuse selgitus

Ülesande lahendamiseks koostame samm-sammult tõeväärtustabeli.

Esimene väide ütleb, et Anna ostab mune, aga Brita mitte.

Anna Brita Carolin Debora
Munad 1 0
Vorstid
Oad
Tomat

Teine väide ütleb, et Carolin ja Brita ostavad ube. Kuna ube ostetakse ainult kaks purki, ei osta neid seega ei Anna ega Debora.

Anna Brita Carolin Debora
Munad 1 0
Vorstid
Oad 0 1 1 0
Tomat

Hüpates neljanda väite juurde, siis see ütleb meile, et Brita ei osta vorste. Kuna Brita peab ostma kaks kaupa ja ta ei osta mune ega vorsti, peab ta ostma tomati.

Anna Brita Carolin Debora
Munad 1 0
Vorstid 0
Oad 0 1 1 0
Tomat 1

Kolmas väide ütleb meile, et Debora ja Carolin ostavad ühe ühise toiduaine. Kuna ühe karbi mune ostab Anna, ei ole see kaup munad. Kuna Brita ostab ühe oapurgi ja ühe tomati, siis pole selleks toiduaineks ka ei oad ega tomatid. Ainus võimalus on, et Debora ja Carolini ühine ost on vorstid.

Anna Brita Carolin Debora
Munad 1 0
Vorstid 0 0 1 1
Oad 0 1 1 0
Tomat 1

Nüüd saame Anna veeru lõpule viia. Anna peab teise kaubana ostma tomati ja kuna ostetakse ainult kaks tomatit, ei saa ei Carolin ega Debora tomatit osta.

Anna Brita Carolin Debora
Munad 1 0
Vorstid 0 0 1 1
Oad 0 1 1 0
Tomat 1 1 0 0

Nüüd saame täita kogu tabeli. Kuna meil on juba teada kaks asja, mille Carolin ostab, siis seega ei saa ta osta mune ning järelikult ostab munad Debora.

Anna Brita Carolin Debora
Munad 1 0 0 1
Vorstid 0 0 1 1
Oad 0 1 1 0
Tomat 1 1 0 0

Seega kui küsida, mida Anna ja Debora ühist ostavad, ütleb täidetud tabel, et tegemist on munadega.

Selle ülesande lahendamiseks on ka teisi võimalikke viise. Näiteks võime kaaluda antud fakte teises järjekorras ja täita tabeli lahtreid teises järjekorras. Info loogilisel esitusel on samuti mitu võimalust. Näiteks võib selleks tõeväärtustabeli asemel kasutada graafi, mis visualiseeriks andmeid teistmoodi.

See on informaatika!

See ülesanne on näide loogikaülesandest. Antud on osaline teave selle kohta, mida neli sõpra poest ostsid, ja selle teabe põhjal saame deduktiivse arutluskäigu abil välja selgitada, millise toiduaine Anna ja Debora ühiselt ostsid. Loogika on ka programmeerimise oluline osa. Kõige otsesemalt kasutame loogikat programmides tingimuste (if-lausete) koostamisel, kuid loogikat saab kasutada näiteks ka otsinguruumi vähendamiseks, et programm saaks ülesande palju tõhusamalt lahendada.

Selle ülesande lahendamiseks oli kasulik koostada tõeväärtuste tabel. Tabeliesituse pluss on, et see tuletab meelde, milline info meil veel puudub. Sageli aitab hea andmete esitusviisi valik ülesannet hõlpsamini lahendada ka programmeerimises.

Kategooriad

  • Loogika

10. Neli klotsi

Neli klotsi on vaja paigutada 2x2 ruuduna tingimusel, et klotsid võivad üksteist puudutada ainult sama sümboliga külgedel. Üks võimalikest viisidest on selline:

Nüüd on antud aga viis klotsi.

Vaja on nendest viiest valida välja neli klotsi ja paigutada need sama reegli järgi. Käesoleval juhul on ainult üks variant sobiva nelja klotsi valikuks.

Küsimus

Millist klotsi sellisel juhul ei kasutata?

[Raadionupud]

A. Klotsi A

B. Klotsi B

C. Klotsi C

D. Klotsi D

E. Klotsi E

Vastus

Õige vastus on: C (klotsi C).

Vastuse selgitus

On võimalik luua 2x2 ruut, mis järgib antud reeglit, kasutades klotse A, B, D ja E:

Üks võimalus on proovida erinevaid variante, kuni üks sobib, kuid kontrollitavate kombinatsioonide arvu saab ka vähendada.

Teeme seda kahes eraldi etapis.

Esiteks koostame viiest klotsist graafi ja ühendame joontega need klotsid, millel on vähemalt üks samasugune sümbol. Näiteks C ja E ühendame joonega selletõttu, et mõlema ühel küljel on väike must ring, samas A ja C pole ühendatud, kuna ükski klotsil A olevatest sümbolitest ei esine klotsil C.

Kui leiame tee klotsist klotsini, mis jõuab pärast nelja sammu esimese klotsini tagasi, oleme leidnud võimaliku lahenduse.

Teiseks selgitame abiskeemi abil välja kõikvõimalikud nelja sammu pikkused tsüklid. Meie graafis on kolm sellist tsüklit:

  1. A-B-D-E-A (see on ka õige lahendus)
  2. A-B-C-E-A
  3. B-C-E-D-B

Loomulikult on samaväärsed kõik viie tähe tsüklilised permutatsioonid (st alustades suvalisest tähest, kuid säilitades järjekorra) ja ka nende tagurpidised variandid, näiteks A-B-C-E-A, B-C-E-A-B ja E-C-B-A-E on samaväärsed.

Kas on võimalik, et teine või kolmas abiskeemiga leitud variantidest (A-B-C-E-A või B-C-E-D-B) viib ka meie mõistatuse lahenduseni?

Mõlemad tsüklid sisaldavad kolmikut B-C-E ja nende klotside ühendamiseks selles järjekorras on ainult kaks võimalust:

Kummalgi juhul aga ei saa neljandana kasutada ei klotsi A ega klotsi D.

Need võõrlahendid tekkisid eelmisel sammul sellest, et me graafi koostamisel arvestasime ainult seda, millised kujundid igal klotsil esinevad, aga eirasime nende kujundite paigutust klotsidel.

See on informaatika!

Probleemi lahendamiseks on sageli kasulik (ajutiselt) ignoreerida mõningaid selle detaile, seda nimetatakse abstraktsiooniks. Esimeses etapis eirasime sümbolite asukohti klotsidel, meid huvitas ainult see, kas kahel klotsil on ühiseid sümboleid või mitte. Saadud skeem (graaf) andis meile juba piisavalt teavet, et muuta lahenduse otsimine pisut lühemaks, alles jäi vaid kolm võimalikku lahendust.

Graafe kasutatakse informaatikas sageli töödeldavate andmete abstraktsioonina. Ajaloo jooksul on paljud inimesed kasutanud nutikaid ja kiireid meetodeid selliste graafide erinevate omaduste määramiseks, näiteks kõigi teatud pikkusega tsüklite hõlpsaks leidmiseks.

Ülesande edasiseks lahendamiseks vajasime teist sammu, mis jällegi kasutas ülesande abstraktsioonina graafi. Raske probleemi jagamist eraldi etappideks, mida saab lihtsamini lahendada, nimetatakse dekompositsiooniks: taas oluline arvutusliku mõtlemise oskus.

Kategooriad

  • Geomeetria
  • Diskreetne matemaatika
  • Kombinatoorika
  • Graafid

11. Telefoniraamat

Madis otsib väga pikalt veebilehelt oma sõbra telefoninumbrit. Ta pole kindel, kuidas sõbra nime täpselt kirjutatakse, seepärast kasutab ta otsimisel erimärke:

Märk Tähendus
? täpselt üks tundmatu täht
& täpselt kaks järjestikust tundmatut tähte
% mistahes arv tundmatuid tähti kuni nime lõpuni

Näiteks otsing "Ma%" leiaks nimed Madis, Marta jne.

Küsimus

Millised järgnevatest nimedest leiab otsing "S?rah B&cht%"?

(Märgi kõik õiged vastused.)

[Märkeruudud]

A. Sarah Birchtree

B. Sara Benchton

C. Sarah Bilchman

D. Sirah Beachtram

Vastus

Õige vastus on: A, D.

Vastuse selgitus

Variant A on õige, sest nimi "Sarah Birchtree" vastab otsingule "S?rah B&cht%":

  • eesnime esitäht "S" vastab otsingu esitähele "S";
  • eesnime teine täht "a" vastab otsingu erimärgile "?";
  • eesnime järgmised tähed "rah" vastavad otsingu järgmistele tähtedele "rah";
  • nime tühik vastab otsingu tühikule;
  • perenime esitäht "B" vastab otsingu tähele "B";
  • perenime kaks järgmist tähte "ir" vastavad otsingu erimärgile "&";
  • perenime kolm järgmist tähte "cht" vastavad otsingu järgmistele tähtedele "cht";
  • perenime lõpp "ree" vastab otsingu erimärgile "%".

Variant B ei ole õige, sest eesnimes "Sara" ei ole "h"-tähte.

Variant C ei ole õige, sest perenimes "Bilchman" on "cht" asemel "chm".

Variant D on õige, sest "S" ja "S", "i" ja "?", "rah" ja "rah", tühik ja tühik, "B" ja "B", "ea" ja "&", "cht" ja "cht" ning "ram" ja "%" kõik vastavad.

See on informaatika!

Paljud infosüsteemid võimaldavad info otsimiseks kasutada selles ülesandes kirjeldatud erimärkidele sarnaseid nn metamärke (ingl wildcard) ehk jokkereid. Näiteks nii Windowsi, MacOSi kui Linuxi paljudes käskudes on võimalik mitme faili korraga nimetamiseks kasutada "?" tähenduses "täpselt üks tundmatu märk" ja "*" tähenduses "mistahes arv tundmatuid märke".

Teise näitena lubavad paljud tekstitöötlusprogrammid teksti otsimisel ja ka asendamisel kasutada mustrite kirjeldamiseks nn regulaaravaldisi (ingl regular expression).

Sellised vahendid võimaldavad aega kokku hoida, sest nii saab käske rakendada korraga paljudele failidele või sõnadele. Ilma nendeta tuleks käsk anda kas iga faili või iga võimaliku sõna kohta eraldi.

Kategooriad

  • Info mõistmine
  • Tekstitöötlus

12. Diagrammid

Kobras Brunol on arvutustabelis andmed ja valemid.

Nüüd hakkab ta valemitega arvutatud väärtustest (real 3) diagramme joonistama.

Küsimus

Millist allolevatest diagrammidest ta nende andmete põhjal kindlasti ei saa?

[Raadionupud]

A.

B.

C.

D.

Vastus

Õige vastus on: A.

Vastuse selgitus

Vastuse leidmiseks pole isegi vaja kõigi valemilahtrite väärtusi välja arvutada. Piisab tähelepanekust, et kolmel diagrammil on üks väärtus kõige suurem ja selle järel suuruselt teisi väärtusi kaks võrdset, aga diagrammil A on just maksimaalse suurusega väärtusi kaks võrdset. Seega ei ole diagramm A kindlasti koostatud samadest andmetest, millest ülejäänud.

See on informaatika!

Andmete töötlemisel võib kergesti juhtuda, et midagi läheb valesti. Sellepärast on alati kasulik oma töö tulemusele peale vaadata ja mõelda, kas seal on midagi, mis ilmselgelt ei klapi või ei sobi.

Kategooriad

  • Info mõistmine
  • Tabelitöötlus

13. Soovitussüsteem

Interneti riidepood kasutab soovituste süsteemi, mis põhineb klientide isikuandmetel. Näiteks kui klient soovib jalatseid osta, järgib programm järgmisel joonisel toodud reeglit ja soovitab saapaid:

Ühel päeval kustutati osa rõivasoovituse reeglitest kogemata ära. Allolev joonis näitab reeglite allesjäänud osa.

Õnneks on alles ka mõned varem antud soovitused:

Klient Soovitus
18-aastane
140 cm
Ühevärviline seelik
32-aastane
145 cm
Kirju seelik
28-aastane
155 cm
Kirjud püksid
15-aastane
160 cm
Ühevärvilised püksid
10-aastane
152 cm
Ühevärvilised püksid

Küsimus

Milline võis ülaltoodud andmete põhjal olla joonise puuduv osa?

[Raadionupud]

A.

B.

C.

D.

Vastus

Õige vastus on: B.

Vastuse selgitus

Esimene tingimus kontrollib kliendi pikkust, seega peame arvestama ainult vähemalt 150 cm pikkuste klientidega:

Klient Soovitus
28-aastane
155 cm
Kirjud püksid
15-aastane
160 cm
Ühevärvilised püksid
10-aastane
152 cm
Ühevärvilised püksid

Tabelist näeme, et kõigil neil klientidel soovitati osta pükse, seetõttu on variant D vale.

Kuna kõigile alla 20-aastastele klientidele soovitati ühevärvilisi pükse, on variant A vale.

Kuna kõigile 20-aastastele ja vanematele klientidele soovitati kirjusid pükse, on variant C vale.

Näeme, et pikemad kliendid said vastavalt vanusele erinevaid püksisoovitusi, seetõttu peaks täielik joonis välja nägema selline:

See on informaatika!

Joonist, mida programm selles ülesandes järgib, nimetatakse otsustuspuuks (ingl decision tree). See on vooskeemi (ingl flowchart) lihtsam erijuht.

Informaatikas saab vooskeemi kasutada algoritmi, töövoo või protsessi esitamiseks. Vooskeem koosneb erinevatest nooltega ühendatud kujunditest. Kujundid tähistavad erinevat tüüpi toiminguid ja nooled tähistavad nende toimingute sooritamise järjekorda.

Vooskeeme ja otsustuspuid kasutatakse sageli ka mitmesuguste tegevusjuhiste esitamiseks inimestele, näiteks hädaolukorra lahendamiseks vastavalt olukorra asjaoludele või selleks, et selgitada, kuidas mingeid plaane tuleks ellu viia.

Kategooriad

  • Loogika
  • Algoritmid

14. Kolamid

Kolamid on dekoratiivsed mustrid, mida saab põrandale joonistada näiteks kriidiga. Kolami joonistamiseks märgitakse kõigepealt ära mõned punktid ja seejärel tõmmatakse nende ümber jooned. Iga joont alustatakse ja lõpetatakse samas punktis, joonistamise ajal kriiti üles ei tõsteta.

Joon võib ristuda teiste joonte või iseendaga, kuid ei tohi teise joonega kattuda või seda isegi puutuda ilma sellega ristumata. Iga joon peab olema joonistatud vähemalt ühe punkti ümber. Iga sellisel viisil joonistatud joont nimetatakse silmuseks.

Allpool illustreeritud kolamil on 6 silmust. Pange tähele, et silmused ristuvad erinevates kohtades ja musta värvi silmus ristub ka iseendaga.

Küsimus

Millisel järgnevatest kolamitest on kõige vähem silmuseid?

[Raadionupud]

A.

B.

C.

D.

Vastus

Õige vastus on: D.

Vastuse selgitus

Variandil A on 4 silmust:

Variandil B on 5 silmust:

Variandil C on 3 silmust:

Variandil D on ainult üks silmus; ülevaatlikuse huvides näitame selle joonistamist etappide kaupa:

See on informaatika!

Kolamid on keerulised mustrid, mida leidub India linnades ja külades. Kuidas neid mustreid mäletatakse ja joonistatakse? Üks teooria on, et neid luuakse lihtsate reeglite järgi, mida antakse edasi põlvest põlve.

Reeglikogumite järgi neile vastavate tekstide genereerimist uuritakse arvutiteaduses formaalsete keelte teoorias. Kuigi genereerivad grammatikad mõeldi algselt välja tekstide (ühemõõtmeliste märgijadade) kirjeldamiseks, on hiljem seda ideed laiendatud ka mitmemõõtmelistele objektidele, sealhulgas ka graafilistele kujunditele. Selliseid meetodeid kasutatakse sageli ka generatiivses kunstis (ingl generative art).

Kategooriad

  • Info mõistmine
  • Geomeetria

15. Piltide teisendamine arvudeks

Vaatame 6x5 ruudust koosnevat pilti, mille osad ruudud on mustad, osad valged:

Selle pildi saab teisendada arvujadaks, lugedes iga rea puhul üle, mitu järjestikust ruutu on valged, seejärel mitu järjestikust ruutu on mustad, siis mitu järjestikust ruutu on valged jne, kuni jõuame rea lõppu. Pane tähele, et kui rida algab musta ruuduga, siis on selle rea alguses olevate valgete ruutude arv 0.

Lõpuks ühendame kõigi pildiridade kõik arvud ühte jadasse. Eeltoodud näites oleks tulemuseks selline jada: 1, 3, 1, 0, 1, 3, 1, 0, 1, 4, 0, 1, 2, 2, 0, 1, 3, 1, 1, 3, 1.

Küsimus

Milline 6x5 ruudust koosnev pilt oleks kujutatud jadaga 1, 4, 0, 1, 4, 1, 3, 1, 4, 1, 0, 1, 3, 1, 1, 3, 1?

[Raadionupud]

A.

B.

C.

D.

Vastus

Õige vastus on: D.

Vastuse selgitus

Lahendamisel me saame järgida etteantud jada, joonistades selle järgi 6x5 maatriksi. Kui rida on täidetud, peame liikuma järgmisese ritta, alustades seal jälle valge värviga.

Alloleval pildil on näidatud õige vastus. Lisaks on näidatud, kuidas jada ridade kaupa tükkideks jagada.

Variant A on vale, kuna selle jada oleks 0, 4, 1, 1, 1, 3, 1, 1, 3, 1, 1, 1, 2, 1, 1, 2, 1, 2, 2, 1.

Variant B on vale, kuna selle jada oleks 1, 4, 4, 1, 1, 3, 1, 0, 1, 4, 0, 1, 3, 1, 1, 3, 1.

Variant C on vale, kuna selle jada oleks 4, 1, 1, 2, 2, 0, 1, 2, 1, 1, 0, 1, 2, 1, 1, 0, 1, 2, 1, 1, 1, 2, 2.

See on informaatika!

Piltide salvestamiseks või edastamiseks elektroonikaseadmete vahel on vaja need arvudeks teisendada. Selleks on palju viise ja siin on toodud neist üks. Kasutades ühte arvu sama värvi ruutude jada esitamiseks, tihendab see meetod andmeid ehk vähendab andmete hulka ja see on informaatikas oluline. Seda meetodit saab täiustada mitmel viisil, näiteks lubades arvul viidata rohkem kui ühte rida hõlmavale ruutude jadale.

Andmete esitamise viiside leidmine on olnud väljakutse alates juba esimestest elektroonilistest seadmetest, sest sellega seotud valikud võivad mõjutada teabe töötlemiseks või saatmiseks ja vastuvõtmiseks kuluvat aega. Praegu on see probleem endiselt aktuaalne, eriti internetis: uute viiside loomine piltide, videote ja muude meediumifailide kodeerimiseks võib meie veebikasutamist kiirendada.

Selles ülesandes kirjeldatud meetodit kasutasid vanad faksiaparaadid dokumentide sisu edastamiseks.

Kategooriad

  • Info mõistmine
  • Kodeerimine

Copyright © 2022 Bebras – International Challenge on Informatics and Computational Thinking.
Licensed under Creative Commons Attribution-ShareAlike 4.0 International License.

Flag icons by GoSquared.