edit et corrections d'erreurs factuelles, de calculs et de mise en page

This commit is contained in:
2026-07-02 15:01:24 +02:00
parent 3067e1918e
commit 28d4a75c1b
32 changed files with 174 additions and 109 deletions

View File

@@ -184,6 +184,39 @@ A = np.matrix(A)
Ecrire la matrice d'adjacence du réseau social de l'introduction
### Liste d'adjacence
La matrice n'est pas la seule représentation possible. On peut aussi associer à chaque sommet la **liste de ses voisins** (ou de ses **successeurs** dans le cas d'un graphe orienté). En Python, un dictionnaire est parfait pour cela :
```python
adjacence = {
'A': ['B', 'C', 'E'],
'B': ['A', 'C', 'D'],
'C': ['A', 'B', 'D'],
'D': ['B', 'C'],
'E': ['A']
}
```
C'est cette représentation que nous utiliserons pour les parcours (voir [PARCOURS.md](PARCOURS.md)) et l'implémentation en POO (voir [POO.md](POO.md)).
**Quelle représentation choisir ?**
| | Matrice d'adjacence | Liste d'adjacence |
|---|---|---|
| Tester si deux sommets sont voisins | Immédiat (une case) | Parcours de la liste |
| Mémoire | n × n cases, même si peu d'arêtes | Proportionnelle au nombre d'arêtes |
| Usage naturel | Graphes denses (beaucoup d'arêtes) | Graphes creux (peu d'arêtes) |
### Exercice 3:
Le programme officiel demande de savoir **passer d'une représentation à l'autre**.
1. Écrire à la main la liste d'adjacence correspondant à la matrice de l'exemple du cours.
2. Écrire une fonction `matrice_vers_liste(matrice, sommets)` qui prend la matrice (liste de listes) et la liste des noms de sommets, et renvoie le dictionnaire d'adjacence.
3. Écrire la fonction inverse `liste_vers_matrice(adjacence, sommets)`.
4. Vérifier vos deux fonctions : `matrice_vers_liste` suivie de `liste_vers_matrice` doit redonner la matrice de départ.