Didaxis
lecție · Informatică

Generarea aranjamentelor

Selecții ordonate 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

Un aranjament de elemente din valori distincte alege valori fără repetiție, iar ordinea contează. Din , aranjamentele de lungime 2 sunt 12, 13, 21, 23, 31, 32: șase rezultate. Spre deosebire de permutări, nu folosim neapărat toate cele valori.

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

În detaliu

Un aranjament de elemente luate câte este un șir ordonat de elemente distincte alese dintre cele ale mulțimii. Ordinea contează, iar un element nu poate apărea de două ori. Numărul lor este ; pentru aranjamentele sunt permutările. Backtracking-ul este același ca la permutări, cu două deosebiri: soluția are niveluri, nu , iar cazul complet apare când se ajunge la nivelul . La revenirea dintr-un apel valoarea aleasă se eliberează, ca să poată fi folosită în alte ramuri. Pentru există un singur aranjament, cel vid.

Exemplul 1 — aranjamentele de 2 elemente din . Programul citește și , cu .

#include <iostream>
using namespace std;
int n, k, x[11];
bool folosit[11] = {};
void gen(int poz) {
    if (poz == k) {
        for (int i = 0; i < k; ++i) cout << x[i];
        cout << " ";
        return;
    }
    for (int c = 1; c <= n; ++c)
        if (!folosit[c]) {
            folosit[c] = true;
            x[poz] = c;
            gen(poz + 1);
            folosit[c] = false;
        }
}
int main() {
    cin >> n >> k;
    if (0 <= k && k <= n && n <= 10) gen(0);
    return 0;
}

Pentru intrarea 3 2 ieșirea este 12 13 21 23 31 32 , adică aranjamente. În gen(0), alegerea 1 ocupă prima poziție. În gen(1), valoarea 1 este deja folosită, 2 produce 12, iar 3 produce 13. La revenire, 1 este eliberat și poate apărea pe poziția a doua în alte ramuri. Invariantul fiecărui apel este că x[0..poz-1] conține valori distincte, marcate exact în folosit.

Exemplul 2 — numerele de două cifre distincte. Aranjamentele de 2 elemente din sunt : 12 13 14 21 23 24 31 32 34 41 42 43. Dintre ele, cele pare (cu a doua cifră 2 sau 4) sunt 6: 12, 32, 42, 14, 24, 34. Se poate număra și direct: ultima cifră pară are 2 alegeri, iar prima cifră are 3 alegeri (oricare dintre celelalte), deci .

Exemplul 3 — costul generării. Fiecare apel încearcă cel mult valori, deci timpul este limitat superior de pentru afișarea tuturor rezultatelor; este cel puțin proporțional cu , pentru că fiecare soluție se afișează. Memoria auxiliară este proporțională cu . Pentru și numărul aranjamentelor este .

Exemplul 4 — cu și fără repetiție. Codurile de 2 cifre din în care o cifră se poate repeta sunt : 11 12 13 21 22 23 31 32 33. Dacă cifrele trebuie să fie distincte, rămân , adică exact cele fără 11, 22 și 33. Aranjamentele de 3 elemente din 3 sunt permutările, , iar aranjamentele de 1 element sunt chiar elementele, . Aceste cazuri particulare servesc la verificarea rezultatului unei formule sau a unui program.

Exemplul 5 — o restricție pe prima poziție. Câte numere de trei cifre distincte se pot forma cu cifrele ? Fără restricție ar fi șiruri, dar 012 nu este număr de trei cifre. Prima cifră are 3 alegeri (nu poate fi 0), a doua are 3 (oricare dintre cele rămase, inclusiv 0), a treia are 2, deci . Același rezultat se obține scăzând șirurile care încep cu 0: . În program se adaugă în gen condiția if (poz == 0 && c == 0) continue; înaintea marcării valorii, iar ciclul pornește de la c = 0. Primele numere afișate sunt 102 103 120 123 130 132; dintre cele 18, numai 10 sunt pare.

3pentru admiterestratul 3 din 3 · pentru examene

Pentru admitere

Verifică cele două cerințe: nu se repetă valori și ordinea contează. Dacă repetiția este permisă, numărul șirurilor de lungime este , altă problemă. Dacă ordinea nu contează, se cer combinări. Între cele trei numere există legătura : fiecare mulțime de elemente poate fi ordonată în moduri. La o restricție asupra unei poziții, alege mai întâi elementul de pe poziția restrânsă, apoi aranjează restul. În program, fiecare soluție este un șir de valori distincte; dacă ieșirea conține două valori egale într-un șir, marcajul valorilor folosite lipsește sau este anulat prea devreme. Numărul de linii afișate este și nu depinde de ordinea în care sunt încercate valorile; ordinea doar stabilește care linie apare prima, 12 pentru valori încercate crescător.

Exemplu în formatul examenului. Câte numere de două cifre distincte, formate cu cifrele din mulțimea , sunt pare?

  • a) 4
  • b) 6
  • c) 8
  • d) 12

Răspunsul corect este b). O cifră a unităților pară poate fi 2 sau 4, deci 2 alegeri. Cifra zecilor trebuie să fie diferită de cifra unităților și poate fi oricare dintre celelalte 3 cifre, deci 3 alegeri. În total numere: 12, 32, 42, 14, 24, 34. Varianta d) numără toate numerele de două cifre distincte, , fără condiția de paritate.

Greșeli frecvente

  • Greșit: aranjamentele de elemente sunt la fel ca combinările.
    Corect: la aranjamente ordinea contează, la combinări nu.
  • Greșit: cazul complet apare la nivelul .
    Corect: apare la nivelul , lungimea cerută.
  • Greșit: .
    Corect: este numărul șirurilor cu repetiție; fără repetiție este .
î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.