TGViewer
Математические байки Математические байки @mathtabletalks · 4.29K subscribers
Post #4828 1.65K

Forwarded from Компьютерная математика Weekly (Grigory Merzon)

многим рассказывал¹, как нарисовать «ленивый додекаэдр»: взять куб и поделить каждую грань пополам регулярным образом — как раз получится 6×2=12 граней, 8+12=20 вершин (вершины куба и середины его ребер)… вся комбинаторика получается правильная

если хочется еще и правильной геометрии — нужно просто немного всё продеформировать, это и показано в видео

¹ и даже писал в «Квантике» — см. №9 за 2025 год

***

как такое нарисовать и не перетрудиться? начнем с вершин куба — это просто все точки с координатами ±1

from itertools import product
vertices = list(product([-1,1], repeat=3))

чтобы получить додекаэдр, надо добавить еще 12 вершин… не хочется их все писать руками, но тут есть большая группа симметрий G: можно переставлять координаты по циклу и расставлять знаки — и так все новые вершины можно получить из одной, (φ,0,1/φ)… и что еще приятнее, все грани можно получить из одной

v0 = (phi,0,psi)
vertices += [g(v0) for g in G()]
f0 = [(phi,0,-psi),(1,1,-1),(psi,phi,0),(1,1,1),(phi,0,psi)]
faces = [tuple(vertices.index(g(v)) for v in f0) for g in G()]
poly = Polyhedron(vertices, faces)

(результат действия элемента g на набор точек f0 — это просто tuple(g(v) for v in f0) — но в faces надо положить не координаты этих точек, а номера соответствующих вершин)

если в качестве phi и psi взять не (±1+√5)/2, а 1, то додекаэдр превратится в куб с дополнительными вершинами в серединах ребер — и такая деформация анимируется в manim примерно в одну строчку

приведу еще код для генерации группы G

def G():
for signs in product([-1,1], repeat=3):
for r in range(3):
yield lambda x: tuple(x[(i+r)%3]*signs[i] for i in range(3))

(а всё собранное целиком положу в комментарии — с использованием симметрии ~20 строк получилось… ну если с паузами и вращением камеры, то чуть больше)

***

видно, кстати, что в группе G всего 24 элемента, из которых 12 сохраняют ориентацию… а всего в группе I симметрий додекаэдра 12×5=60 вращений — получаем действие I⁺ на 60/12=5 элементах I⁺/G⁺, который дает изоморфизм I⁺≃A₅

конечно, то же можно сказать и более геометрически: G это как раз подгруппа симметрий додекаэдра, сохраняющих вписанный в него куб, а 5-элементное множество I⁺/G⁺ отождествляется с 5 вписанными в додекаэдр кубами («кубы Кеплера») — вот эти кубы I⁺ и переставляет
More from @mathtabletalks
  1. Sep 15, 2026к сегодняшнему 100-летию Серра — его свежее интервью от группы Бурбаки в 40-х годах до «I…
  2. Sep 15, 202615 сентября столетний юбилей отмечает французский математик Жан-Пьер Серр. Поздравляем юби…
  3. Sep 15, 2026youtube.com/watch?v=Px71N0DvoCA
  4. Aug 12, 2026До начала затмения остаётся всего несколько часов, так что на всякий случай напомню: и без…
  5. Aug 6, 2026Король приготовил N мудрецам испытание: каждому назначено целое число от 1 до N+1, все наз…
  6. Jul 28, 2026www.mathnet.ru/php/conference.phtml?eventID=27&confid=2780&option_lang=rus&if_videolibrary…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →