INTERLOS. Řešení. Programátorské úlohy. P1 Řada s děliteli. P2 Hra s kulhavou dámou

Podobné dokumenty
10. ročník. Řešení 1. a 2. sada

12. ročník Řešení: 3. a 4. sada

Hlavolamy, šifry, roboti a želvy informatický inspiromat

CVIČNÝ TEST 51. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

7 = 3 = = Učivo Vysvětlení Př. + pozn. Zlomek = vyjádření části celku 3 část snědla jsem 3 kousky

2. Elementární kombinatorika

Nápovědy k numerickému myšlení TSP MU

Výroková logika II. Negace. Již víme, že negace je změna pravdivostní hodnoty výroku (0 1; 1 0).

Matematická olympiáda ročník (1998/1999) Komentáře k úlohám druhého kola pro kategorie Z5 až Z7. Zadání úloh Z5 II 1

Úvod do teorie informace

Matematické základy šifrování a kódování

JčU - Cvičení z matematiky pro zemědělské obory (doc. RNDr. Nýdl, CSc & spol.) Minitest MT4

Řešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C

11. ročník. Řešení: 3. a 4. sada

Moravské gymnázium Brno s.r.o.

[1] Determinant. det A = 0 pro singulární matici, det A 0 pro regulární matici

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

Svobodná chebská škola, základní škola a gymnázium s.r.o. Dělitelnost Rozklad na součin prvočísel. Dušan Astaloš

Výhody a nevýhody jednotlivých reprezentací jsou shrnuty na konci kapitoly.

Instrukce: Jednotlivé části nejdou přesně po sobě, jak jsme se učili, je to shrnutí.

Kombinatorika. November 12, 2008

5 Pravděpodobnost. Sestavíme pravděpodobnostní prostor, který modeluje vytažení dvou ponožek ze šuplíku. Elementární jevy

Programy na PODMÍNĚNÝ příkaz IF a CASE

Největší společný dělitel

I. kolo kategorie Z7

Copyright 2013 Martin Kaňka;

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Jednoduché cykly

Pythagorova věta

Úvod do programování 7. hodina

Elegantní algoritmus pro konstrukci sufixových polí

1.5.7 Znaky dělitelnosti

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2014

Prohledávání do šířky = algoritmus vlny

Úvod do informatiky. Miroslav Kolařík

Algoritmus pro hledání nejkratší cesty orientovaným grafem

Složitost Filip Hlásek

P4 Ukecaný program InterLoS 2014

Textové, datumové a časové funkce

4 Stromy a les. Definice a základní vlastnosti stromů. Kostry grafů a jejich počet.

IB112 Základy matematiky

3. podzimní série. ... {z }

pro bakalářské studijní programy fyzika, informatika a matematika 2018, varianta A

Přijímací zkouška na MFF UK v Praze

1.5.2 Číselné soustavy II

63. ročník Matematické olympiády 2013/2014

2.3.7 Lineární rovnice s více neznámými I

Metody návrhu algoritmů, příklady. IB111 Programování a algoritmizace

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2015

Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest

CVIČNÝ TEST 36. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

Cykly a pole

1. sada. 9. ročník Šifrovací tutoriál

Čtvercové puzzle úloha za 2 body

CO UMÍ EXCEL? CVIČEBNICE PŘÍKLADŮ PRO UČITELE. Modulární systém dalšího vzdělávání pedagogických pracovníků JmK. v přírodních vědách a informatice

16. Goniometrické rovnice

ALGORITMIZACE A PROGRAMOVÁNÍ

Matematika. 6. ročník. Číslo a proměnná. desetinná čísla (využití LEGO EV3) číselný výraz. zaokrouhlování desetinných čísel. (využití LEGO EV3)

KoMáR - Řešení 5. série školní rok 2015/2016. Řešení Páté Série

8 Kořeny cyklických kódů, BCH-kódy

Kolika způsoby může při hodu dvěma kostkami padnout součet ok: a) roven 7 b) nejvýše 5 řešení

Modulární systém dalšího vzdělávání pedagogických pracovníků JmK v přírodních vědách a informatice CZ.1.07/1.3.10/ Stereometrické hry

Dokumentace programu piskvorek

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

Jak funguje asymetrické šifrování?

FUNKCE 3. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika

Zadání a řešení testu z matematiky a zpráva o výsledcích přijímacího řízení do magisterského navazujícího studia od podzimu 2016

Základní principy vyhledávání firem

Jednoduchá exponenciální rovnice

Projekt OPVK - CZ.1.07/1.1.00/ Matematika pro všechny. Univerzita Palackého v Olomouci

Kód trezoru 1 je liché číslo.

Digitální učební materiál

Matematická olympiáda ročník ( ) Komentáře k úlohám 2. kola pro kategorie Z5 až Z9. kategorie Z5 Z5 II 1 Z5 II 2 Z5 II 3

Řešte s námi! Dlouhodobá soutěž v řešení sudoku a logických úloh TOP 10

Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A

2000 zveřejnění dobové zprávy General Report on Tunny

Parametrické programování

II. Úlohy na vložené cykly a podprogramy

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

m.1.2. v prohlížeči vyhledat velikost katastrálního území a porovnat Jazyková komunikace ČESKÝ JAZYK 1. stupeň 1. období skládání slov, čtení textu

Úlohy krajského kola kategorie C

[1] samoopravné kódy: terminologie, princip

( ) ( ) Negace složených výroků II. Předpoklady:

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

59. ročník Matematické olympiády 2009/2010

Matematický KLOKAN kategorie Kadet

ČÍSELNÉ SOUSTAVY. Číselnou soustavu, která pro reprezentaci čísel využívá pouze dvou číslic, nazýváme soustavou dvojkovou nebo binární.

Matematický KLOKAN 2007 kategorie Junior (A) 8 (B) 9 (C) 11 (D) 13 (E) 15 AEF? (A) 16 (B) 24 (C) 32 (D) 36 (E) 48

Zadání soutěžních úloh

Algoritmus pro generování normálních magických čtverců

Zadání soutěžních úloh

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Označení šablony/označení sady VY_32_INOVACE_04_M3 M 3

Usekne-li Honza 1 hlavu, narostou dva ocasy. Tento tah můžeme zakreslit následujícím způsobem: Usekne-li 2 hlavy, nic nenaroste.

Cvičné texty ke státní maturitě z matematiky

Milí rodiče a prarodiče,

NPRG030 Programování I RNDr.Tomáš Holan, Ph.D. 4.patro, č

( ) Jako základ mocnin nemusíme používat jen 10. Pokud není jasné, že číslo je uvedeno v desítkové soustavě, píšeme jej takto: ( ) 10

Faktoriály a kombinační čísla

Sbírka příkladů. verze

Transkript:

INTERLOS Řešení Některé úkoly vychází z knížek, článků či webových stránek. V těchto případech bylo většinou zadání zakamuflováno, aby nebylo snadné jej najít, resp. aby ani ten, kdo by náhodou daný zdroj měl k dispozici, neměl příliš velkou výhodu. V těchto případech je zdroj uveden v popisu řešení. P1 Řada s děliteli Programátorské úlohy Každý další člen řady vznikne přičtením počtu dělitelů aktuálního člena řady. Počet dělitelů můžeme najít jednoduše vyzkoušením všech možností, i tak seběhne program na výpočet 1000. člena rychle. Kód je 10162. P2 Hra s kulhavou dámou Postupujeme po řádcích a postupně vyplňujeme pro každé políčko, kdo má na něm výherní strategii. Postup vyplňování je jednoduchý: pokud je možné se z aktuálního pole dostat platným tahem na pole, kde má výherní strategii druhý hráč, tak na aktuálním poli má výherní strategii první hráč. Pokud to možné není, tak má na aktuálním poli výherní strategii druhý hráč. Protože postupujeme po řádcích, tak ve chvíli vyhodnocování již máme napočítanou informaci o výherní strategii pro všechna pole, na která se můžeme dostat platným tahem. Výsledná tabulka pro zadaný hrací plán je: 2111111111111111#21111111#2111 1121111111111111111111111#1121 12111111#2111111111111111#1211 11111211#112111111111111#21111 11111112111111111111111#211111 111211111111#121111111#2111111 1111111#1121111111111#21111111 111121#12111111111111111111111 11111#121111111111111111111#12 1111#211111111111111111111#### 111121111111111111111111#11211 111111211111#11121111111#12111 111111111111121111111111111111 1111111111111111111#####211111 111111111111111111112111111111 111111111111211111111111111111 ##111111#111111111111112111111 21111111#111111111111111111112 11111111#111111111111111111121 12111111#11111111#111111111111 #11111112111111111#11111111111 2111111111111111111#1111111111 11111111111111121111#111111111 111111111111111111111211111111 ###1111111##11111111111###1111 2111111111111111111111#1211111 1121111111111111111111#2111111 121111111111111111111111111111 1111111111111#1112111111111111 1111111#1121111111111111111111

