Автор Тема: Алгоритмы для разворота вершин пираминкса, не затрагивающие реберные элементы  (Прочитано 5079 раз)

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

Оффлайн Zatamon

  • Старожил
  • ****
  • Сообщений: 310
  • Пол: Мужской
У меня есть еще одна просьба: можете ли посоветовать алгоритмы для одновременной ориентации 2-х, 3-х и 4-х вершин пираминкса с минимальным количеством ходов. Мне необходима как синхронная (все вершины ориентируются по часовой стрелке, либо против часовой стрелки), так и не синхронная (вершины ориентируются в разных направлениях) ориентация вершин.
У меня на работе самопальный скрипт для анализа молдавской пирамидки.  Работает 33 сек - щас проверил
Я к чему: если его чуть доработать и дать проблемную позицию, он должен вернуть ее решение в минимальное возможное количество ходов (правда, только 1 вариант изо всех минимально возможных, какой ему понравится)
Есть только 2 проблемы:
1. Я не понял, что именно вам нужно. Пирамидка у меня если и есть, то дома. Попробую потом покрутить и посмотреть проблемную позицию для вас. Но, если кому не влом (у меня может не получиться), нарисуйте рисунок
2. Картинка на бумажке, на котрой я нумеровал элементы пирамидки внезапно сохранилась на работе (иначе бы вообще не откликнулся). Но на работе. Я щас там, но чаще работаю удаленно. Как опять буду в офисе с картинкой проблемной позиции, могу посчитать для вас
Если что, вот ее распечатка для всех позиций пирамидки:
moves=0; positions=1
moves=1; positions=8
moves=2; positions=48
moves=3; positions=288
moves=4; positions=1728
moves=5; positions=9896
moves=6; positions=51808
moves=7; positions=220111
moves=8; positions=480467
moves=9; positions=166276
moves=10; positions=2457
moves=11; positions=32
moves=12; positions=0
total positions=933120

Оффлайн Zatamon

  • Старожил
  • ****
  • Сообщений: 310
  • Пол: Мужской
Нашел дома пирамидку еле крутящуюся, собрал вот это
L +, R + = U' L B' - U' R' U' B' R' B' (9 ходов), L -, R - = B R B - U R U B L' U (9 ходов);
Да, это поворот 2х углов в одну сторону. Мой скрипт сказал, что это в 9 ходов решается не быстрее, так что более быстрого нет и распечтывть его решение бессмысленно.
Щс попробую поворот 2х углов в разные стороны и поворот только одного угла

Оффлайн Zatamon

  • Старожил
  • ****
  • Сообщений: 310
  • Пол: Мужской
А вот про 2 угла в разные стороны мне мой скрипт сказал, что это в 8 ходов решается
Щас попробую дописать скрипт, чтоб он решение вывел этого...

Оффлайн Zatamon

  • Старожил
  • ****
  • Сообщений: 310
  • Пол: Мужской
Вот , вроде такое (Читать это надо задом наперед!):
Цитировать
B'
L
B
U'
B
R'
B'
U
В 8 ходов поворачиваает 2 угла в противоположные стороны. Если я не ошибся нигде. проверьте
Читать это надо задом наперед!
То есть из-за особенностей алгоритма он печатает формулу начиная с последнего повторота. то есть это формула. начинающаяся с
UB'R' ...
Можно, конечно, его переписать и так, чтоыб он в нормальном порядке все выводил, но, это, имхо, лишняя возня. И так понятно
Что еще рнадо ,пишите. Если сегодня до моего вечера напишите, могу и сегодня посчитать

Оффлайн Zatamon

  • Старожил
  • ****
  • Сообщений: 310
  • Пол: Мужской
Только 1 угол лучшее в 8 ходов, но это, похоже, то, что я  писал, и, как я заметил, что у вас в 1м сообщении. В распечатке моего компа выглядит так:
B'
L
B
L
B'
L
B
L