Didaxis
lecție · Informatică

Generarea combinărilor

Selecții neordonate fără repetare.

Se face în:
Clasa a XI-a
Actualizat la: 30 octombrie 2026
1pe scurtstratul 1 din 3 · rezumatul lecției

Pe scurt

O combinare de elemente din valori distincte alege valori fără repetiție, iar ordinea nu contează. Din , combinările de lungime 2 sunt , și . Pentru a nu genera și 21 după 12, construim valorile în ordine strict crescătoare.

Desen la lecția „Generarea combinărilor”
2în detaliustratul 2 din 3 · pentru clasă și Bacalaureat

În detaliu

O combinare de elemente luate câte este o submulțime cu elemente: ordinea nu contează, iar elementele sunt distincte. Numărul lor este ; pentru și sunt 3. Pentru a genera fiecare combinare o singură dată, soluția se construiește ca un vector strict crescător: la fiecare poziție se aleg numai valori mai mari decât cea precedentă. Astfel apare o dată, ca 12, nu și ca 21. Invariantul este pentru primele poziții completate. Pentru există o singură combinare, cea vidă; pentru există o singură combinare, mulțimea întreagă. Se poate tăia o parte din ramuri limitând valorile: la poziția este nevoie de valori ulterioare, deci (cu pozițiile numerotate de la 1 la ).

Exemplul 1 — combinările de 2 din .

#include <iostream>
using namespace std;
int x[3];
void gen(int poz, int inceput) {
    if (poz == 2) {
        cout << x[0] << x[1] << " ";
        return;
    }
    for (int c = inceput; c <= 3; ++c) {
        x[poz] = c;
        gen(poz + 1, c + 1);
    }
}
int main() {
    gen(0, 1);
    return 0;
}

Programul afișează 12 13 23 . Apelul gen(0, 1) alege mai întâi 1; gen(1, 2) completează cu 2 și apoi cu 3, obținând 12 și 13. Revenind la prima poziție, alege 2 și completează cu 3, obținând 23. Ramura care începe cu 3 nu mai are o valoare mai mare disponibilă și nu afișează nimic. Astfel fiecare selecție de două elemente apare o singură dată.

Exemplul 2 — combinările de 2 din . Se obțin combinări, în ordinea 12 13 14 23 24 34. Dintre ele, cele cu suma elementelor 5 sunt 14 și 23. Dacă se cer combinările de 3 din cu suma 9, se testează suma la sfârșit sau pe parcurs: sunt combinări în total, iar suma 9 o au 135 și 234, adică 2 dintre ele.

Exemplul 3 — relații între numere de combinări. Numărul combinărilor respectă relațiile și . Pentru și : , în acord cu lista 12 13 14 23 24 34; pentru : . A doua relație are o interpretare directă: combinările care conțin elementul sunt , iar cele care nu îl conțin sunt . Dacă generarea nu ar impune ordinea crescătoare, din s-ar obține 6 șiruri de 2 elemente în loc de 3 combinări.

Exemplul 4 — legătura cu aranjamentele. Fiecare combinare de elemente se poate ordona în moduri, deci . Pentru și : , și , adică . Memoria de lucru pentru soluția curentă și apelurile recursive este proporțională cu ; scrierea tuturor rezultatelor cere cel puțin pași.

Exemplul 5 — tăierea ramurilor fără destule valori. Pentru combinările de 3 din , rezultatul este 123 124 134 234, adică combinări. Fără limită superioară, generarea face 15 apeluri ale funcției gen, deoarece încearcă și prefixe care nu se mai pot completa, cum sunt 3 sau 14. Dacă ciclul se oprește la , cu pozițiile numerotate de la 0, prima poziție primește doar 1 sau 2, a doua doar valori până la 3, iar apelurile scad la 10. Cele patru combinări rămân aceleași: limita taie doar ramuri fără soluții.

3pentru admiterestratul 3 din 3 · pentru examene

Pentru admitere

Nu confunda combinările cu aranjamentele. Fiecare mulțime de elemente are ordonări când elementele sunt distincte; de aceea . Pentru a număra combinările cu o proprietate, generează mulțimile în ordine crescătoare și verifică proprietatea pe fiecare. O limită superioară mai strânsă pentru valorile încercate poate evita ramuri care nu mai au destule valori pentru completare, dar nu schimbă mulțimea soluțiilor. La numărare, folosește simetria : alegerea celor elemente păstrate este echivalentă cu alegerea celor elemente excluse, deci . Într-un program, verifică lungimea soluției: la generarea combinărilor de elemente, afișarea apare când s-au completat exact poziții, nu . Dacă o combinare trebuie să conțină un element dat, acesta se fixează și se aleg celelalte elemente dintre cele rămase: posibilități, de pildă combinări de 3 elemente din care conțin elementul 1.

Exemplu în formatul examenului. Câte submulțimi cu 3 elemente ale mulțimii au suma elementelor egală cu 9?

  • a) 1
  • b) 2
  • c) 3
  • d) 10

Răspunsul corect este b). Submulțimile cu 3 elemente sunt . Suma 9 o au și ; celelalte au suma diferită, de pildă are 6, are 10, iar are 10. Deci sunt 2 astfel de submulțimi. Varianta d) este numărul tuturor combinărilor, fără condiția pe sumă.

Greșeli frecvente

  • Greșit: 12 și 21 sunt combinări diferite.
    Corect: la combinări ordinea nu contează, deci reprezintă aceeași mulțime.
  • Greșit: combinările pot fi generate fără restricția de ordine crescătoare, fiindcă duplicatele se elimină la final.
    Corect: restricția de ordine evită generarea duplicatelor.
  • Greșit: .
    Corect: .
în contul tăuPremium

Testează-te pe această lecție

Lecția o citești aici, fără cont. Testele pe lecții și capitole sunt în cont, cu grile originale Didaxis și explicația fiecăreia: gratuit 10 grile pe zi, fără limită cu Premium, 49 de lei pe lună pentru fiecare copil.

Înainte și după

Surse și referințe

Redactare proprie, conform programei:

  • OMECI 5099/2009, anexa 5, Informatică, p. 4–5, clasa XI intensiv; rocnee.eu
  • OMECI 5099/2009, anexa 5, Informatică, p. 4–5, clasa XI; plan de încadrare: OMEC 7723/2024, anexa 2, tabelele 1–25, legislatie.just.ro; filiera tehnologică: OMEC 7724/2024, anexa 4, tabelul calificării, legislatie.just.ro
  • UNSTPB, Regulament admitere licență 2026, Anexa II-1.2 p. Anx II-14 și Anexa XI-3 p. Anx XI-6–7 (PDF p. 64, 120–121); admitere.pub.ro
  • OMECTS 4800/2010, anexa 2, Informatică, p. 3–4; edu.ro

Documente consultate

  • UNSTPB, admitere 2026, anexa XI-3, p. Anx XI-6–7
  • Programa școlară de informatică, clasa a XI-a (OMECI 5099/2009, anexa 5), CNCE, p. 4–5; rocnee.eu
  • Programa de bacalaureat la informatică, matematică-informatică (anexa 2 la OMECTS 4800/2010), Ministerul Educației, p. 4–5; edu.ro
  • Subiectele și baremele Bacalaureatului 2026; subiecte2026.edu.ro

Desene: Redactare proprie (desen original), conform Programa școlară de informatică, clasa a XI-a (OMECI 5099/2009, anexa 5), CNCE; rocnee.eu

lecțiile sunt gratuite

Ai citit lecția. Acum verifică-te.