📘 Lecție de C++ pentru clasa a 11-a și BAC, cu explicații video de la profesor. Mai jos ai rezumatul. În lecția completă găsești aplicații rezolvate cu simulator, în care vezi pas cu pas cum se schimbă variabilele, compilator C++ în browser, exerciții propuse cu indicii și rezolvare, și pe Alex, asistentul care îți dă indicii, îți explică algoritmul și îți corectează codul.
🎯 Apare la BAC? Da. La Subiectul I apare frecvent un item de generare: ce soluție se obține pe o anumită poziție sau câte soluții se generează.
void bt(int k) {
if (k == n + 1) { afiseaza(); return; }
for (int i = 1; i <= n; i++)
if (!folosit[i]) {
sol[k] = i; folosit[i] = 1;
bt(k + 1);
folosit[i] = 0;
}
}
1. Ce este metoda Backtracking? O metodă care construiește soluția pas cu pas și revine la pasul anterior când alegerea curentă nu mai poate duce la o soluție.
2. Care e diferența dintre permutări, aranjamente și combinări? La permutări folosești toate n elementele în orice ordine. La aranjamente alegi k elemente și ordinea contează. La combinări alegi k elemente și ordinea nu contează.
3. Ce înseamnă „revenire” în Backtracking? Anularea ultimei alegeri, ca să încerci altă valoare la același pas.
4. Cât de rapid e Backtracking-ul? Depinde de problemă: permutările au n! soluții, combinările C(n,k). Pentru n mare devine lent.
5. Backtracking se folosește doar la permutări? Nu. Se folosește la orice problemă în care soluția se construiește pas cu pas, cu verificări la fiecare pas.