Мы знакомы с головоломкой кубик Рубика, но, проживая в трёхмерном пространстве, трудно представить себе такую в четырёхмерном. Разумеется, Рубик не патентовал четырёхмерных кубиков, и речь идёт лишь о подобии кубика Рубика.

Поэтому сперва я расскажу о том, как я себе представляю четырёхмерную головоломку.



Тессеракт


Для начала представим себе, каким образом получается трёхмерный куб. Возьмём одномерное пространство: всё, что мы можем в нём изображать, ограничивается одномерными объектами, такими как точка, отрезок, луч, прямая. Нарисуем отрезок единичной длины AB [0,1]. Теперь добавим второе измерение: ось ординат будет направлена вверх, а наш единичный отрезок AB лежит на оси абсцисс, в декартовой системе координат.

Пожалуй, двумерное пространство наиболее привычно для человеческого понимания, потому что ни сферу, ни куб, нарисовать не получится, мы привыкли их изображать как проекцию на плоскость. Хорошо, с двумерным пространством у нас проблем нет, поэтому давайте вдумаемся как получается квадрат. Значит, берём мы отрезок AB (вершины A(0,0) и B(1,0)) на оси абсцисс, отступаем ровно единицу по оси ординат и дублируем отрезок, назовём его CD, с точками C(0,1) и D(1,1).

Чтобы получить квадрат, нам теперь нужно соединить соответствующие вершины, то есть вершину A(0,0) соединяем с её дубликатом C(0,1), а вершину B(1,0) соединяем с D(1,1). Теперь мы имеем квадрат ACDB. Поняв как это работает в двумерном пространстве, будет довольно просто понять как получается куб в трёхмерном. Итак по пунктам:

1. Добавляем третье измерение, ось аппликат будет направлена в глубину.
2. Дублируем ACDB отступив на единицу по оси аппликат, вершины трансформируются так:
A(0,0,0) -> H(0,0,1)
C(0,1,0) -> F(0,1,1)
D(1,1,0) -> G(1,1,1)
B(1,0,0) -> E(1,0,1)
3. Соединяем соответствующие вершины квадратов.

Теперь читатель морально готов увидеть тессеракт:



По сути мы дублируем куб, смещая по оси четвёртого измерения, и соединяем соответствующие вершины — проще не придумаешь. Для наглядности мы будем увеличивать дубликат куба, помещая первоначальный куб внутрь него. Вот такое изображение чаще всего применяется при попытке спроецировать тессеракт на плоскость:



Чтобы подчеркнуть, что все отрезки у тессеракта единичные и показать равноправность проецирования, четырёхмерный куб можно изобразить анимацией:



Но это всё присказка, а сказка впереди!

От тессеракта к головоломке


Теперь давайте разберёмся, что есть четырёхмерная головоломка, а главное как её изобразить.

Как известно, у куба шесть граней, следовательно, у трёхмерной головоломки 6 цветов. Чтобы упростить себе жизнь, мы будем работать с кубиком 2х2х2, в частности, нам будет очень полезно то, что перестановок у такого кубика всего 3^6 * 7! = 3674160.



Перечислим грани:
— По оси абсцисс Left-Right, цвета зелёный-синий.
— По оси ординат Down-Up, цвета жёлтый-белый.
— По оси аппликат Front-Back, цвета красный-оранжевый.

Включаем warp drive и открываем червоточину в четвёртое измерение!

Вот так изображают четырёхмерную головоломку зарубежные математики:



То есть по сути мы просто взяли трёхмерный кубик 2х2х2, добавили ось в четвёртое измерение и получили четвёртую строчку:
— По оси четвёртого измерения Ana-Kata, цвета пурпурный-серый.

Нужно заметить, что теперь все группы из 8 цветов являются трёхмерными гипергранями, а не двумерными гранями (которые имели по 4 цвета). Теперь, как представляю точно такой же (математически эквивалентный) четырёхмерный кубик я:



