Étant donné une triangulation de la surface d'un polyèdre p
, calculez sa caractéristique d'Euler-Poincaré χ(p) = V-E+F
, où V
est le nombre de sommets, E
le nombre d'arêtes et F
le nombre de faces.
Détails
Les sommets sont énumérés comme 1,2,...,V
. La triangulation est donnée sous forme de liste, où chaque entrée est une liste des sommets d'une face, donnée dans le sens horaire ou antihoraire.
Malgré son nom, la triangulation peut également contenir des faces avec plus de 3 côtés. Les faces peuvent être supposées être simplement connectées, ce qui signifie que la frontière de chaque face peut être dessinée à l'aide d'une boucle fermée non auto-intersectée.
Exemples
Tétraèdre : Ce tétraèdre est convexe et a χ = 2
. Une triangulation possible est
[[1,2,3], [1,3,4], [1,2,4], [2,3,4]]
Cube : Ce cube est convexe et a χ = 2
. Une triangulation possible est
[[1,2,3,4], [1,4,8,5], [1,2,6,5], [2,3,7,6], [4,3,7,8], [5,6,7,8]]
Beignet : Cette forme de beignet / toroïde a χ = 0
. Une triangulation possible est
[[1,2,5,4], [2,5,6,3], [1,3,6,4], [1,2,7,9], [2,3,8,7], [1,9,8,3], [4,9,8,6], [4,5,7,9], [5,7,8,6]]
Double beignet : Ce double beignet devrait avoir χ = -2
. Il est construit en utilisant deux copies du beignet ci-dessus et en identifiant les côtés [1,2,5,4]
du premier avec le côté [1,3,6,4]
du second.
[[2,5,6,3], [1,3,6,4], [1,2,7,9], [2,3,8,7], [1,9,8,3], [4,9,8,6], [4,5,7,9], [5,7,8,6], [1,10,11,4], [10,11,5,2], [1,10,12,14], [10,2,13,12], [1,14,13,2], [4,14,13,5], [4,11,12,14], [11,12,13,5]]
(Exemples vérifiés à l'aide de ce programme Haskell .)