Kód je 221212112212121. P3 Jednoznačné cesty Jde o mírně upravenou standardní programátorskou úlohu prohledávání grafu. Kromě cest však musíme hlídat i jednoznačnost, což se nejjednodušeji provede drobnou úpravou algoritmu prohledávání do šířky - pokud na vrchol narazíme ve chvíli, kdy je ve frontě (čeká na prohledání), znamená to, že do tohoto vrcholu vedou dvě různé nejkratší cesty. Tímto způsobem si tedy při prohledávání poznamenáme kolize a nakonec zkontrolujeme, zda se vyskytuje nějaká kolize na (libovolné) cestě ze startu do cíle. Pro uvedené zadání dostáváme kód: 100212021. P4 Samohlásková substituce Úloha je trochu záludná v tom, že způsob šifrování je sice jednoznačný, ale inverzní krok jednoznačný není, tj. může existovat více textů, které dávají stejný zašifrovaný text. Pouze jeden z nich je smysluplný, ovšem poznávat smysluplný text programem není jen tak. Nejlepší řešení je tedy použít interaktivní přístup: pomocí programu dělat tupou práci (posuny v abecedě) a člověkem vybírat správnou (smysluplnou) větev postupu. Zašifrovaný text je: heslo ulohy samohlaskova substituce je prijmeni toho prezidenta ceskoslovenska podle ktereho se jmenuje univerzita poradajici soutez interlos. hesloulohysamohlaskovasubstitucejeprijmenitohoprezidentaceskoslovenskapodlektere hosejmenujeuniverzitaporadajicisoutezinterlos hftmqxosldxgsvosiasxekcfmdeufhpsxtegyzcvealhaijlzuezbkqyadrjoslpwgpumdsshpjpykxl owansvoxfuqhawjtgoyjrggjtwuddxeolsrdyintfsmqu Kód je tedy MASARYK. P5 Levenshteinovy vzdálenosti Algoritmus k počítání Levenshteinovy vzdálenosti je docela fikaný - využívá přístup zvaný dynamické programování. Vymyslet tento algoritmus není jen tak, ale protože jste měli k dispozici název problému, není těžké najít algoritmus na internetu - hned první odkaz, který dostanete při googlení je stránka na Wikipedii, na které je algoritmus v pseudokódu. Uvedený algoritmus však počítá pouze vzdálenost pro dva zadané řetězce. Musíme tedy doplnit hledání řetězce, který minimalizuje součet vzdáleností. To však stačí udělat hrubou silou - vyzkoušet všechny možné řetězce z písmen A až F, které mají délku kratší jak 9. Řešení je ABCDF (součet vzdáleností je 30). P6 Abecední had Budujeme hada odzadu. Pro každé políčko si pamatujeme, jaký z něj vede nejlepší had a kam tento nejlepší had vede ( nejlepší zohledňuje nejen délku, ale i abecední uspořádání). Nejdříve projedeme celou tabulku a políčka obsahující písmeno Z označíme jako obsahující hada délky 1. Pak hledáme písmena Y a určíme jaký je nejdelší had začínající na nich (bude to buď 1 nebo 2). A tak postupně dopředu do abecedy - když vyhodnocujeme i-té písmeno, využíváme toho, že již máme napočítány nejlepší hady začínající od výše postavených písmen. Kód je CDELMNPQUXZ.

