Prg2 CZ Mat čt 12:20 09. 05. 2024 Prg2 CZ Mat čt 14:00 09. 05. 2024 Prg2 CZ Mat čt 17:20 09. 05. 2024 poznámka: stredecni tj 8.5. teoreticka hodina nebyla, byl statni svatek 2. (recodex) DP úloha - Mrkev a přetrTržel Máme osít N záhonů. Na každém záhonu může být buď mrkev nebo petržel, avšak nikdy nesmí být žádné dva sousední záhony osety petrželí. Sestavte program, který ze standardního vstupu přečte počet záhonů N a na standardní výstup vypíše číslo P, kde P je počet různých přípustných osetí. Snažte se o efektivní výpočet. Vstupní číslo N nesmí být větší než 44. Pro výpočty použijte typ longint. Příklad: Vstup: 3 Výstup: 5 Vysvětlení: Pro tři záhony existuje 5 způsobů, jak je osít. Postup (u tabule): a) Rekurze - nejprve si zkusme úlohu formulovat rekurzivně (top-down) b) Rekurze s Memoizací - zjistíme, že řadu mezivýsledků počítáme opakovaně tak si je zapamatujeme (top-down) c) DP - "odstraníme" rekurzi a postupně počítáme z řešení menších úloh k větší (bottom-up) (je treba pocitat petrzel a mrkev zvlast nebo staci jedno cislo? .... staci) Naprogramovat: - rekurzivni reseni - rekurzivni reseni s memoizaci - zmerit cas vypoctu (treba pro vsechny vstupy v range(24)) obou verzi a porovnat (import sys.time, start = time.time(), end = time.time(), print(end - start) - reseni pomoci DP 3. Visual Studio - Debugging https://code.visualstudio.com/docs/introvideos/basics 4. P2M: Klementinum (recodex na matplotlib) CSV: a] nacist a naparsovat rucne b] knihovny https://docs.python.org/3/library/csv.html https://www.programiz.com/python-programming/reading-csv-files Procisteni dat a vypocet statitik Zobrazeni dat https://www.geeksforgeeks.org/simple-plot-in-python-using-matplotlib/ https://www.programiz.com/python-programming/pandas/plot A nebo cely proces v Pandas (doporucuji) ... https://www.programiz.com/python-programming/pandas/introduction --------------------------------------------------------------------------- V pripade volneho casu pokracovas s variantami uloh: 4. Mějme šachovnici. Na šachovnici je zadáno: startovní (S) políčko, cílové (C) políčko a figurka. Následuje série úloh: 4.1 Dostanu se figurkou ze startu do cíle? Rozhodněte, zdali lze ze startovního políčka dosáhnout cílové políčko pomocí koně (figurka šachů). 4.2 Jaká je nejkratší cesta ze startu do cíle? V kolika nejméně tazích koněm (figurka šachů) lze dosáhnout cílové políčko ze startovní pozice (figurka šachů), pokud nelze vraťte hodnotu "-1". 4.3 Vypsat-evidovat nejkratší cestu Vypište nějakou nejkratší cestu koněm (figurka šachů) ze starotvního políčka do cílového. 4.5 Modifikace předchozích úkolů (jak dosažení, nejkratší cesta (délka) tak nejkratší cesta (výpis)), pro: 4.5.2 jiné figurky: střelec, věž, dám, baba jaga, ... (obecně jiný druh pohybu po šachovnici) 4.5.3 nestandardní šachovnice: s překážkami (zakázané pole), nestandardní rozměry (třeba 11x11), toroidní (cirkulární) pole, ... 5. Příklad: Cesta králem na šachovnici