Závěrečná písemka E3011 1 2 3 Jméno: UČO: Datum: Při zkoušce je povoleno používat jakékoliv materiály. Naopak je zakázáno kopírovat (celý nebo část) kóá z internetu nebo během písemky s někým komunikovat, včetně chatGPT a poáobných služeb. Pokuá není řečeno jinak, nesmíte používat žááné externí knihovny. Dbejte, aby byl kóá čitelný, správně okomentovaný, proměnné i funkce byly áobře pojmenované. Příklad 1 (30 bodů). Je dán algoritmus: Input: n G N; x G M; y <- i; while n > 1 do if n je suáé then x -í— x2; n i— n/2; else y ^y*x; n <— n — 1; end end return y i) Zkonstruujte tabulku (ručně), ve které budou hodnoty proměnných n,x,y při vstupních hodnotách n = 6, x = 2. [10 bodů] ii) Co vrátí algoritmus pro n = 0,x = — 1? [3 body] iii) Co vrátí algoritmus pro n = 100, x = —1? [2 body] iv) Implementujte algoritmus jako funkci v Pythonu. [15 bodů] Příklad 2 (20 bodů). Vytvořte funkci sinus(x, tol = 0.001), která pomocí McLaurinova rozvoje funkce sinus spočítá funkční hodnotu sin(x) s chybou nejvýše tol. To znamená, že vypočítá částečný součet McLaurinovy řady prvních ./V členů tak, že |sinjvOzO — sinjv+i(20| < tol. Níže je uveden McLaurinův rozvoj funkce sin. Při vypracování použijte funkci f actorial z knihovny math pro výpočet faktoriálu. _ 1 \fó y. 3 ,y-, 5 7 -L ) Jj Jj Jj k=0 y ' Příklad 3 (30 bodů). Napište funkci polynomialProduct(P,Q), která vynásobí 2 polynomy P,Q. Polynomy jsou zadány jako pole reálných čísel od koeficientu u nejvyššího stupně po konstantní člen. Například 1 7 1 (3x3 - x) (x4 + 2x3 - -x + 3) = 3x7 + 6x6 - x5 - -x4 + 9x3 + -x2 - 3x P -"- Q by jako vstup dostaP= [3,0,-1,0] a Q= [1,2,0,-0.5,3] a měl by vrátit pole [3,6,-1,-3.5,9,0.5,-3,0]. Buáete-li mít jakýkoliv problém nebo nerozumíte zaáání, neváhejte se zeptat.