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. (1p) Determinati $ f(n)$ astfel incat $ T(n) = \theta(f(n))$ :
    • $ T(n) = \frac{1}{4}T(\frac{n}{4}) + \frac{3}{4}T(\frac{3n}{4}) + 1$
  • III. (1p) Rezolvati urmatoarea recurenta, presupunand ca n este o putere a lui 2:
    • $ T(n) = \displaystyle\sum_{i=1}^{log_2n} T(\frac{n}{2^i}) + n$
  • IV. (2p) 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.
    Acesta s-a gandit sa incerce un algoritm care sa imparta fiecare matrice 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. (2p) 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;
        }
    }

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.