====== 02 Prohledávání II ====== Některé cesty vedou k nalezení cíle možná rychleji. Jak to můžeme odhadnout. Heuristická funkce. Jaké heuristiky jsou nejlepší, přípustné? ===== Program ===== - Dotazy k hledání v bludišti - Kvíz I, II - Rekurzivní implementace výpočtu fibonacciho posloupnosti a její analýza - Seznámení s programovací úlohou reversi ===== Bonusový kvíz ===== * kvíz na vlastnosti heuristik. /* * bodovaný, bonusových 0.5bodu * řešení odevzdat do BRUTE do úlohy **lab03quiz**, do půlnoci dne, kdy běží dané cvičení * formát: textový soubor, fotka řešení na papíře, pdf - co Vám nejlépe vyhovuje a dokážeme to přečíst * správné řešení prodiskutujeme na příštím cvičení */ > {{page>courses:b3b33kui:internal:quizzes#Heuristické cvičení}} /* ==== Zadání kvíz I ==== * p. 101, St 12:45: {{ :courses:b3b33kui:cviceni:program_po_tydnech:20210303-085023_heuristics_cviko101.pdf | cviko101.pdf}} * p. 102, St 14:30: {{ :courses:b3b33kui:cviceni:program_po_tydnech:20210303-085104_heuristics_cviko102.pdf | cviko102.pdf}} * p. 103, Čt 12:45:{{ :courses:b3b33kui:cviceni:program_po_tydnech:heuristics_ct_4mar_p103_cz.pdf |heuristics_ct_4mar_p103_cz.pdf}} * p. 104, Čt 14:30: {{ :courses:b3b33kui:cviceni:program_po_tydnech:heuristics_cviko104.pdf |cviko104.pdf}} * p. 105, Pá 9:15: {{ :courses:b3b33kui:cviceni:program_po_tydnech:heuristics_pa_5mar_p105_cz.pdf |heuristics_pa_5mar_p105_cz.pdf}} */ ===== Kvíz II ===== /* * prezentace {{ :courses:b3b33kui:cviceni:program_po_tydnech:search_ii_example_cz.pdf |Search_II_example_cz.pdf }} */ > {{page>courses:b3b33kui:internal:quizzes#padajici_2_vejce}} ===== Faktoriál ===== Naprogramujte rekurzivně výpočet faktoriálu $f(n) = n!$ ++++ Návod | Pro inspiraci tréninku implementace rekurzivní funkce viz napr. https://www.python-course.eu/recursive_functions.php Doporučuji připomenout vzorec pro výpočet na tabuli a převést ho vhodně na rekurzivní formu. $n! = n(n-1)(n-2)\cdots 1$ což lze převést na $n! = n(n-1)!$ tedy: $f(n) = n * f(n-1)$ ++++ ++++ Vizualizace volání: | {{:courses:b3b33kui:internal:cviceni:fact.png| }} ++++ ===== Fibonacciho posloupnost ===== Naprogramujte rekurzivně výpočet Fibonacciho posloupnosti. $f(n) = f(n-1) + f(n-2)$. Analyzujte počet volání funkce a hloubku zanoření. ++++ Strom volani: | {{ :courses:b3b33kui:internal:cviceni:fib.png?400 |}} ++++ ++++ Demo code: | jen pro učitele: https://gitlab.fel.cvut.cz/kui-course/kui-misc/blob/master/fibonacci.py ++++ ===== DÚ - Reversi ===== * Stáhněte a otevřete si projekt reversi (návod naleznete [[courses:b3b33kui:semestralni_ulohy:2_reversi:start|zde]]). * Spusťte hru * Vytvořte si svého hráče