Извиняюсь, не ту букву в склейку вписал, не так посчиталось. Да, есть плоскость. Она же без края )
x(F)=1 K=0 m=1.0 [[A B C], [A B D], [A C E], [A D F], [B C F], [B E F], [C D E], [A E F], [B D E], [C D F]]
Здравствуйте!
Образовывать то образовывают, но мы же строим не «каркас» из треугольников, а поверхноть, т.е. это дырка получается, ничего страшного. Мерность по идее трехмерная, но нам это не важно, рисовать не надо.
Например
[[A B C], [A B D], [A C D]]
это тетраэдр без дна, он по идее гомеоморфен диску. То есть BCD то «виден», но лишь чисто визуально, он не участвует в склейке.
А вот
[[A B C], [A B D], [A C D], [B C D]] уже можно сказать что сфера
Теперь начал понимать. Нарисовал ленту мебиуса в виде графа треугольников, получилось обычное кольцо. Так что да, для каждого графа надо еще генерить кучу склеек
Когда забил в прогу триангуляцию из википедии, получилось
x(F)=0 K=1 m=1.0 [[A D C], [D C B], [B F A], [A F C], [B E A], [A E D], [B D F], [C E F], [E F D]]
И таких среди десяток несколько есть
x(F)=0 K=1 m=1.0 [[A B C], [A B D], [A C E], [A D F], [B C G], [B G H], [C E I], [D F J], [F G H], [F G J]]
x(F)=0 K=1 m=1.0 [[A B C], [A B D], [A C E], [A D F], [B C G], [B G H], [D F H], [D H I], [G H I], [G I J]]
и даже среди девяток
x(F)=0 K=1 m=1.0 [[A B C], [A B D], [A C D], [B C E], [B D E], [C D F], [C E G], [D F G], [E F G]]
Мне не надо «рисовать» склейки, мне достаточно их перечислить в том виде, что я привел в топике.
То есть, берем любую вершину графа Петерсена, обзываем её ABC. Три ребра, AB BC AC
AB отдаем направо, BC налево, AC внутрь
Берем треугольник слева, две вершины у него мы уже знаем, BC. Приписываем D и «повторяй всё сначала»
Потом, после того как построили склейку, посчитали Эйлерову характеристику, число компонент края и готово. Не уж то не так? Может я объяснил неправильно?
а разве не по любому графу с валентностью <= 3 можно построить валидную склейку? В смысле, что пёс с ней с постройкой, мы все хорошие графы найдем, а склейки «по определению» можно будет построить, не без геммора конечно
Все сойдут, там разберутся. Я очень хотел доперебирать до тора из 14ти и бутылки клейна из 16ти, но видать не судьба. А насчет строить склейку — да, есть у меня под рукой работа, где девочка ручками строила эти склейки для пяти треугольников и там не всё так очевидно. Но, почему то казалось, что эта задача не такая сложная
В общем, в результате копаний нашел такую штуку: oeis.org/A000088
Если генерить неориентированные графы (а способ есть, это описано тут: en.wikipedia.org/wiki/Pólya_enumeration_theorem) то можно выбирать из них только те, что имеют валентность не больше трех, строить склейки и смотреть что за поверхность получится. Походу, способа быстрее не будет.
Единственный момент — я голову сломал читать описание алгоритма, к нужному сроку я его точно не успею сделать
Скажем так, за серьезную алгоритмическую статью автор редко получает больше одного-двух плюсов в карму. В отличие от топиков типа «Смарите как я в стиле матрицы обои себе забабахал на балконе». Карма штука эмоциональная, она оценивает всё что угодно кроме объективной ценности топика и его создателя
x(F)=1 K=0 m=1.0 [[A B C], [A B D], [A C E], [A D F], [B C F], [B E F], [C D E], [A E F], [B D E], [C D F]]
Образовывать то образовывают, но мы же строим не «каркас» из треугольников, а поверхноть, т.е. это дырка получается, ничего страшного. Мерность по идее трехмерная, но нам это не важно, рисовать не надо.
Например
[[A B C], [A B D], [A C D]]
это тетраэдр без дна, он по идее гомеоморфен диску. То есть BCD то «виден», но лишь чисто визуально, он не участвует в склейке.
А вот
[[A B C], [A B D], [A C D], [B C D]] уже можно сказать что сфера
x(F)=0 K=1 m=1.0 [[A D C], [D C B], [B F A], [A F C], [B E A], [A E D], [B D F], [C E F], [E F D]]
И таких среди десяток несколько есть
x(F)=0 K=1 m=1.0 [[A B C], [A B D], [A C E], [A D F], [B C G], [B G H], [C E I], [D F J], [F G H], [F G J]]
x(F)=0 K=1 m=1.0 [[A B C], [A B D], [A C E], [A D F], [B C G], [B G H], [D F H], [D H I], [G H I], [G I J]]
и даже среди девяток
x(F)=0 K=1 m=1.0 [[A B C], [A B D], [A C D], [B C E], [B D E], [C D F], [C E G], [D F G], [E F G]]
То есть, берем любую вершину графа Петерсена, обзываем её ABC. Три ребра, AB BC AC
AB отдаем направо, BC налево, AC внутрь
Берем треугольник слева, две вершины у него мы уже знаем, BC. Приписываем D и «повторяй всё сначала»
Потом, после того как построили склейку, посчитали Эйлерову характеристику, число компонент края и готово. Не уж то не так? Может я объяснил неправильно?
Если генерить неориентированные графы (а способ есть, это описано тут: en.wikipedia.org/wiki/Pólya_enumeration_theorem) то можно выбирать из них только те, что имеют валентность не больше трех, строить склейки и смотреть что за поверхность получится. Походу, способа быстрее не будет.
Единственный момент — я голову сломал читать описание алгоритма, к нужному сроку я его точно не успею сделать
EnRupt в 11 строчек вместе с расшифровкой