Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
aa:tema_1_2019 [2019/11/15 17:56]
cpeticila
aa:tema_1_2019 [2019/11/23 11:18] (current)
cpeticila
Line 4: Line 4:
 ''​Responsabili tema'':​ Peticila Alexandru, Peticila Constantin ''​Responsabili tema'':​ Peticila Alexandru, Peticila Constantin
  
-   * I. (//0.3p//) Pentru fiecare din urmatoarele recurente aplicati teorema Master (sau argumentati de ce nu poate fi aplicata, daca este cazul):+   * I. (//0.2p//) Pentru fiecare din urmatoarele recurente aplicati teorema Master (sau argumentati de ce nu poate fi aplicata, daca este cazul):
       * $math[T(n) = 4T(\frac{n}{2}) + n^{2.5}]       * $math[T(n) = 4T(\frac{n}{2}) + n^{2.5}]
       * $math[T(n) =  4T(\frac{n}{2}) + n^2 log(n)]       * $math[T(n) =  4T(\frac{n}{2}) + n^2 log(n)]
       * $math[T(n) = T(\sqrt{n}) + \Theta(log( log( n)))]       * $math[T(n) = T(\sqrt{n}) + \Theta(log( log( n)))]
-      * $math[T(n) = 3T(\frac{n}{3}) + \frac{n}{log (n)}] 
       * $math[T(n) = T(\frac{n}{2}) + n(2 − cos n)]       * $math[T(n) = T(\frac{n}{2}) + n(2 − cos n)]
-      * $math[T(n) = 16T(\frac{n}{4}) + n!]+      * $math[T(n) = 3T(\frac{n}{3}) + \frac{n}{log (n)}] 
 + 
  
 +  * II. (//0.75 x 2 = 1.5p//) Determinati $math[f(n)] cat mai restrictiv astfel incat :
 +      * $math[T(n) = \Theta(f(n))],​ unde  a ≥ 1, c > 0 si $math[T(n) = T(n − a) + T(a) + cn ]
 +      * $math[T(n) = O(f(n))], unde $math[T(n) = T(n − 1) + T(\frac{n}{2}) + n] 
  
-  * II. (//1p//) Determinati $math[f(n)] astfel incat $math[T(n) = \theta(f(n))]+  * III. (//1.5p//) Rezolvati urmatoarea recurenta:  
-      * $math[T(n) = \frac{1}{4}T(\frac{n}{4}) + \frac{3}{4}T(\frac{3n}{4}+ 1]+      * $math[T(a^n) = aT(a^{(n-1)} ) + 2ca^n] ​\\ unde a, c constante cu a > 1 si T(1= 0
  
-  * III. (//1p//) Rezolvati urmatoarea ​recurenta, presupunand ca n este o putere a lui 2: +  * IV. (//1.5p//) Pentru inmultirea matricelor Matei foloseste in acest moment un algoritm cu recurenta ​urmatoare: $math[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 algoritmul 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 Θ($math[n^2] ).
-      * $math[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: ​$math[T(n) = 7T(n/2n^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^).+  * V.(//2 x 0.75 = 1.5p//) Spunem ca f(n) = $math[{Ω}^{ꝏ}(g(n))] daca ∃ un c ∈ $math[{R}^{+}] astfel incat f(n) ≥ c*g(n) ≥ 0 pentru o infinitate de numere ​n
 +         ​- ​ Verificati daca  Ω = $math[{Ω}^{ꝏ}si $math[{Ω}^{ꝏ}] = Ω 
 +         - Stabiliti relatia de adevar a urmatoarei propozitii:\\ Fie f(n) si g(n) doua functii ​asimptotic ​positiveAtunci: fie f(n) = O(g(n)), fie f(n) = $math[{Ω}^{ꝏ}](g(n)) sau ambele.\\ Raspunsul este acelasi si daca inlocuim $math[{Ω}^{ꝏ}] cu Ω? Argumentati!
  
-  * V. (//3p//) Analizati complexitatea urmatorului algoritm, +  * VI. (//2p//) Analizati complexitatea urmatorului algoritm: 
-<​code ​cpp+<​code ​java
-s = 0; +private static Integer recursiveMethod(Integer length) { 
-for(i = 0; i < pow(2,n) ; i++) { +        ​if ​(length ​> 0) { 
-    for(j = i; j > 0; j f(i, j)) { +            Integer index random(length - 1)
-        ​s++;+            return recursiveMethod(index+ recursiveMethod(length - 1 - index); 
 +        } else { 
 +            return 1; 
 +        ​}
     }     }
-} 
 </​code>​ </​code>​
-      ​ 
- avand in vedere ca operatiiile aritmetice si operatiile pe biti (&) se realizeaza in timp constant, iar $math[pow(2,​n) = 2^n], pentru cazul in care : 
-     - <​code>​ f(i,j) = (j-1) & j </​code>​ 
-     ​- ​ <​code>​ f(i,j) = (j-1) & i </​code>​ 
  
 +''​Nota'':​ Metoda random(n) foloseste o unitate de timp si returneaza o valoare uniform distribuita in intervalul [0,n], iar timpul pentru celelalte instructiuni e neglijabil.\\
  
  
-=== PRECIZARI ===+=== PRECIZARI===
   * Tema va fi redactata individual.   * Tema va fi redactata individual.
-  * Tema va fi predata la cursul din data de **23 noiembrie 2018**.+  * Tema va fi predata la cursul din data de **<color #​ed1c24>​6.12.2019</​color>​** .
   * Tema valoreaza **1** punct din nota finala.   * Tema valoreaza **1** punct din nota finala.