Chemins de longueur 2
Exercice · OCaml (option informatique), chapitre 14 — Graphes : modélisation et représentations
Énoncé
Écrire chemins_deux m renvoyant une matrice r telle que r.(i).(j) soit le nombre de chemins de longueur exactement de i à j.
Corrigé
let chemins_deux m =
let n = Array.length m in
let r = Array.make_matrix n n 0 in
for i = 0 to n - 1 do
for j = 0 to n - 1 do
let c = ref 0 in
for k = 0 to n - 1 do
if m.(i).(k) && m.(k).(j) then c := !c + 1
done;
r.(i).(j) <- !c
done
done;
r
Un chemin de longueur de i à j passe par un sommet intermédiaire k adjacent aux deux : on compte ces k. C'est exactement le carré de la matrice d'adjacence () : plus généralement, (M^p).(i).(j) compte les chemins de longueur p. Coût (un produit matriciel).
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.