Professional Documents
Culture Documents
12. La generarea unor şiruri de numere x1, x2, …, xn cu backtracking funcţia valid(k) (sau
funcţia de continuare) verifică dacă:
a) xk este bun b) subşirul x1, x2,…, xk este bun
c) şirul x1, x2, …, xn este bun d) subşirul xk-1, xk este bun
13. Vrem să generăm numărul submulţimilor mulţimii {1,2,…,n} formate din k elemente,
pentru k=1,2,3,…,n. Cea mai potrivită metodă este:
a) backtracking b) D & I
c) greedy d) folosirea unei relaţii de recurenţă
14. Se dau n intervale a căror reuniune este intervalul [0,1000]. Pentru a alege un număr minim
de intervale a căror reuniune să fie mulţimea [0,1000] folosim:
a) backtracking b) D & I
c) greedy d) metoda Monte-Carlo
15. Se dă şirul x1, x2, …, xn. Ce tehnică de programare se foloseşte la definirea funcţiei care
determină cel mai mare număr din mulţimea {xp, xp+1, …, xq} scrisă astfel:
x p , d a c pa = q
x p , d a c qa = p + 1 s ix p > xq
M a(xp, q) =
xq , d a c qa = p + 1 s ixq ≥ x p
M a(xM a(xp,[ (p + q) / 2] ) ,M a(x[ (p + q) / 2] + 1, q) i n r e s t
a) greedy b) backtracking c) div. et imp. d) modularizare
16. La algoritmul backtracking standard ce se întâmplă dacă am încercat toate valorile posibile
pentru xk:
a) se revine la xk-1, dacă k>1 b) se termină programul
c) se trece la xk+1, dacă k<n d) se afişează soluţia găsită
18. Care va fi valoarea returnată la apelul f_rec(4) dacă funcţia f_rec este definită astfel:
int f_rec(int n) {if(n==0) return 0; else return n+f_rec(n-1);}
a) 1 b) 6 c) 10 d) 21
20. Generând şirurile de maximum 3 caractere distincte din mulţimea {A,B,C,D,E} ordonate
lexicografic, obţinem succesiv: A, AB, ABC, ABD,…. Ce şir va fi generat după BAE?
a) BC b) CAB c) BCA d) BEA
21. Generând prin backtracking permutările mulţimii 1,2,…,n în vectorul x1, x2 ,…, xn valoarea
xk (1 ≤ xk ≤ n) este validă dacă e îndeplinită condiţia:
a) xk ≠ x1, x2, …, xk-1 b) xk ≠ xk-1
c) xk ≠ x1, x2, …, xn d) xk ≠ xk-1 şi xk ≠ xk+1
24. Pentru problema generării tuturor şirurilor de 2n paranteze care se închid corect, rezolvată
cu backtracking, funcţia valid trebuie să verifice:
a) numărul de paranteze deschise şi închise să fie egal
b) numărul de paranteze deschise să fie ≥ numărul de paranteze închise
c) numărul de paranteze deschise să fie ≤ n şi numărul de paranteze închise să fie ≤n
d) 0 ≤ diferenţa dintre nr. paranteze deschise şi nr. paranteze închise ≤ n-k
25. Pentru scrierea unui număr ca sumă de puteri ale lui 2 se foloseşte metoda:
a) greedy b) backtracking c) div. et imp. d) altă metodă
26. Soluţia (sau soluţiile) unei probleme se reprezintă ca şir (sau şiruri) de numere x1, x2, …, xn
cu anumite proprietăţi. Care din următoarele condiţii este obligatorie pentru rezolvarea
problemei prin metoda backtracking:
a) fiecare termen al şirului să aparţină aceluiaşi interval [a,b]
b) numărul n al termenilor şirului să fie cunoscut
c) să existe posibilitatea verificării corectitudinii (parţiale) a fiecărui subşir x1, x2, …, xk (k≤n)
d) să existe mai multe soluţii posibile
27. O problemă de optimizare presupune găsirea valorii optime (de obicei valoarea maximă
sau minimă) pentru anumite cerinţe. Ce tehnici nu sunt potrivite pentru rezolvarea unei astfel de
probleme?
a) greedy b) backtracking c) D & I d) probabilistice
29. Ce condiţie nu e necesară pentru existenţa unei rezolvări prin metoda Divide & Impera a
unei probleme?
a) problema să poată fi descompusă în două probleme parţiale similare
b) rezultatele celor două probleme parţiale să permită obţinerea rezultatului
c) după mai multe descompuneri să se ajungă la probleme cu rezultat uşor de obţinut
d) rezolvarea să presupună apelul recursiv al unei funcţii