Если взять внутреннюю часть головоломки (то есть кубик, состоящий из 8 трёхцветных углов), то мы просто вырезали из трёхмерного кубика октаэдр и внутреннюю вырезанную поверхность окрасили в пурпурный цвет, в результате углы кубика стали тетраэдрами, окрашенными в 4 цвета. Потом мы продублировали все углы кубика, развернули внутреннюю грань тетраэдров наружу и окрасили её в серый цвет, получив в результате мою прелесть .
Конечно, основная сложность моей работы заключалась не в том, чтобы, используя OpenGL, написать на Delphi программу, изображающую проэкцию четырёхмерной головоломки, а в разработке алгоритма решения такой головоломки. То есть у меня была идея, математическое представление, а OpenGL был единственным знакомым мне средством для изображения трёхмерной графики.

Гипергрань


Сейчас мы рассмотрим что такое поворот гиперграни. В описанной головоломке есть всего 8 гиперграней, каждая из них является кубом. Поворот гиперграни по сути является поворотом одного куба относительно другого. Например, левый куб относительно правого, или внутренний относительно внешнего. Вариантов повернуть куб 24, потому что каждую из 6 граней можно повернуть одной из 4 сторон. Таких кубов у нас 8, значит за один ход мы имеем 192 инварианта расположения элементов головоломки. Я приведу лишь несколько из них ниже, под спойлером.

Повороты гиперграней

Поворот внутренней гиперграни.


Поворот передней гиперграни.


Обратите внимание, это только один поворот: вначале куб направяется нужной гранью вниз, затем поворачивается вокруг вертикальной оси нужной стороной. Вот так формируются по 24 поворота на каждую гипергрань.

Сборка


Перемешанный кубик


Основная последовательность сборки заключалась в следующем:

1. Эвристический метод, который размещает элементы с серыми цвета на позиции внешней гиперграни, называемой Kata, соответсвенно, все элементы с пурпурными цветами после этого этапа окажутся во внутренней гиперграни Ana.
2. Ориентирование серых цветов внешней гиперграни наружу.
3. Ориентирование пурпурных цветов внутренней гиперграни внутрь.
4. Размещение элементов внешней гиперграни по таблице решений трёхмерного кубика 2х2х2 (которых всего 3674160).
5. Размещение элементов внутренней гиперграни по той же таблице решений.

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

Второй этап имел алгоритмическую сложность O(192^3), но всего лишь 256 инвариантов, поэтому решено было составить перманентную таблицу с заранее вычисленными комбинациями решений (по сути аналог OLL в методе Фридрих для кубика Рубика). Составляет максимум 6 ходов.

Третий этап хоть и решался точно как второй, но экспоненциальная сложность порядка O(192^4) приводила к двухсуточным переборам, а количество инвариантов уже составляло 65536. Составляет максимум 8 ходов.

Ориентированы внешние и внутренние цвета


Зато после ориентирования цветов на гипергранях Ana-Kata мы сводим задачу к трёхмерному кубику. Четвёртый этап использует таблицу из 3674160 инвариантов, решение трёхмерного куба составляет максимум 11 ходов. Итак внежний гиперкуб собран.

Собрана внешняя гипергрань


Для пятого этапа мы используем те же решения трёхмерного куба, за тем лишь исключением, что для каждого поворота какой-либо грани внутренний кубик поворачивается нужным боком относительно внешнего для каждого поворота, в результате внешняя, уже собранная, гипергрань вращает только свою правую часть и остаётся всегда почти собранной.

Пятый этап

У внешней грани вращается одна и та же правая сторона, а у внутреннюю мы проворачиваем всегда тем боком, который необходимо провернуть.

То есть, используя таблицы, компьютер теперь обходился микросекундами на поиск, да вот только кэширование таблицы с HDD в оперативку отнимает несколько минут при инициализации программы. Ну и при наличии сразу трех таблиц с предрасчётами, алгоритм сборки уже не кажется сложным.

Вся сборка кубика



Интересно много ли людей способны представить 4-х мерное пространство. Стала ли Вам понятна моя визуализация головоломки?

