Adloun

Compter les triangles

Exercice · informatique (tronc commun des prépas scientifiques), chapitre 12 — Les graphes : modèle et représentations

Énoncé

Écrire la fonction nb_triangles(G) pour dénombrer les sous-graphes complets de 3 sommets mutuellement connectés dans un graphe non orienté sans doublon de comptage.

Corrigé

On impose un ordre arbitraire sur les sommets pour assurer l'unicité du parcours :

def nb_triangles(G: dict) -> int:
    c = 0
    for u in G:
        for v in G[u]:
            if v > u:
                for w in G[v]:
                    if w > v and w in G[u]:
                        c += 1
    return c

La complexité est de si les voisinages sont modélisés par des ensembles (ou si le test w in G[u] s'effectue sur un dictionnaire).

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.