Nombre de modèles
Exercice · OCaml (option informatique), chapitre 17 — Logique propositionnelle
Énoncé
Écrire nb_modeles f : le nombre de valuations qui satisfont f.
Corrigé
let nb_modeles f =
let n = nb_variables f in
let v = Array.make n false in
let rec compte i =
if i = n then (if evalue v f then 1 else 0)
else begin
v.(i) <- false;
let a = compte (i + 1) in
v.(i) <- true;
a + compte (i + 1)
end
in
compte 0
On parcourt l'arbre des valuations en additionnant les contributions (comme le comptage de sous-ensembles du chapitre 11), au lieu de s'arrêter à la première. Une tautologie a modèles, une contradiction .
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.