22
В. Дубровский
Алгоритм волшебного кубика
Непросто справиться с «венгерским волшебным кубиком» — самый популярной головоломкой XX века. Поэтому нетерпеливые люди, потеря надежду на успех, зачастую прекращают свое знакомство с ним размывая его на кусочки. Говорят, что после появления «кубика» в Японии даже понизалась произвольностью труда, а в США эту игрушку сейчас продают в комплекте с пластмассовым топориком: не сумел решить —ломай!
«Квант» относится к кубику Рубика более способно и серверно, о чем свидетельствует публикуемая ниже статья.
В этой статье мы расссказываем, как решить волшебный кубик — знаменитую головоломку Э. Рубика*). Строю говоря, алгоритма решения (то есть набора точных правил для приведения раскраски всех граней из произвольной к однозветной) мы здесь не приводим — такой алгоритм уже был опубликован в «Квант» (1980, № 12, с. 17). Вместо этого мы даем большой список полезных комбинаций, указавая для каждой способы выполнения (последовательность поворотов) и результат (какие маленькие кубики представляются и как). Из различных комбинаций, приводящих к одному и тому же результату, мы старались выбрать самое короткую. В конце статьи мы показываем, что волшебный кубик можно привести в начальное состояние (с однозветными граями) за 79 поворотов или меньше.
*) Если у вас нет экземпляра кубика, вы можете его сконструировать, пользовать указаниями статы М. Евграфа в «Квант» 1982, № 3.
Обозначение операций
Обозначим каждую грань волшебного кубика: Ф (фасад), Т (тыл), В (верх), H (низ), Π (правая), Л (левая) (см. рис.). Поворот грани X на n · 90° по часовой стрелке будем обозначать через X^n, например повороты правой грани на 90°, 180°, 270° записьюются, как Π, Π^2, Π^{-1}=Π^3. Таким образом каждой операции (цепочке поворотов граней) отвечает «слова» из букв Ф, Т, В, H, Π, Л со степенями*), читаемое и выполенное слева направо.
Обозначение результата операции
Мы будем записывать в единой формуле как передвижение маленьких кубков, так и изменение их ориентации в пространстве.
Для записи передвижения маленьких кубков перенумерем угловые кубики и соответствующие вершины числами от 1 до 8, средние (и соответствующие ребра) — числами от 1 до 12 (см. рисунок; записи всех расматриваемых в стате операций относятся к нумерации, показанной на этом рисунке).
Допустим, что в результате операции F первый угловой кубик перешел на место i_1-го, i_1-й — на место i_2-го и т. д. Каждый раз в этой цепочке будет появляться новый номер и неизбежно наступит момент, когда
*) Забавный способ запоминания таких «слов» приводится в статье «Венгерский кубик» в журнале «Наука и жизнь», № 3 за 1981 г. (с. 131).
23
кубик с номером вернется на место первого (почему?). Кубики 1, , …, образуют в операции цикл, обозначаемый . Если еще не все угловые cubики вошли в этот цикл (), то берем любой из оставшихся (пустые номер ) и повторяем тот же процесс — возникнет второй цикл . В конце концов запись угловых cubиков оказывается разложенной на независящие (то есть не имеющие общих элементов) циклы: .
Аналогично обстоит дело со средними cubikами. Соответствующие циклы мы будем записывать в квадратных скобках; так, запись [2 7 6] означает, что второй средний и кубик перешел в седьмой, седьмой — в шестой, шестой — во второй.
Пусть в результате неокторой операции -й средний cubик занял место -го. Он может расположиться на этом месте двумя способами. Если направление стрелки, привязанной к его ребру (см. рис. 1), оказывается противоположным направлению стрелки -го cubика, то в соответствиицем цикле после номера поставим знак минус. Отсутствие знака означает, что направления стрелок совпали. Так, запись (или , «плюсники» мы обычно опускаем для средних cubikов) означает, что второй средний cubик перешел в седьмой с противоположными стрелками, седьмой в шестой с совпадующими стрелками, шестой во второй с противоположными стрелками. Запись означает, что второй средний cubик остався на месте, но повернулся на .
Угловой cubик может расположиться на новом месте треящего способами. Соответственно в записи цикла после номера этого cubика будетставить знак +, знак — или ничего не писать. знак не пишется, если горизонтальная грань данного углового cubика и после выполнения операции остается горизонтальной. В противном случае, чтобы привести эту грань на новом месте в горизонтальное положение, нам пришлось бы повернуть cubик вокруг диагонали на . Если поворот должен произвольаться против часовой стрелки, ставим +, если по часовой стрелке — ставим —. Скажем, записи , , означают, что пятый cubик остается на месте, но поворачивается на , , по часовой стрелке соответственно.
Пояснения к таблице (см. с. 24)
Записывая операцию, мы будем сначала писать последовательность поворотов (слою из букв Ф, Т, В, Н, П, Л со степенями), затем знак ~, а потом результаты, записанный в виде циклов со знаками. Освить эту систему записи вам помогут примеры; проверьте, что [1234], [2, (46) [16] [57], (4+) [1234567], (264) [136] [24] [57].
В таблице приводится 47 операций, найdenных при игре в cubик, иногда методом проб и ошибок, но большей частью с помощью довольно интерсных алгебраических расчужdenей, которые недостаток места не позволяет воспроизвести здесь. Операции и занимаются из «Венгерского среднейкольного журнала», — из упомянутой выше статьи в «Науке и жизни».
Схема алгоритма
Первый этап: сборка «столбика» . Изовем «столбиком» совокупность всех маленьких cubikов, не лежащих в двух смежных гранах большого cubika, для определения — Ф и П. Для правильной расстановки всех cubikов в «столбике» особых хитростей не требуется. Приведем, например, операции, при которых 1-й средний cubик переходит на 8-е место и в одном случае сохраняет, а в другом меняет свой угол поворота, причем все cubики «столбика», кроме, конечно, 8-го, остаточная нетронутыми: , . Этот этап удается выполнитьprimерно за 25 ходов.
Второй этап: разborащивание средних cubikов в гранах Ф и П. Легко показать, что при любой последовательности поворотов число средних cubikов, у которых направления стрелок не совпадают с «правильным» (показанным на рисунке), всегда