|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
09.06.2017, 21:10 | #1 |
Новичок
Джуниор
Регистрация: 16.12.2016
Сообщений: 2
|
Пирамида мефферта
Добрый день. Имеется такая задача:
У нас есть развертка японского тетраэдра, состоящая из 4 граней,каждая из которых состоит из 9 равносторонних треугольников. Каждый из маленьких треугольников окрашен в один из четырех различных цветов, которые мы обозначаем латинскими буквами a, b, c и d. Есть ровно 9 треугольников каждого из четырех цветов. Мы можем преобразовать тетраэдр, используя операцию «поворот лица». Чтобы выполнить эту операцию, мы выбираем лицо пирамиды и ориентируем пирамиду так, чтобы выбранное лицо было к нам. Затем мы определяем направление вращения (по часовой стрелке или против часовой стрелки). Наконец, мы поворачиваем часть тетраэдра, ближайшего к выбранной грани, оставляя оставшуюся часть тетраэдра неподвижной. Помимо поворота граней, мы также можем применить операцию «волшебная краска». Эта операция определяется перестановкой (p1, ..., p36) целых чисел с 1 по 36. Эффект операции заключается в том, что треугольник, находящийся в настоящее время в позиции i , перекрашен в Цвет треугольника, находящегося в настоящее время в позиции pi. Все 36 треугольников перерисовываются одновременно. Пазл решается, если после применения ряда операций «поворот лица» и / или «волшебной краски» все треугольники на каждой грани тетраэдра имеют один и тот же цвет. Ввод Первая строка файла содержит 36 букв 'a' ... 'd'. Буква на позиции i обозначает начальный цвет треугольного номера i. Известно, что каждая из четырех букв встречается ровно 9 раз в первой строке файла. Вторая строка файла содержит 36 различных целых чисел 1 ... 36, которые описывают операцию «волшебной перекраски». I-е целое в этой строке является членом pi перестановки, которая определяет операцию. Вывод Первая и единственная строка файла должна содержать строку символов «X», «U», «V», «W», «x», «u», «v», «w» и «*», , I-й символ должен описывать i-е движение в решении головоломки. Каждая операция «вращать грань» задается как метка соответствующей грани, а строчная буква обозначает поворот по часовой стрелке и заглавной буквой на поворот против часовой стрелки. Операция «перерисовки» задается как символ «*». Пример(фигура 3,4,5) Ввод ddddcccccabbbbbdcaabbbddacccaabddaa a 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 Вывод *U Если есть несколько решений с минимальным количеством ходов, выведите любой из них. Если головоломку можно решить без каких-либо ходов, выведите пустую строку в файл. Иллюстрация примера: Рисунок 3 показывает начальную окраску тетраэдра, а на рисунках 4 и 5 показаны результаты каждой операции. Цвета треугольников задаются следующими шаблонами. Слезно прошу подскажите с чего начать, стандартные алгоритмы сборки пирамидки не подходят,так как мы не можем поворачивать по оси угловые треугольники;а больше ничего в голову не приходит |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Пирамида пасьянсов | drako08 | Python | 1 | 23.03.2017 00:08 |
OpenGL. Пирамида | _PROGRAMM_ | Помощь студентам | 4 | 08.11.2011 11:38 |
Составить программу «Пирамида». | 4eri | Помощь студентам | 3 | 29.04.2010 21:53 |