З огляду на триангуляцію поверхні багатогранника p
, обчисліть його Хайлера-Пуанкаре-Характеристику χ(p) = V-E+F
, де V
- кількість вершин, E
кількість ребер та F
кількість граней.
Деталі
Вершини перераховуються як 1,2,...,V
. Тріангуляція подається у вигляді списку, де кожен запис - це список вершин однієї грані, поданих за годинниковою або проти годинникової стрілки.
Незважаючи на назву, триангуляція також може містити грані з більш ніж 3 сторонами. Обличчя можна вважати просто з’єднаними, це означає, що межу кожної грані можна провести за допомогою однієї замкнутої непересічної петлі.
Приклади
Тетраедр : Цей тетраедр опуклий і має χ = 2
. Можлива тріангуляція
[[1,2,3], [1,3,4], [1,2,4], [2,3,4]]
Куб : Цей куб опуклий і має χ = 2
. Можлива тріангуляція
[[1,2,3,4], [1,4,8,5], [1,2,6,5], [2,3,7,6], [4,3,7,8], [5,6,7,8]]
Пончик : Ця форма пончика / тороїда має χ = 0
. Можлива тріангуляція
[[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]]
Подвійний пончик : цей подвійний пончик повинен мати χ = -2
. Він побудований за допомогою двох примірників пончика зверху та ототожнення сторін [1,2,5,4]
першого з стороною [1,3,6,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], [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]]
(Приклади, підтверджені за допомогою цієї програми Haskell .)