This is an old revision of the document!
TEMA 1
Responsabili tema
: Peticila Alexandru, Peticila Constantin
- I. (0.5 x 6 = 3p) Pentru fiecare din urmatoarele recurente aplicati teorema Master (sau argumentati de ce nu poate fi aplicata, daca este cazul):
- $ T(n) = 4T(\frac{n}{2}) + n^{2.5}$
- $ T(n) = 4T(\frac{n}{2}) + n^2 log(n)$
- $ T(n) = T(\sqrt{n}) + \Theta(log( log( n)))$
- $ T(n) = 3T(\frac{n}{3}) + \frac{n}{log (n)}$
- $ T(n) = T(\frac{n}{2}) + n(2 - cos n)$
- $ T(n) = 16T(\frac{n}{4}) + n!$
- II. (0.75 x 2 = 1.5p) Determinati $ f(n)$ cat mai restrictiv astfel incat :
- $ T(n) = \Theta(f(n))$ , unde a ≥ 1, c > 0 si $ T(n) = T(n - a) + T(a) + cn $
- $ T(n) = O(f(n))$ , unde $ T(n) = T(n - 1) + T(\frac{n}{2}) + n$
- III. (2p) Rezolvati urmatoarea recurenta:
- $ T(a^n) = aT(a^{(n-1)} ) + 2ca^n$
unde a, c constante cu a > 1 si T(1) = 0
- IV. (1.5p) Pentru inmulturea matricelor Matei foloseste in acest moment un algoritm cu recurenta urmatoare: $ T(n) = 7T(n/2) + n^2$ .
El nu este multumit de complexitatea acestui algoritm si doreste sa realizeze un algoritm asimptotic mai rapid prin impartirea matricelor in bucati de dimensiune n/4*n/4.
Care este numarul maxim de subprobleme pe care algorimul sau poate sa il creeze astfel incat sa fie asimptotic mai rapid decat algoritmul cel vechi?
Nota
: Pasii de divide si combina au impreuna complexitatea de Θ(n^2 ).
- V. (3p) Analizati complexitatea urmatorului algoritm,
private static Integer recursiveMethod(Integer length) { if (length > 0) { Integer index = random(length - 1); return recursiveMethod(index) + recursiveMethod(length - 1 - index); } else { return 1; } }
Nota
: Metoda random(n) foloseste o unitate de timp si returneaza o valoare uniform distribuita in intervalul [0,n], iar timpul pentru celelate instructiuni e neglijabil.
PRECIZARI
- Tema va fi redactata individual.
- Tema va fi predata la cursul din data de 23 noiembrie 2018.
- Tema valoreaza 1 punct din nota finala.