Differences

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

Link to this comparison view

sda-aa:laboratoare:12 [2021/05/23 23:53]
cristian.rusu
sda-aa:laboratoare:12 [2021/05/26 11:58] (current)
cristian.rusu [4. Exerciții laborator]
Line 53: Line 53:
  
 === 3.1 Definiție === === 3.1 Definiție ===
 +
 +Programarea dinamică presupune rezolvarea unei probleme prin descompunea ei în subprobleme și rezolvarea acestora. Spre deosebire de divide et impera, subprogramele nu sunt disjuncte, ci se suprapun.
 +
 +Pentru a evita recalcularea porțiunilor care se suprapun, rezolvarea se face pornind de la cele mai mici subprograme și folosindu-ne de rezultatul acestora calculăm subproblema imediat mai mare. Cele mai mici subprobleme sunt numite subprobleme unitare, acestea putând fi rezolvate într-o complexitate constantă, ex:cea mai mare secvență dintr-o mulțime de un singur element.
  
 === 3.2 Algoritm === === 3.2 Algoritm ===
  
 +<note important>​Pași ce trebuie urmați:
 +   * Identificarea structurii și a matricilor utilizate în caracterizarea soluției optime
 +   * Determinarea unei metode de calcul recursiv pentru a afla valoarea fiecărei subprobleme
 +   * Calcularea „bottom-up“ a acestei valori (de la subprogramele cele mai mici la cele mai mari)
 +   * Reconstrucția soluției optime pornind de la rezultatele obținute anterior
 +</​note>​
  
 ==== 4. Exerciții laborator ==== ==== 4. Exerciții laborator ====
  
-     -  +     ​- ​Aproximaţi,​ printr-o abordare de tip Divide et Impera, cu o eroare (relativă) de maxim 1e-6, funcţia sqrt(n) (extragerea rădăcinii pătrate a unui număr). Nu aveţi voie să folosiţi nicio funcţie din „math.h“. Încercaţi să extindeţi exerciţiul pentru extragerea radicalului de ordin 3. 
 +     - Aproximaţi,​ printr-o abordare de tip Divide et Impera, cu o eroare (relativă) de maxim 1e-3, funcţia lg(n) (extragerea logaritmului în baza 10). Aveţi voie să vă folosiţi de funcţia pow(bază, exp) din „math.h“. 
 +     - Construiți o funcție care calculează f(n), unde f = șirul lui Fibonacci (cu și fără memoizare). Comparați timpii de rulare. n este numar intreg (pozitiv si negativ). 
 +     - Aveți la dispoziție monedele 25, 10, 5 și 1 RON. Calculați cu PD toate posibilitățile de rest (cu și fără memoizare).
sda-aa/laboratoare/12.1621803223.txt.gz · Last modified: 2021/05/23 23:53 by cristian.rusu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0