P7 Přesmyčkování Každé slovo ve slovníku nejdříve normalizujeme - seřadíme jeho písmena podle abecedy (např. ze slov soudek i dousek se stane dekosu ). Nyní již stačí v takto upraveném slovníku spočítat počet vzájemně různých slov. To můžeme provést například abecedním seřazením celého slovníku a následným lineárním průchodem, při kterém opakovaně načtené slovo ignorujeme. V Unixu s výpomocí Perlu to celé můžeme vyřešit jednořádkovým příkazem: perl -ne 'print join "", sort split //;' dict.txt sort uniq wc -w Řešení pro dodaný slovník je 57281. P8 Pascal a Sierpinski V Pascalově trojúhelníku jsou v n. řádku kombinační čísla (n-1) nad 0,1,2,, (n-1). Když nám jde o C nebo B barvu na k. pozici na n. řádku, zajímá nás v podstatě dělitelnost kombinačního čísla (n-1) nad (k-1) dvěmi. Tedy zajímá nás, jestli je (n-1)! dělitelné stejnou, nebo větší mocninou 2 než číslo (n-k)!k!. Nejvyšší mocninu 2, kterou je dělitelné číslo m!, lze určit jako počet sudých čísel menších nebo rovných m + počet čísel dělitelných 4 menších nebo rovných m + počet čísel dělitelných 8 menších nebo rovných m + (sečteme pro všechny mocniny 2, které nepřevýší m). Teď už stačí jen porovnat nejvyssi_mocnina_dvou_delici_faktorial(n-1) a nejvyssi_mocnina_dvou_delici_faktorial(n-k)+nejvyssi_mocnina_dvou_delici_faktorial(k-1) Je-li první číslo větší, je příslušné kombinační číslo sudé a barva B, jinak je liché a barva je C. Alternativně prostě můžeme vypočítat prvních 10000 řádků trojúhelníku (počítáme však rovnou modulo 2, tj. pouze s nulami a jedničkami). Kód je CBBBCB. P9 Alergický součet Tady je řešení zřejmé, prostě sledujeme postup popsaný v zadání. Jde jen o to, to co nejrychleji naprogramovat. Kód je 497. L1 Devět dam Logické úlohy

Kód je tedy CDF. Zdroj: E. Duneday, The Canterbury puzzles. L2 Popis textu Popsaný text je produktsamicekohouta. Kód je tedy VEJCE. L3 Sebe-referenční test Řešení: CABBABEBED Zdroj: Článek Don't be puzzled (Martin Henz). L4 Jak neohrozit jednorožce Pro libovolné N>3 lze na šachovnici rozměrů NxN umístit maximálně 2N-2 jednorožců, například tak, že vyskládáme jednorožce do celé horní řady a potom do celé dolní řady kromě rohových polí. Kód je tedy 2746. L5 Test o poctivcích a padouších 1. Potkáte osoby X, Y. Y prohlásí: Alespoň jeden z nás je padouch. Co platí? Kdyby byl Y padouch, tak by mluvil pravdu a to by byl spor. C) X je padouch, Y je poctivec. 2. Potkáte osoby X, Y. X prohlásí: Buď já jsem padouch, nebo Y je poctivec. Kolik je v této dvoučlenné skupině poctivců? X nemůže být padouch, takže musí být poctivec a tím pádem i Y musí být poctivec. C) 2 3. Potkáte osoby X, Y, Z. Z prohlásí: Všichni jsme padouši. X prohlásí: Právě jeden z nás je poctivec. Z nemůže mluvit pravdu, takže Z je padouch a také víme, že v trojici je alespoň jeden poctivec. Tím poctivcem musí být X, takže B) Y je padouch. 4. O dvou osobách řekneme, že mají stejnou povahu, pokud jsou oba pravdomluvci nebo oba lháři. Potkáte osoby X, Y a Z. Y prohlásí: Z je padouch. Z prohlásí: X a Y mají stejnou povahu. Y a Z jsou poctivec a padouch, ale nemůžeme určit, kdo je kdo. V obou případech však musí platit B) X je padouch. 5. Potkáte X a ten prohlásí: Pokud jsem poctivec, je na tomto ostrově poklad. X musí být poctivec, protože kdyby byl lhář, byla by implikace pravdivá a to by byl spor. Odpověď je tedy A) Na ostrově je poklad. 6. Potkáte X a ten prohlásí: Na tomhle ostrově je poklad, právě když jsem poctivec. C) Na ostrově je poklad, ale nelze určit, zda je X poctivec nebo padouch. Celkově tedy máme kód: CCBBAC. Zdroj: R. M. Smullyan, Jak se jmenuje tahle knížka? L6 Co se stalo na šachovnici? Bílému schází 3 figurky (oba střelci a dáma). Na C6 byla brána některá z bílého figurek. Královský střelec to být nemohl, protože byl brán na své výchozí pozici. Dámský střelec je černopolní, proto na C6 byla brána bílá dáma. Černý dámský střelec na poli A2 sem přišel dříve, než bílý pěšec táhl z B2 na B3. Braní dámy na C6 muselo proběhnout dříve, aby se černý dámský střelec dostal do hry. Proto v době, kdy byla brána dáma, byl bílý pěšec z B3 ještě na B2. Bílá dáma nemohla odejít dokud byl bílý dámský střelec na C1. Ten mohl odejít nebo být brán. Odejít nemohl dokud byl

