Algoritmikus gondolkodás szintfelmérő teszt megoldókulcsa az ELTE IK programozó BSC képzésére felvettek részére A feladatok a HÓDítsd meg a biteket verseny (CC by NC-SA) kérdéseiből kerültek kiválogatásra. Megoldásukhoz semmilyen programozói előképzettségre nincs szükség. Az algoritmikus gondolkodás egyes szintjeit, problémamegoldást tesztelnek. A megoldókulcs tartalmazza az egyes szintek és azon belüli nehézségek megnevezéseit is. A feladatsor 16 kérdést tartalmaz, 60-70 perc alatt megoldható. Összesen 72pont gyűjthető, melynek 80%-a 57,6pont. Emellett érdemes a Nemes Tihamér verseny feladatainak megoldása. Ezek kiemelt, kimondottan programok írásával kapcsolatos feladatok. A megoldókulccsal együtt elérhetőek: http://nemes.inf.elte.hu/nemes_aktualis.html#feladatok oldalon. Soundex (1p) algoritmus megértése és követése, könnyű 2018-PK-06 Az első betű egy H, tehát az első karakter is ez lesz. Ezután az összes A, E, I, O, U, H, W és Y betűt kihúzzuk, így a Hlbrt lesz az új szó. A számcseréket követően a H4163 lesz az előállított szó. Nincs egymás mellett ugyanolyan betűnk az eredeti szóban, így nem kell számot kitörölnünk. Mivel csak az első 4 karaktert használjuk, így a megoldás a H416 lesz. Labdák (1p) algoritmus megértése és követése, könnyű 2017-RS-02 Az A lyukba 3 golyó fér, vagyis a 4-től 10-ig számozott golyók átgurulnak fölötte. A B lyukba 2 golyó fér, vagyis a 6-tól 10-ig számozott golyók gurulnak át fölötte. A C lyukba csak 1 golyó esik bele, tehát a 7-től 10-ig számozott golyók ilyen sorban gurulnak végig. Ezután kilökjük a golyókat az A lyukból a következő számozási sorrendben: 3, 2, 1. Ezek a golyók le is gurulnak alulra. Ekkor már a 7, 8, 9, 10, 3, 2, 1 golyósorozatunk végleges. A B lyukban levő golyók kilökésekor az 5-ös, majd a 4-es golyó is legurul a rámpa aljára, végül pedig a C lyukból kilökjük az utolsó, 6-os golyót is, ezáltal a D válaszban mutatott 7, 8, 9, 10, 3, 2, 1, 5, 4, 6 sorrend adódik. Önző mókusok (2p) algoritmus megértése és követése, nehéz 2016-RU-08 Három nap múlva. Nézzük végig az egyes napokon a változásokat: Ma: 6, 3, 3, 0, 4 ELTE IK alg. gondolkodás teszt CC by NC-SA 1
1 nap múlva: 0, 9, 0, 7, 0 2 nap múlva: 9, 0, 7, 0, 0 3 nap múlva: 0, 16, 0, 0, 0 Papírhajtogatás (2p) algoritmus megértése és követése, nehéz 2012-DE-06 A válasz a helyes: A következő képek elmagyarázzák a hajtás-sorozatot lépésről lépésre: Szigorúan titkos (3p) analízis, könnyű 2018-IT-04 B válasz a helyes a barátok egyike nyert a lottón, de nem tudjuk, ki. A feladat többféleképpen is megoldható. Egyet megmutatunk. Három érme feldobásánál pontosan a következő két lehetőség állhat fenn: Mindhárom érme ugyanazt mutatja. Az egyik érme mást mutat, mint a másik kettő. Ha senki sem nyert a lottón, a következő lesz érvényes: Ha minden érme egyforma, mindhárman azonos -at fognak mondani. Ha valamelyik érme mást mutat, akkor a barátok egyike azonos -t mond, a két másik pedig különböző -t. Tehát kimondhatjuk, hogy minden más esetben a három barát egyike nyert a lottón. A mi különleges esetünkben a válaszok az azonos, azonos, különböző. Tehát elmondhatjuk, hogy valaki a három barát közül nem a valósat mondta. Sorok és oszlopok (3p) analízis, könnyű 2018-BE-03 A válasz a helyes ELTE IK alg. gondolkodás teszt CC by NC-SA 2
A következő képen, melyen a köveket betűkkel jelöltük, jól visszakövethető a megoldás: A B, C és D diagramokat a következő okokból zárhatjuk ki: Minden kővel két másik található egy sorban és egy kő ugyanabban az oszlopban. Ez azt jelenti, hogy minden követ pontosan 2+1=3 másik kővel kell összekötni. A többi diagram esetében ez nem így van, ráadásul a C diagram esetében 7 kör szerepel. A B diagram becsapós, hiszen hasonlít a játéktáblára. De a szélső 4 kör csak 2 másik körrel van összekötve. Ahhoz, hogy megfelelő legyen, további két vonalat még be kell rajzolnunk: Csillag-mobilok (4p) analízis, nehéz 2015-DE-05 A csillag-mobilok leírásban a zárójelpárok balról jobbra úgy vannak rendezve mint a rész-mobilok, melyek a csillag-mobil rúdján lógnak. A kérdésben szereplő leírás (-3 (-1 4) (2 (-1 1) (1 1))) (2 (-1 6) (2 3)) tehát a következőket jelenti: a legfelső rúdon balra 3, jobbra 2 távolságra két rész-mobil lóg. A bal részmobilon balra egy távolságra egy szálon 4 csillag lóg és jobbra egy másik rész-mobil (2 távolságra), amely rúdjának mindkét oldalán 1-1 csillag lóg (1-1 távolságra). A jobb oldali rész-mobilon balra (1 távolságra) egy szálon 6 csillag, jobbra (2 távolságra) 3 csillag lóg. Véletlen Képek (4p) analízis, nehéz 2013-DE-02 A válasz a helyes: Az A papírlapon két különböző színű kör található. A nyomtatógép programja első lépésben kiválaszt egy kört, és a későbbiekben a körnek csupán a méretén változtat. Tehát a papírlapon az összes körnek ugyanolyan színűnek kell lennie. Ezen kívül a gép legalább egy kört nem egy négyszögre nyomtat, hiszen a ELTE IK alg. gondolkodás teszt CC by NC-SA 3
nyomtatás sorrendje kör négyszög kör négyszög. A program lefutása után a gép ugyanannyi kört nyomtat, mint négyzetet. Ugyanakkor a nyomtató készíthette a B papírlapot is, ha véletlenül a négyzeteket pont a körökre nyomtatta. Az is lehet, hogy a körök véletlenül a háttérrel azonos színt kaptak. A C és D képen ugyanannyi kör és négyzet található. A köröknek mindkét papírlapon azonos színe van, és legfeljebb két különböző méretűek. Ezeket a papírlapokat a nyomtatógép készíthette. Bontsd részekre (5p) szintézis, könnyű 2017-RU-05 A teljes BEBRAS szó kódfelosztása csak a következő lehet: 1 21 1 22 33 321 A számsor elején kezdjük a szétbontást. Amennyiben a B-t 12-ként kódoljuk, az E betű szükségképpen az 1-es kódot kapja (ekkor utána ismét 12, mint B betű jön). Ez viszont ellentmond a kódkezdő szabálynak, vagyis a B betűt kódoló 12 az E betűt kódoló 1-essel kezdődne. Nem lehet, hogy a B betűt több, mint 2 számként kódoljuk (121, 1211, 12112, stb.), mert még egyszer meg kellene ismétlődnie. Ezáltal a B betűt kizárólag az 1-es kóddal láthatjuk el. Az E betű után ismét B következik, ezért az E-t csak 2-re vagy 21-re kódolhatjuk (vagy 211223332-re). Nem lehet 2, mert akkor a kódolt szöveg BEBB-bel kezdődne. Nem lehet 211223332 sem, hiszen akkor az egész szó csak BEB lenne. Következésképp az E betűt a 21-es számként kódolhatjuk csak. Így tudjuk, hogy 1 21 1 a BEB kódolása. Még a hátralevő 2233321 kódrészt kell feldarabolnunk. Tekintsük a szó végén álló S betűt. Nem lehet a kódja 1, sem 21, mivel ezek a számsorok már foglaltak a B és E betűk kódolásánál. Következésképp ezek lehetnek a lehetséges kódok az S-hez: 321, 3321, 33321, 233321 és 2233321. S-t nem kódolhatjuk 2233321-ként, hiszen akkor a szó mindössze BEBS lenne. Ugyanilyen okból nem lehet 233321 sem, mert akkor is hiányozna még az R vagy az A betű (ha csak egyegy számjeggyel kódolnánk is). Ha S-t 3321-ként kódoljuk, az RA párost 223-ként kell. Azonban az R nem lehet 2, és az A sem lehet csak 3, hiszen más kódszavak már kezdődnek ezekkel a számokkal. Ezek alapján az S csakis 321-ként kódolható. Az RA párosra marad a középső számsor: 2233. A már ismert okok miatt R-t 22-ként, A-t 33-ként kódoljuk. Játék a golyókkal (5p) szintézis, könnyű 2016-IT-02 A D válasz a helyes. Ha egy hármas sorozatban a legalsó golyó piros, már az első kattintás után véget ér a játék: ekkor csak két golyó marad a csőben. Ezzel szemben minden olyan hármas sorozat, amelyben a legalsó golyó kék, végtelen sorozat. Legfeljebb négy kattintással ugyanis a négy, kék legalsó golyóval felépített lehetséges hármas sorozat mindegyike a piros-kék-piros-piros-kék-piros hatos sorozattá alakul. További négy kattintás után aztán ismét előáll ugyanez a sorozat, és ez így megy tovább a végtelenségig. ELTE IK alg. gondolkodás teszt CC by NC-SA 4
Rövidítés vagy kitérő (6p) szintézis, nehéz 2017-NL-05 C válasz a helyes: Ha a legrövidebb út 8 egységnél kevesebb lenne, akkor az S és a 11 -es kereszteződés közötti legrövidebb út 3+8=11-nél kevesebb lenne. A legrövidebb út azonban 8 egységnél nagyobb lehetne, mivel az S és a 11 - es kereszteződés közötti út a 4 és 7 vagy az 5 és 6 egységnyi hosszú utakon vezetne. Ezért hamis az összes többi állítás. A fenti ábra azt mutatja, hogy legalább milyen hosszúnak kell lenniük az egyes szakaszoknak ahhoz, hogy a megadott számok helyesek legyenek. Igaz vagy hamis (6p) szintézis, nehéz 2014-RU-02 C válasz a helyes: mivel a kis mágnesek mind jobbra vannak a nagy mágnesektől. Az A válasz hamis, mert nincs olyan sötétkék mágnes, ami világossárga mágnes felett lenne. B válasz hamis, mivel nem minden négyzet alakú mágnes található kör alakú mágnesek felett. D válasz hamis, mivel nem minden világossárga mágnes található sötétkék mágnes alatt. Kalózvadászat (7p) alkotás, könnyű 2017-SI-07 Tegyük fel, hogy a rendőrségnek van esélye. A játék a bemutatott állapotban van és a kalóz következik. Milyen lépéssel kényszerítheti a rendőrség a kalózt nyerő helyzetbe? Az egyik rendőrnek egy mezőt kell mozognia felfelé vagy lefelé. Mivel a játéktér szimmetrikus, mindegy, melyiknek. A lépés előtt tehát a játék a következő állapotok egyikében lehetett: Mit léphetett ezelőtt a kalóz, hogy ilyen helyzetbe került? Mindkét esetben csak jobbról jöhetett (balról a rendőr állt a mezőn). Tehát az alábbi állapotok valamelyikében volt a játék: ELTE IK alg. gondolkodás teszt CC by NC-SA 5
Csak az egyik ilyen helyzetből kerülhet a rendőrség nyerő helyzetbe. Mivel azonban a kalóz nem hibázik, ezekben a helyzetekben nem jobbra, hanem balra mozdulna, tehát nem hozná nyerő helyzetbe a rendőrséget. Fogpiszkálós játék (7p) alkotás, könnyű 2017-HU-06 A győztes stratégia az, ha két páratlan számú fogpiszkálóból álló kupacot készítünk. Ha a kezdőkupacok páros számú fogpiszkálót tartalmaznak, a második játékos fog nyerni (feltéve, hogy mindketten hiba nélkül játszanak). (Nem tudunk 24 fogpiszkálót egy páros és egy páratlan számú kupacra osztani.) Miért? Ha a játékosnak két páratlan számú fogpiszkálóból álló kupaca van, csak egy páros és egy páratlan számú kupacra oszthatja bármelyiket. A következő játékos elveszi a páratlan számú kupacot és a másikat két páratlan kupacra osztja szét. A játék akkor ér véget, amikor két kupacban 1-1 fogpiszkáló van. Ha páratlan kupacok vannak, amikor valaki köre jön, az biztosan tud nyerni a fenti stratégiával. Ebben a játékban nem elég egy jó nyerő stratégia, hanem egy jó kezdő pozícióra is szükségünk van Mágikus masina (8p) alkotás, nehéz 2013-BE-07 Az összes érmét a bal golyóba kell juttatnunk. Így nincs többé olyan gomb, melynek összes forrása legalább egyegy érmét tartalmaz. Ebben a stabil állapotban egyik gomb megnyomása sem tud változást előidézni. Ezt a B B C B C C nyomásokkal érhetjük például el. Természetesen valamilyen szinten ez variálható, de a fő cél (összes érme a bal golyóba jusson) meg kell, hogy maradjon. Módosított Nim (8p) alkotás, nehéz 2020-HU-01 Juliskának 3 fehér zseton elemelésével kell kezdenie. Juliska célja, hogy a végén (amikor ő jön) 1-3 fehér vagy 1-2 fekete zseton legyen az asztalon. Ezt úgy érheti el, ha Jancsi utolsó lépésénél vagy már csak a 3 fekete zseton van az asztalon, vagy már csak 4 fehér. Ha Juliska elvesz 3 fehér zsetont az elején, akkor ezután Jancsi minimum 1 fehér vagy 1 fekete zsetont el kell vegyen. Bármelyiket választja Juliska elveszi a maradékot ugyanabból a színből, így már csak a másik színből marad 3 (fekete) vagy 4 (fehér). Ezek közül minimum egyet ismét el kell vennie Jancsinak. A maradékot viszont Juliska már mind elveheti. ELTE IK alg. gondolkodás teszt CC by NC-SA 6