Pe scurt
O submulțime a unei mulțimi de elemente se obține alegând, pentru fiecare element, dacă îl includem sau nu. Pentru , rezultatele sunt , , și . Sunt submulțimi, inclusiv cea vidă și mulțimea întreagă.
În detaliu
O mulțime cu elemente are submulțimi: pentru fiecare element există două alegeri independente, să fie inclus sau nu. Submulțimea vidă și mulțimea întreagă sunt incluse. O submulțime se reprezintă printr-un vector caracteristic , cu dacă elementul este ales și altfel. Generarea prin backtracking parcurge pe fiecare nivel cele două valori, 0 și 1, fără alte condiții. Dacă 0 este încercat înaintea lui 1, ordinea de generare pentru este: mulțimea vidă, , , . Numărul submulțimilor cu exact elemente este , iar suma numerelor lor este .
Exemplul 1 — submulțimile lui .
#include <iostream>
using namespace std;
int x[10], n = 2;
void bt(int k) {
if (k > n) {
cout << "{";
for (int i = 1; i <= n; ++i)
if (x[i]) cout << i << " ";
cout << "} ";
return;
}
for (int v = 0; v <= 1; ++v) {
x[k] = v;
bt(k + 1);
}
}
int main() {
bt(1);
return 0;
}
Programul afișează {} {2 } {1 } {1 2 } , adică submulțimi. Fiecare soluție completă corespunde unui vector caracteristic: 00, 01, 10, 11. Dacă se modifică valoarea lui în 3, programul afișează submulțimi. Ordinea provine din ordinea candidaților: pe fiecare nivel se încearcă întâi 0 („nu aleg”), apoi 1 („aleg”), iar ultimul nivel se schimbă cel mai des. Pentru ca elementul 1 să apară primul în ieșire, ordinea candidaților ar trebui inversată. Fiecare nivel are exact două ramuri, deci arborele apelurilor este un arbore binar complet cu niveluri și frunze.
Exemplul 2 — submulțimi cu o proprietate. Pentru cele 8 submulțimi au sumele în ordinea vectorilor caracteristici (cu primul bit din stânga). Singura submulțime cu suma 4 este . Pentru a număra submulțimile fără două elemente consecutive din se adaugă condiția de continuare „dacă , atunci nu poate fi 1”: rezultă 8 submulțimi (vida, cele 4 cu un element, , și ), mai puține decât cele posibile. Numărul lor, 8, este un număr din șirul lui Fibonacci.
Exemplul 3 — câte ori apare fiecare element. Un element oarecare apare în exact dintre cele submulțimi, adică în jumătate dintre ele: celelalte elemente pot fi alese liber. Pentru fiecare element apare în submulțimi, deci suma tuturor sumelor este , ceea ce coincide cu . O astfel de verificare prin formulă confirmă rezultatul unui program fără a lista submulțimile.
Exemplul 4 — alt mod de generare. Un număr întreg de la 0 la scris în baza 2 cu cifre este un vector caracteristic. Pentru , numerele 0, 1, ..., 7 reprezintă toate cele 8 submulțimi; submulțimea corespunzătoare lui 5 () conține elementele de pe pozițiile cu bitul 1. Metoda cere operații pentru fiecare submulțime.
Exemplul 5 — submulțimile cu exact elemente. Pentru și se păstrează doar vectorii caracteristici cu exact doi de 1: 0011, 0101, 0110, 1001, 1010, 1100. Ei corespund submulțimilor , , , , și , în total . Cele cinci valori ale lui dau submulțimi. În backtracking se ține un contor al elementelor alese și se abandonează ramura în care el depășește .
Pentru admitere
Fiecare element are două alegeri independente, de unde . Dacă se cer doar submulțimile cu exact elemente, numărul este . Ordinea afișării depinde de metoda de generare și nu face parte din definiția mulțimii. Nu număra de două ori aceeași mulțime scrisă în altă ordine: și coincid. Dacă enunțul exclude submulțimea vidă, scade 1 din ; dacă exclude și mulțimea întreagă, scade 2. Pentru rezultă 15, respectiv 14 submulțimi. Submulțimile care conțin un element dat sunt , iar cele care conțin două elemente date sunt ; pentru cele care conțin 1 și 2 sunt . La o restricție de tipul „nu există două elemente consecutive”, numărul crește ca în șirul lui Fibonacci: 2, 3, 5, 8 pentru .
Exemplu în formatul examenului. Câte submulțimi ale mulțimii nu conțin două elemente consecutive (numere care diferă prin 1)? Se numără și submulțimea vidă.
- a) 5
- b) 8
- c) 12
- d) 16
Răspunsul corect este b). Submulțimile fără elemente consecutive sunt: vida; cele patru cu un singur element, ; și cele cu două elemente neconsecutive, , și . Nu există submulțimi cu trei elemente care să respecte condiția. Total . Varianta d) numără toate cele submulțimi, fără restricție.
Greșeli frecvente
- Greșit: o mulțime cu elemente are submulțimi.Corect: are .
- Greșit: submulțimea vidă nu se numără.Corect: este o submulțime și apare printre cele .
- Greșit: și sunt submulțimi diferite.Corect: sunt aceeași mulțime.
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; 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
