Documente Academic
Documente Profesional
Documente Cultură
Avem un rucsac cu care putem transporta o anumită greutate maximă G. Avem n obiecte
de transportat şi pentru fiecare obiect se cunoaşte greutatea sa şi beneficiul obţinut de pe
urma transportului. Se cere să se determine ce obiecte pot fi transportate odată, astfel încât
câştigul să fie maxim.
2. Se dau n numere întregi nenule b1, b2, …, bn şi m numere întregi nenule a1, a2, …, am.
Presupunând că n m, Să se determine o submulţime a mulţimii B = {b1, b2, …, bn} care
să maximizeze valoarea expresiei
sortare(a, m)
sortare(b,n)
expresie=0
k=0
cat timp k<m si a[k]<0
expresie=expresie + a[k]*b[k]
k = k+1
sfarsit cat timp
pentru i=k,m-1
1
expresie = expresie + a[i]*b[n-m+i]
sfarsit pentru
return
3. Fiind dat un număr natural n, afișați primele n numere care au ca factori primi doar pe 2,
3 și 5.
Indicații de rezolvare (idei)
- Considerați cel mai mic multiplu de 2, de 3 și de 5.
4. Se dă o fracție. Să se exprime ca sumă minimă de alte fracții pozitive cu numărătorul 1.
Exemplu 6/14 este 1/3 + 1/11 + 1/231 sau 12/13 este 1/2 + 1/3 + 1/12 + 1/156.
5. Se dă o bucată de hârtie de dimensiune A x B. Hârtia se taie în pătrate de orice dimensiune.
Găsiți numărul minim de pătrate în care poate tăia.
Exemplu 13 x 29 = 2 (13x13) + 4 (3x3) + 3 (1x1) = 9 bucăți
6. Fie N intervale închise pe axa 0X (de forma [xi, xj]). Să se determine un număr minim de
puncte, astfel încât fiecare interval să conţină cel puţin unul dintre acestea.
Algoritmul Huffmann este folosit pentru compresia datelor fără pierdere de informaţie
(vezi curs). Un cod prefix este un cod în care nici un element al codului nu reprezintă un
prefix pentru al element. Acest lucru permite codificare/decodificare fără ambiguităţi.
a b c d e f
2
Codificarea cu codul 2 00101100110110100 reprezintă 0. 0. 101. 100. 1101. 101.0.0 adică
textul aabcebaa
Codul corespunzător unui caracter dintr-o frunză se obţine prin concatenarea caracterelor
care se află pre drumul de la rădăcină către frunza respectivă.
Observaţie: un cod optimal se obţine pe baza unui arbore binar în care fiecare nod
neterminal are exact doi descendenţi.
Decodificarea: pentru a putea decodifica corect documentul, este necesar ca atât cel care
codifică, cât şi cel care decodifică să utilizeze acelaşi arbore. Acest lucru se realizează ori
prin folosirea de comun acord a aceluiaşi set de caractere cu aceeaşi frecvenţă sau prin
transmiterea împreună cu textul codificat şi a arborelui de codificare. În literatură sunt
propuse diferite moduri de soluţionare a acestei probleme.