pěšec z B3 na B2. Proto byl brán ve své výchozí pozici na C1. Zdroj: R. M. Smullyan, Šachové záhady arabských jezdců. L7 Krychle Krychli lze sestavit z dílů A (modrá), C (žlutá), F (červená) takto: L8 Mastermind Řešení: ONIO. Zdroj: http://home.zonnet.nl/kostunix/ L9 Bludiště s dynamitem Nejjednodušší způsob řešení spočívá v tom, obarvit si bludiště: Z obrázku již vidíme, že musíme projít alespoň přes 4 oblasti (barvy) a že existuje jediný způsob, jak projít právě přes čtyři: oranžová, světle modrá, hnědá, tmavě modrá. Odpovídající dynamity a písmenka jsou CKN. S1 Římské NeSudoku Šifry a nápadové úlohy Obrázek můžeme rozložit následujícím způsobem:

Dostáváme tedy XVI V XIX, což v římských číslech udává 16 5 19, což po převodu na písmena dává kód PES. S2 Kódování s redundancí Jde o jeden nápis zapsaný pomocí několika různých kódování: ASCII Morseovka Braillovo písmo binární číslování písmen Kód je SEMAFOR. S3 Obrázková křížovka Obrázky schématicky vyjadřují známé webové portály, do křížovky doplňujeme tak, aby písmenka seděla: google wikipedia ebay Idnes amazon Seznam facebook youtube spoluzaci Z křížovky vychází heslo (tématicky opět webový portál) LIBIMSETI. S4 Binární selektor Klíčem k vyleštění této úlohy je využít název. Číslo za každým slovem si napíšeme v binární soustavě a jedničky použijeme jako selektor (tj. klíč k výběru písmen). Například: KRAVA.24 KRAVA.11000 KR Takto dostáváme text KRESTNI JMENO TURINGA. Turing je jeden z nejznámějších informatiků (a jmenuje se podle něj například Turingova cena, což je taková informatická verze Nobelovky). Jeho křestní jméno a tedy i kód je ALAN. S5 Divný Tetris

Řešení spočívá v tom nechat jednotlivé kostičky spadnout směrem, kterým naznačuje stínování (nestínované kostičky zůstávají na místě). Po přesunu vytvoří kostičky nápis KOZA. S6 Schémata Jde o schématické značky výrobců aut. Každá značka obsahuje několik přebytečných prvků stejného typu, podle počtu těchto prvků vybíráme z názvů písmena: lexus bmw opel chrysler suzuki citroen mercedes benz Kód je tedy SMESICE. S7 Seznam Každý člen seznamu nějakým způsobem popisuje jedno písmeno (metafora, asociace, popis tvaru, apod.). Dostáváme zprávu hlavni mesto francie, kód je tedy PARIZ. S8 Fotky Všechny fotky zachycují budovy univerzit. Do políček pod fotkou doplníme města, ve kterých univerzity sídlí: moskva palo alto praha Bratislava Oxford edinburgh brno cambridge Černá kolečka označují písmena tvořící (tématický) kód: SORBONNE. S9 Značky Na obrázku je posloupnost osmi dopravních značek, každá z nich je zobrazená jednou s přeházenými písmenky (permutace písmenek, mezer může být jiný počet než původně byl) a podruhé s hvězdičkami místo písmen - druhé zobrazení je jednak nápověda, jak byl nápis původně strukturován do slov a druhak zvýrazněná hvězdička označuje místo, kde se v originálním nápisu nachází jedno písmeno výsledného kódu. Výsledný kód získáte ze zvýrazněných písmen původních nápisů (jdou ve stejném pořadí, v jakém jsou uvedené značky). Jde o tyto značky: 1. pěší zóna; zásobování 10-14h 2. smog

3. clo zoll 4. 12t mimo bus 5. cyklisto, sesedni z kola 6. nehoda 1,5 km 7. pozor; změna přednosti v jízdě 8. měření rychlosti Kód je POLICAJT.