Biorąc pod uwagę triangulację powierzchni wielościanu p
, oblicz jego Euler-Poincaré-Charakterystykę χ(p) = V-E+F
, gdzie V
jest liczba wierzchołków, E
liczba krawędzi i F
liczba ścian.
Detale
Wierzchołki są wyliczone jako 1,2,...,V
. Triangulacja jest podana jako lista, gdzie każdy wpis jest listą wierzchołków jednej powierzchni, podanych w kolejności zgodnej z ruchem wskazówek zegara lub przeciwnie do ruchu wskazówek zegara.
Pomimo nazwy triangulacja może również zawierać twarze o więcej niż 3 bokach. Można założyć, że ściany są po prostu połączone, co oznacza, że granice każdej powierzchni można narysować za pomocą jednej zamkniętej nie przecinającej się pętli.
Przykłady
Czworościan : czworościan jest wypukły i ma χ = 2
. Możliwa triangulacja to
[[1,2,3], [1,3,4], [1,2,4], [2,3,4]]
Kostka : Ta kostka jest wypukła i ma χ = 2
. Możliwa triangulacja to
[[1,2,3,4], [1,4,8,5], [1,2,6,5], [2,3,7,6], [4,3,7,8], [5,6,7,8]]
Pączek : ma ten kształt pączka / toroidu χ = 0
. Możliwa triangulacja to
[[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]]
Podwójny pączek : Ten podwójny pączek powinien mieć χ = -2
. Konstruuje się go za pomocą dwóch kopii pączka powyżej i identyfikując boki [1,2,5,4]
pierwszego z bokiem [1,3,6,4]
drugiego.
[[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]]
(Przykłady zweryfikowane przy użyciu tego programu Haskell ).