Проголосовало 673 человека. Воздержалось 189 человек.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Комментарии (62)


  1. jonywtf
    16.11.2015 09:34
    +3

    интересно много ли людей способны представить 4-х мерное пространство и воспринимать его так же как 3-х мерное. Не особо задумываясь представлять 4-х мерные фигуры, вращать их, строить сечения, собирать из примитивов более сложные и т.д… все то что могут делать в голове люди с развитым 3д пространственным воображением… есть ли они вообще?


    1. isden
      16.11.2015 10:18
      +4

      Мозг человека эволюционно заточен под восприятие стереоизображения, составленного из 2-х плоских. Трехмерное и то получается посредством представления проекций этих двух плоскостей и разнообразных операций над ними (с привлечением предыдущего опыта). Ни о каком полноценном восприятии/представлении даже трехмерной сцены речи нет вообще.


      1. kumbr_87
        16.11.2015 21:17
        +1

        Ну почему же два, светотени вполне себе позволяют нам воспринимать объем и хоть картинка и является плоской но тем не менее яркость например на черно-белой картинке вполне можно принять за третье измерение аналогично тому как это реализовано, например, в Z-буфере в компьютерной графике.


        1. isden
          16.11.2015 21:21
          +1

          Ну это не полноценное трехмерное восприятие, скорее плоская картинка + карта глубины + личный опыт о форме/свойствах предметов.
          Там есть видео ниже, там все достаточно прилично показано.
          Полноценное — это, в двух словах, когда мы одним взглядом видим сразу все точки объекта.


          1. kumbr_87
            17.11.2015 05:52

            Так мы и видим, личный опыт о форме/свойствах предметов не при чем ведь не обязательно третье измерение (цвет) будет обозначать глубину как в графике, оно может показывать например температуру, силу ветра, давление и т. д., карта может быть не черно белой а изменяться от одного цвета к другому и т. д.


            1. isden
              17.11.2015 10:22

              Не, я больше про свойства перспективы, определение дальности и т.п., на основании чего строится модель сцены. Мозг ничего не знает о том, что может быть, и берет более часто используемую ассоциацию из своих закромов, и она, скорее всего, будет относиться именно к пространственной «навигации».


    1. EvilPartisan
      16.11.2015 10:50
      +3

      Ну да, особенно учесть, что это 4-ех мерное пространство является проекцией на трехмерное, а оно в свою очередь проецируется на двухмерную плоскость монитора.


    1. m08pvv
      16.11.2015 11:16
      +10

      Как говорилось в старом анекдоте, всё просто: представьте n-мерное пространство и положите n равным 4.


    1. a_batyr
      16.11.2015 12:09
      +11

      С этим были проблемы. В частности, когда я защищал эту дипломную, то я 30 минут объяснял почтенной комиссии почему это является 4-мерным объектом и как я его представляю в программе. Многие также думали, что я заблуждаюсь или обманываю. У некоторых 4 измерение автоматически ассоциируется со временем. А эту работу от начала до конца понял только я и мой научный руководитель, который мне также помогал разрабатывать алгоритм сборки.


      1. Tazman
        16.11.2015 15:19

        Когда-то давно написал 4-мерного пакмана. Игровое пространство представляло из себя несколько 3-мерных лабиринтов, которые существовали как бы в параллельных измерениях. Между такими лабиринтами существовали «коридоры». На самом деле пространство было абсолютно изотропным и не было никаких выделенных направлений, но объяснить людям, что это и есть 4-мерное пространство было очень сложно. Самой частой фразой, которую я слышал, было «4-ое измерение — это же время!?»


        1. Randl
          19.11.2015 00:18

          Ну мне помогает представить 4D объект протяженный во времени. Каждый 3D срез по четвертому измерению — это 3D объект в определенный момент времени.


          1. a_batyr
            19.11.2015 12:27

            Хм, теперь осталось лишь представить вектор перпендикулярный вектору времени и мы получаем пятое измерение. Что если время это комплексное число, а мы замечаем лишь действительную составляющую?


            1. Mrrl
              19.11.2015 16:54
              +2

              Если взять трёхмерную решётку трёхмерных сечений объекта, то легко работать и с шестимерным пространством.
              Например, грани вот этого кубика шестимерны (показаны 7 граней и 5-мерные сечения еще шести):
              image


            1. Randl
              20.11.2015 01:59

              Если концепцию четырёх- и более мерного пространства у меня ещё получается понять через аналогию 1D->2D->3D->4D, то с многомерным временем никак, потому что аналогий нет.


              1. mwizard
                20.11.2015 02:15
                +1

                Чтобы представить многомерное время, не покидая пределов уютного 3D-мирка, представьте плоскость, каждой точке которой соответствует куб, трехмерный срез. Для простоты можно даже представить, что плоскость замощена этими кубами стык в стык — или что она гладкая, но для любой точки можно получить «всплывающую подсказку», которая «призумит» соответствующий куб. Время, когда оно линейное (в 3D+1T варианте), это просто линия, проведенная по этой плоскости. Чтобы представить не все состояния сразу, а увидеть изменения, то можно ввести некоторый «курсор» — точку на плоскости, имеющую уравнение движения. Точка движется вдоль заданной линии, таким образом, в кубе «всплывающей подсказки» идет время, происходят изменения.

                В пятимерном же варианте с двухмерным временем (3D+2T) «курсор» может двигаться не только вдоль некоторой линии, а вообще куда угодно в пределах плоскости — в том числе выписывать круги, ромашки, периодически пересекать свою траекторию и т.д.

                Для трехмерного времени и трехмерного пространства, аналогично, представляем трехмерное «временнОе» пространство, каждой точке которого соответствует трехмерный куб, и у курсора текущего времени теперь три степени свободы.


                1. Mrrl
                  20.11.2015 02:24

                  Только это получается не время, а пространство вариантов. Похожее на то, что описывалось в последних книгах «Hitchhiker's Guide».


                1. Randl
                  20.11.2015 03:09

                  Но в чем тогда принципиальная разница между временем и пространством?


                  1. Mrrl
                    20.11.2015 04:29

                    Исключительно в свойствах человеческой памяти. Мы «видим» только ту линию, по которой прошли, до точки, которая нам кажется «текущим моментом».


                    1. Randl
                      20.11.2015 05:09

                      Тогда разницы между 3D+2T и 4D+1T никакой и смысла предпочитать первое нет


                      1. Mrrl
                        20.11.2015 05:12

                        Верно, если вы можете свободно представить изменяющийся 4D объект.


      1. michael_vostrikov
        16.11.2015 16:45
        +1

        Есть вот такое неплохое изображение с визуализацией. При некоторой фантазии можно заметить, что кубы взаимно перпендикулярны.

        Скрытый текст


      1. Keyten
        16.11.2015 17:28

        Кстати говоря, понимание 4 измерения как времени, в котором мы можем передвигаться, даёт вполне простое и интуитивное понимание 4-мерного пространства. Точнее, даже не времени, можно просто не пытаться проецировать четырёхмерное пространство на трёхмерное, которое проецируется на двухмерное, а рассматривать трёхмерные проекции четырёхмерного пространства: так вполне можно понять даже какой-нибудь сложный четырёхмерный объект и выше (да хоть двенадцати, если в уме уместить все проекции получится)…
        В данном случае у нас кубик Рубика, меняя одну проекцию которого, мы меняем и остальные. Правда, представить алгоритм сборки такого человеку, не знакомому с алгоритмом сборки трёхмерного — очень страшно.


      1. guai
        16.11.2015 19:59

        Никогда не понимал, почему время — измерение. По пространственным измерениям можно ходить туда-сюда, а по времени только туда. Получается время — пол измерения.


        1. Keyten
          16.11.2015 20:17

          Потому что теория относительности.


        1. Mrrl
          16.11.2015 20:26
          +6

          По времени тоже можно ходить туда-сюда: в любом видеоплеере есть кнопочка «обратная перемотка». А то, что ваше сознание дрейфует в будущее с постоянной скоростью, да ещё и в памяти откладывается только прошлое — так это вопросы к сознанию.


    1. a_batyr
      16.11.2015 13:21

      Мне стало любопытно. Добавил опрос.


    1. 6opoDuJIo
      16.11.2015 14:23

      Вероятно, все-таки речь идёт о представлении двухмерной проекции этих многомерных примитивов. Потому-что сами примитивы можно выразить в виде формулы при любом количестве пространственных измерений, не особо задумываясь о форме.


    1. Mrrl
      16.11.2015 17:34

      Это вопрос тренировки. Если некоторое время (несколько месяцев) активно решать задачи, связанные с 4D, то большую часть описанного делать можно. Хотя «не особо задумываясь» они это будут делать только в уже освоенной области, появление любого нового концепта требует дополнительных усилий по погружению.
      Но стоит отвлечься на те же несколько месяцев — и эффект пропадает. И приходится начинать всё с начала.
      Кстати, вот отличная игрушка, позволяющая освоить 4D «как оно есть»: www.urticator.net/blocks


      1. Oxyd
        17.11.2015 09:38

        Обычный тетрис есть, трёхмерный тоже. Возможен-ли четырёхмерный тетрис?


        1. Mrrl
          17.11.2015 16:01

          Вот моя неуклюжая поделка 10-летней давности: www.dropbox.com/s/m2bm2agfavochxc/t4.zip?dl=0
          Визуализация полностью двумерная (исходно разрабатывалась ещё для MSX), показано дно стакана, вид сверху, в виде цветов клеточек. Сбоку видно, на каком уровне находится фигура. Фигуры сами не падают. Поддерживаются поля 3*3*3*16, 3*3*4*16, 3*4*4*16, 4*4*4*16, и наборы до 7 кубиков.
          Игра довольно скучная, в варианте 3^3*16, 5 кубиков мне когда-то хватило терпения снять 7 рядов, в 4^3*16, 7 кубиков — один или два ряда.


  1. anderston
    16.11.2015 11:34
    +1

    Над эстетикой и визуализацией явно надо будет поработать, но в остальном просто замечательно, спасибо!


    1. a_batyr
      16.11.2015 12:21
      +1

      Ну, сударь, нет предела совершенству.
      С визуализацией были явные проблемы в моей прежней работе, когда я делал алгоритм сборки трёхмерного куба. В итоге консольный интерфейс в стиле олимпиады по информатике «на входе дана последовательность ходов перемешивающих куб, на выходе последовательность собирающих ходов» никто не оценил. Я же считал визуализацию трёхмерного куба излишней надстройкой и фокусировал всё внимание на разработке алгоритма. А вот когда я перешёл к работе с 4-мерным кубиком, то мне без визуализации было туго и первым шагом к разработке алгоритма стало «вообразить и изобразить чтобы можно было вообразить», такая вот рекурсия. Кстати, анимация тессеракта из википедии стала фундаментом для воображения движения моего гиперкуба.


      1. willson
        16.11.2015 12:37
        +4

        а как по мне, так визуализация шикарна :) хоть стало понятно, как оно работает. Я бы поиграл в такую головоломку.


        1. a_batyr
          16.11.2015 12:55
          +1

          Спасибо. Насчёт поиграть, будет сложновато такой собирать.
          Первый вариант — придётся пользоваться моими таблицами ориентирования серого и пурпурного цветов (которые описывают 256 и 65536 комбинаций).
          Второй вариант — разработать свою методику сборки этой системы.
          Самый ужас состоит в том, что вместо милых взору FRUR'U'F' придётся различать 192 поворота на каждый ход.
          Если без алгоритма сборки, то в принципе не мудрено сделать приложение под андроид с визуализацией описанной концепции.


        1. anderston
          16.11.2015 13:25

          Такая возможность есть=)
          play.google.com/store/apps/details?id=com.superliminal.magiccube4d


          1. a_batyr
            16.11.2015 13:32

            Что-то у них не отображена восьмая гипергрань Kata.
            Но такая визуализация имеет преимущество перед моей в том, что они могут отображать 3х3х3х3 головоломку.


      1. anderston
        16.11.2015 13:30

        Пожелание скорее в плане эстетики, не более того, ваша статья очень хорошая=) Например, оттенки цветов я бы лично просто взял отсюда: flatuicolors.com Это красивее смотрится.


        1. a_batyr
          16.11.2015 13:35
          +1

          Ваша ссылка не открылась. Эстетичность нашёл тут flatuicolors.co


  1. Aingis
    16.11.2015 14:38
    +3

    Реквестирую скринсейвер! С такой анимацией как в конце статьи («Вся сборка кубика») он будет выглядеть шикарно!


    1. a_batyr
      16.11.2015 15:01

      Сейчас поготовлю на ютуб 1080p видео. А там уже любой fair use на любой вкус.


      1. a_batyr
        16.11.2015 18:38

        Добавил видео в конце статьи (ютуб сжал в 720p). Если будут проблемы с просмотром, сообщайте в личку. У меня, например, firefox сегодня не отображает ютуб, в хроме и старой опере всё нормально.


    1. a_batyr
      16.11.2015 15:15

      А если вы имели ввиду программный скринсейвер постоянно генерирующий новые решения, то такой будет слишком ресурсоёмким. К тому же программа не до конца отлажена и порой банально вываливается с ошибкой.


      1. ripatti
        16.11.2015 15:21

        Я попробую написать скринсейвер как-нибудь на выходных


        1. a_batyr
          16.11.2015 19:28

          Но генерировать в скринсейвере было бы круто.
          Я попробую написать скринсейвер как-нибудь на выходных
          Подумал я над таким предложением и придумал «разумный подход».
          Распишу для начала исходные данные:
          Входные файлы с таблицами весят «61,485,632 bytes in 3 files», инициализация таблиц для быстрого поиска решений при запуске программы занимает не менее трёх минут на моей машине. Для скринсейвера эти варианты не подходят.
          Зато подходит такое решение, я могу запустить программу и нагенерировать несколько десятков, а может и пару сотен scramble-solve комбинаций. Ходы сохраняются в текстовике. Используя заранее расчитанные комбинации можно крутить скринсейверы.


          1. ripatti
            16.11.2015 19:59
            +1

            Я так понял, что бОльшую часть занимает таблица для сборки 2х2х2. Так вот, кубик рубика 2х2х2 решается без всяких таблиц при помощи идеи meet in the middle за 0.2 секунды (эту задачу я решал тут acm.mipt.ru/judge/problems.pl?problem=041).

            А с остальным вроде же проблем нет? Или я что-то пропустил?


            1. a_batyr
              16.11.2015 20:51

              Да, верно, мои дополнительные таблицы занимают всего-то 5%. Ваша идея значительно ускорит инициализацию. Но самый решающий фактор это

              программа не до конца отлажена и порой банально вываливается с ошибкой

              То есть даже реализовав meet in the middle придётся ещё изрядно поработать над кодом, чтобы банально не ловить crash. Я буду восхищён, если вы реализуете «скринсейвер как-нибудь на выходных».


              1. ripatti
                16.11.2015 21:24

                Вы недооцениваете мою мощь (с)

                Хотя, на самом деле не обещаю, что управлюсь за одни выходные, может быть понадобится чуть больше времени. Просто после прочтения статьи захотелось что-нибудь программно повращать, давно я таким не занимался (тем более в 4х-мерном пространстве). Поразвлекаюсь, в общем. Ну и посмотрим что из этого выйдет.


                1. maeln0r
                  16.11.2015 22:52

                  А сможете статью про это написать? Было бы очень интересно почитать.


                  1. ripatti
                    16.11.2015 23:18

                    Если что путное выйдет и получится достаточно материала, не повторяющего данную статью — напишу.


  1. nemilya
    16.11.2015 15:16
    +1

    Мне кажется, чтобы понять 4х мерное в контексте 3х-мерного — надо найти принцип, как «понимать» 3х мерное из 2х мерного (при условии, что мы-то знаем как выглядит 3х мерное:)


    1. BalinTomsk
      16.11.2015 23:15
      +1

      принцип простой — вы легко попадаете в 2-х мерный круг пальцем в 3-х мерном пространстве.
      Точно также можно попасть в 3-х мерный сейф из 4-х мерного


  1. Sild
    16.11.2015 15:31
    +1

    То, что вы сделали, очень круто и красиво. И в плане визуализации, и в плане алгоритма.


  1. ArXen42
    16.11.2015 16:18
    +1

    Захотелось стать паранидом, чтобы понять священную n-мерность.


    1. anderston
      16.11.2015 16:28
      +3

      Возможно это видео вас утешит=)


      1. sergey_dobrodey
        16.11.2015 16:57

        Напоминло рассказ «Феномен Архимеда» читать


        1. Beyondtheclouds
          17.11.2015 00:44

          Была анимешная игрушка с близкими объяснениями) ever17 :)


  1. Mrrl
    16.11.2015 17:03

    Хороший вариант. Недостаток по сравнению с версией ( superliminal.com/cube/cube.htm ) — что там мы видим (при маленьком размере стикеров) грани гиперкуба во всём объёме, а у вас есть такая неприятность, как невидимые грани тетраэдров. При сборке будет труднее ориентироваться. Ну, и интересно, как вы обобщите это представление на N^4 и на другие многогранники.
    Впрочем, если добавить призмы и «монетки» (для трёхцветных и двухцветных кубиков), то куб N^4 показать будет можно. Надо будет только придумать, как лучше всего задавать повороты граней для команд пользователей.
    Для некоторых головоломок такой режим (слипшиеся грани, маленькие кубики) может быть даже удобнее, чем маленькие грани, плавающие в пустоте. Например, одну из своих головоломок мне удобнее было собирать в таком режиме:

    (у тетраэдров здесь окрашены вершины, а не грани).
    Что отвечать на опрос, не знаю. Понятно не стало, потому что было понятно изначально :)


    1. a_batyr
      16.11.2015 18:32

      а у вас есть такая неприятность, как невидимые грани тетраэдров

      Это примерно как невидимая задняя и нижняя грани обычного кубика. Боюсь, видеть все грани одновременно избыточно (кстати, ваша картинка прекрастно иллюстрирует избыточность), мозг хорошо кеширует неободимую информацию и для лучшего восприятия совершенно естественно прятать лишнее.


  1. Mrrl
    16.11.2015 17:12

    Кстати, кубик 3*3*3*3 собрали уже 214 человек.


  1. Mrrl
    17.11.2015 00:17

    Попробовал собрать кубик 2^4. Получилось довольно медленно — 21 минута. Основной проблемой оказалось то, что у граней нет центров — а я забыл записать, какие грани изначально были противоположными. Поэтому когда понадобилось указать место, куда ставить очередной кубик, принадлежащий почти несобранной грани, мозг озадачился — зацепиться было не за что. В этом смысле кубик даже сложнее, чем 3^4.


  1. Turilion
    17.11.2015 09:29

    Блин, вот я даже зная алгоритм сборки трехмерного куба и предсьавляя четырёхмерное пространство не смогу представить, как перенести алгоритм туда, А тем более спроецировать процесс сборки на плоскость. Никак не могу уложить вголове принцип по которому вращаются грани кубика в четырёхмерно пространстве. Ну точное предствить то могу, не пойму как это отразить на плоскости.


    1. a_batyr
      17.11.2015 09:43

      Алгоритм сборки трёхмерного применяется только с момента, когда ориентированы гиперграни Ana-Kata (purple-gray), после чего остаётся только применить сборку 2х2х2 не смешивая внутренней и внешней граней, а вращая только правую/левую, верхнюю/нижнюю, переднюю/заднюю. Как только мы сориентировали gray-purple, задача сведена к трёхмерной.