Pe scurt
Un graf simplu neorientat este complet dacă fiecare pereche de vârfuri distincte este legată printr-o muchie. Graful complet cu 3 vârfuri este triunghiul și are 3 muchii: 1–2, 1–3 și 2–3.
În detaliu
Un graf simplu neorientat cu vârfuri este complet dacă oricare două vârfuri distincte sunt adiacente. Se notează . Numărul muchiilor este , fiindcă fiecare dintre cele vârfuri are vecini, suma gradelor este , iar fiecare muchie este numărată de două ori în această sumă.
Exemplul 1 — numărul de muchii. Pentru formula dă :
#include <iostream>
using namespace std;
int main() {
int n = 4, muchii = n * (n - 1) / 2;
cout << muchii;
}
Se afișează 6. Numără perechile fără să le repeți: [1,2], [1,3], [1,4], [2,3], [2,4], [3,4]. Sunt șase, deci rezultatul programului corespunde definiției. Dacă elimini [2,4], rămân cinci muchii, iar gradele lui 2 și 4 scad de la 3 la 2; graful nu mai este complet, chiar dacă este încă conex. Programul care calculează doar numărul face operații aritmetice, iar înmulțirea încape într-un int pentru de ordinul miilor.
Exemplul 2 — construirea matricei lui . Pentru , formula dă muchii și grad 4 pentru fiecare vârf. Programul construiește efectiv matricea de adiacență, numără muchiile și calculează gradul vârfului 3:
#include <iostream>
using namespace std;
int main() {
int n = 5, a[6][6] = {}, m = 0, g = 0;
for (int i = 1; i <= n; ++i)
for (int j = i + 1; j <= n; ++j) {
a[i][j] = a[j][i] = 1;
++m;
}
for (int j = 1; j <= n; ++j) g += a[3][j];
cout << m << " " << g;
}
Se afișează 10 4. Diagonala principală rămâne cu zerouri, deoarece un vârf nu este adiacent cu el însuși, iar fiecare pereche cu este parcursă o singură dată. Cele două cicluri for execută iterații interioare, adică exact numărul muchiilor. Construirea matricei examinează perechi și folosește memorie, spre deosebire de calcularea formulei.
Graful complementar. Complementarul unui graf cu vârfuri și muchii are aceleași vârfuri și toate muchiile care lipsesc, deci muchii. Un graf cu 6 vârfuri și 9 muchii are perechi neadiacente; adăugarea lor îl face complet.
Verificarea unui graf dat prin matrice. Un graf este complet dacă și numai dacă toate elementele din afara diagonalei principale sunt 1, adică a[i][j] = 1 pentru orice . Condiția este echivalentă cu faptul că fiecare linie are suma sau cu faptul că numărul muchiilor este . Un singur 0 în afara diagonalei este de ajuns ca graful să nu fie complet. Orice vârfuri ale unui graf complet formează tot un graf complet , cu muchii; de exemplu, în orice trei vârfuri formează un triunghi, iar numărul triunghiurilor este .
Exemplul 3 — testarea unui graf dat prin matrice. Funcția verifică doar perechile , pentru că matricea este simetrică, și se oprește la prima pereche neadiacentă:
bool complet(int n, int a[][11]) {
for (int i = 1; i <= n; ++i)
for (int j = i + 1; j <= n; ++j)
if (a[i][j] == 0) return false;
return true;
}
Fie și un graf cu muchiile 1–2, 1–3, 1–4, 2–3 și 3–4, deci cu a[2][4] = a[4][2] = 0. Se verifică pe rând perechile (1,2), (1,3), (1,4), (2,3) și (2,4): primele patru au valoarea 1, iar la a cincea se găsește 0 și funcția întoarce false. Graful are 5 muchii, față de cât ar avea , iar lipsa lui 2–4 este exact muchia care face diferența. În cel mai rău caz se fac verificări, deci timpul este de ordinul .
Pentru admitere
Dacă un graf simplu cu vârfuri are exact muchii, este complet; nu există alte perechi disponibile. Pentru , graful complet are zero muchii și singurul vârf are gradul zero. Ca să afli numărul de vârfuri din numărul de muchii, rezolvă și păstrează rădăcina pozitivă. Dacă ți se dă numărul de muchii al unui graf cu vârfuri, numărul muchiilor care lipsesc pentru a fi complet este . Orice graf simplu cu vârfuri are cel mult muchii, iar un graf cu mai multe muchii nu este simplu. Numărul triunghiurilor din este : 4 pentru și 10 pentru . Graful complet este conex și, pentru , are cicluri; este eulerian dacă și numai dacă este impar, fiindcă gradele trebuie să fie pare. Dacă într-o problemă apare „toate perechile de vârfuri sunt adiacente”, aceasta este chiar definiția grafului complet.
Exemplu în formatul examenului. Un graf complet are 45 de muchii. Câte vârfuri are?
- a) 8
- b) 9
- c) 10
- d) 11
Răspunsul corect este c). Din rezultă , deci . Verificare: un graf complet cu 10 vârfuri are muchii. Varianta b) ar da muchii, varianta a) ar da 28, iar varianta d) ar da . Varianta b) apare dacă se confundă cu gradul fiecărui vârf, adică .
Greșeli frecvente
- Greșit: un graf complet cu 4 vârfuri are 12 muchii.Corect: 12 este suma gradelor, iar muchiile sunt 6.
- Greșit: un graf complet poate avea două vârfuri fără muchie între ele.Corect: fiecare pereche este adiacentă.
- Greșit: formula numără și bucle.Corect: numără perechi de vârfuri distincte.
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
- 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. 5–6; edu.ro
- Subiectele și baremele Bacalaureatului 2026; subiecte2026.edu.ro
Desene: Redactare proprie (desen original)
