💻 Lecții C++ & Python🏠 Home
Recursivitate C++: Permutări, Combinări | Clasa 11
◀Recursivitate în C++: Factorial, FibonacciDivide et Impera în C++: MergeSort, Căutare Binară▶
Se pregătesc resursele...

📘 Lecție de C++ pentru clasa a 11-a, BAC și olimpiadă, 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? Indirect. Generarea permutărilor și combinărilor apare la BAC la itemii de backtracking, iar lecția asta îți construiește baza pentru ei.

Generarea permutărilor recursiv

void perm(int k) {
    if (k == n + 1) { afiseaza(); return; }
    for (int i = 1; i <= n; i++)
        if (!folosit[i]) {
            sol[k] = i;
            folosit[i] = 1;
            perm(k + 1);
            folosit[i] = 0;
        }
}

❓ Întrebări frecvente

1. Câte permutări are o mulțime cu n elemente? n! permutări, deci numărul lor crește foarte repede.

2. Ce rol are vectorul folosit[]? Marchează valorile deja puse în soluția curentă, ca să nu se repete.

3. De ce se pune folosit[i] = 0 după apelul recursiv? Ca valoarea i să poată fi folosită din nou în alte variante ale soluției.

4. Care e diferența față de backtracking? Backtracking adaugă condiții de validare care opresc devreme variantele care nu pot da soluție.

5. Se pot genera permutări fără recursivitate? Da, de exemplu cu next_permutation, dar varianta recursivă e mai ușor de înțeles.

Ce conține lecția completă?

  • ✅ Explicații video cu profesorul
  • ✅ Aplicații rezolvate cu simulator: vezi cum se schimbă variabilele la fiecare pas
  • ✅ Compilator C++ în browser: rulezi codul direct
  • ✅ Combinări și aranjamente
  • ✅ Submulțimi cu proprietăți
  • ✅ Probleme de olimpiadă rezolvate
  • ✅ Exerciții propuse cu indicii și rezolvare
  • ✅ Asistentul Alex: indicii, explicarea algoritmului, corectarea codului

Vezi și — alte lecții din același capitol