this dir | view | cards | source | edit | dark
top
ADS
Cviko
- Vladan Majerech
- cvičení bude rychlé a náročné
- stránka předmětu – budou tam informace, možná i video
- budou tam domácí úkoly!
- termín je těsně před (dalším) cvičením
- je to bez nápověd
- po deadlinu max. poloviční počet
- lze odevzdávat opakovaně
- můžeme úkoly dělat napřed, většina bude stejná jako vloni
- musíme mít dvě třetiny bodů
- otázka
- máme vajíčko, které se z nějaké výšky rozbije, z menší ne
- máme diskrétní výšky, máme k vajíček, chceme minimalizovat počet pokusů
- nerozbitá vajíčka umíme sbírat
- řešíme pro k vajíček
- hledáme minimální počet pokusů – nevadí, že rozbijeme všechna vajíčka, pokud známe řešení
- odpověď
- s jedním vajíčkem musíme postupně zespodu
- hledáme f(v,h) … počet pokusů
- kde v je počet vajíček
- h je počet různých výšek
- to je špatné řešení, funkce by se snadno komprimovala
- správné f(v,p) … # výšek
- hledáme rekurenci
- f(v,p)=f(v,p−1)+f(v−1,p−1)
- buď se vajíčko rozbilo, nebo se nerozbilo
- f(v,0)=1
- f(0,p)=1
- Pascalův trojúhelník
- tabulka, jednička podél obou okrajů, takže to není přímo Pascalův trojúhelník
- f=∑i=0v(ip)
- AVL strom
- pro každý vrchol: maximální hloubka pravého podstromu se od levého liší o jedna
- n je počet vrcholů, jaká je nejvyšší hloubka? (nejhorší strom)
- budeme počítat obráceně
- hledáme minimální počet vrcholů pro danou výšku
- A(h) … minimální počet vrcholů
- původní funkce je schodovitá
- nová funkce nám vyjadřuje, kde jsou ty schody
- když chceme co nejhlubší, tak bude jeden podstrom o jedna menší
- A(h)=A(n−1)+A(n−2)+1
- F(h)=F(h−1)+F(h−2) … Fibonacciho posloupnost
- B(h)=A(h)+1=A(h−1)+A(h−2)+1+1=B(h−1)+B(h−2)
- A(h)=B(h)−1
- je to posunutá Fibonacciho posloupnost
- mějme rekurenci
- An+3=c1An+2+c2An+1+c3An
- předpokládejme řešení qn+3=c1qn+2+c2qn+1+c3qn
- tedy q3=c1q2+c2q1+c3q0
- polynom třetího stupně má tři kořeny q1,q2,q3
- α1q1n+α2q2n+α3q3n
- s komplexními kořeny není problém
- je problém s dvojnásobnými kořeny
- u vícenásobných kořenů hledáme kořeny stylem qn,qn⋅n,qn(2n)
- rekurenci lze zapsat jinak – viz sešit
- obecnější master theorem
- napsali jsme program, n je velikost vstupu
- t(n)=cnαlogβn+t(a1n)+t(a2n)+⋯+t(akn)
- ∀i:ai<1;a1≥a2≥⋯≥ak
- n≤n0t(n)≤C
- rozepíšeme příklad bez logaritmu
- za domácí úkol indukcí dokázat ty tři varianty
https://mj.ucw.cz/vyuka/2021/ads1/