Автор Тема: Алгоритм анализа возможности сборки кубика из произвольной ситуации.  (Прочитано 953 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ramon13

  • Старожил
  • ****
  • Сообщений: 296
  • Пол: Мужской


Ответ, как определить, правильно ли составлен куб, не собирая его. Как известно, в кубе 3х3 существует три вида запретов, которым соответствуют три типа контрольных сумм.

1) Запрет на одиночный поворот уголка. Для проверки нужно просуммировать углы поворотов всех уголков относительно одной главной плоскости, например, горизонтальной. Пусть базовыми стикерами будут белый цвет и желтый противоположных граней. По их развороту относительно горизонтальной плоскости приписать угол поворота каждому уголку. Сложить все углы, и посмотреть, кратна ли сумма 360 град, или кратна ли она трем, если отмерять углы как -1, 0, 1.

2) Запрет на одиночный переворот ребра. Чтобы выяснить, не нарушен ли этот запрет, нужно приписать каждому ребру собранного куба направление стрелок в соответствии с рисунком выше. Потом сравнить направление стрелок на реберном кубике с тем направлением, которое изначально соответствовало этому месту. Если совпадают, приписываем ориентации 0, если нет, приписываем единицу. Понятно, стрелки физически рисовать на кубиках не обязательно, а нужно просто иметь план их расположения. Суммируем все ориентации, определяем, есть нарушение четности или нет.

3) Насчет запрета перестановки двух элементов без компенсации. Нужно заранее приписать каждому кубику номер от 1 до 20. Потом, в запутанном кубе, сопоставить номер кубика с номером места, которое он занимает. Потом записать длинную перестановку, например, (3, 20, 4, ...9, 7) и посчитать число инверсий, то есть сколько чисел стоит правее заданного числа, но меньше его. И так для каждого числа. Четность всей суммы будет ответом на вопрос.
« Последнее редактирование: 04 Ноября 2017, 08:34:26 от ramon13 »

Оффлайн ramon13

  • Старожил
  • ****
  • Сообщений: 296
  • Пол: Мужской
Интересно, подавляющее большинство наивных куберов полагают, что ориентация реберного элемента не определена, пока он не стоит на своем месте или на хотя бы на одной из своих граней. Однако, один раз задавшись направлением стрелок, как например, на рисунке выше, каждому ребру можно сразу приписать его разворот как соответствие между стрелками до и после, было-стало. Из рисунка видно, что только поворот левой или правой граней на 90 градусов меняет ориентацию кубиков, а остальные не меняют. Причем сразу четырех, что и дает четность.