Adloun

Nombre d'arêtes

Exercice · OCaml (option informatique), chapitre 14 — Graphes : modélisation et représentations

Énoncé

Écrire nb_aretes m (graphe non orienté représenté par matrice).

Corrigé

let nb_aretes m =
  let n = Array.length m in
  let c = ref 0 in
  for i = 0 to n - 1 do
    for j = 0 to n - 1 do
      if m.(i).(j) then c := !c + 1
    done
  done;
  !c / 2

Chaque arête {i,j} apparaît deux fois dans la matrice symétrique (m.(i).(j) et m.(j).(i)) : on compte les true et l'on divise par . (On pourrait aussi ne compter que la moitié supérieure, j > i.)

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.