Учитывая триангуляцию поверхности многогранника 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 .)