Мы можем представить кубик Рубика в виде сети следующим образом (при решении):
WWW
WWW
WWW
GGGRRRBBBOOO
GGGRRRBBBOOO
GGGRRRBBBOOO
YYY
YYY
YYY
Каждая буква представляет соответствующий цвет ( W
белый, G
зеленый и т. Д.)
Это было показано , что существует ровно (~ нониллион) различных перестановок , что кубик Рубика может быть в.
Ваша задача - взять целое число от до и вывести соответствующую перестановку, как показано выше. Вы можете выбрать порядок упорядочения перестановок, но должен быть показан алгоритм, который вы используете, чтобы сгенерировать уникальную и правильную перестановку для каждого возможного ввода.
Неверные правила перестановки
Взято с этой страницы
Начнем с того, что центр каждой грани 3х3 должен оставаться неизменным, поскольку центральный квадрат кубика Рубика не может вращаться. Весь куб можно вращать, меняя положение лица, но это не влияет на сеть куба.
Если мы скажем, что каждая перестановка имеет четность, основанную на четности числа перестановок для достижения этой перестановки, мы можем сказать,
Каждая угловая часть имеет три возможных направления. Он может быть ориентирован правильно (0), по часовой стрелке (1) или против часовой стрелки (2). Сумма угловых ориентаций всегда остается делимой на 3
Каждое допустимое вращение на кубике Рубика всегда переворачивает четное число ребер, поэтому не может быть только одна часть, ориентированная неправильно.
Учитывая перестановку всех углов и ребер, общая четность должна быть четной, что означает, что каждый допустимый ход всегда выполняет эквивалент четного числа свопов (игнорируя ориентацию)
Например, следующие три сети являются недействительными выходами:
WWW
WWW
WWW
GGGWWWBBBOOO
GGGRRRBBBOOO
GGGRRRBBBOOO
YYY
YYY
YYY
(Too many whites/not enough reds)
WRW
WRW
WRW
GGGRWRBBBOOO
GGGWRRBBBOOO
YYGRWROOOBBB
YYY
GGY
YYY
(There are two red/green center squares and no white/yellow center squares.
In all valid permutations, the center squares are all different colours)
WWW
WWW
WWW
GGGRRRBBBOOO
GGGRRRBBBOOO
GGGRRRBBOYOO
YYY
YYY
YYB
(The yellow/orange/blue corner is rotated into an impossible permutation)
правила
- Вы должны доказать, как вы хотите, что алгоритм действителен. Вам не нужно перечислять каждую перестановку, если вы доказываете правильность своего алгоритма.
- Вы должны включить какое-то подтверждение действительности в свой ответ. Это доказательство может подтвердить правильность любого принятого метода доказательства, за исключением перечисления всех возможностей.
- Вы можете использовать альтернативный метод ввода, если хотите, если:
- Вход ограничен
- Каждый вход соответствует уникальному выходу
- Вы четко объясняете формат ввода и как он соответствует каждому выходу
- Вы можете изменить символы, используемые для использования 6 различных символов ASCII, между 33 (
!
) и 126 (~
) вместоWGRBOY
- Вы можете выводить любым способом, каким пожелаете, при условии, что он образует четкое представление куба, в котором могут быть показаны все 6 граней, включая любую действительную сеть куба, строку с одной подкладкой или 3D-рендеринг. Если вы не уверены в конкретном формате, не стесняйтесь спрашивать в комментариях.
Это код-гольф, поэтому выигрывает самый короткий код в байтах на каждом языке.
Пример допустимых выходов
YYY
YYY
YYY
GGGRRRBBBOOO
GGGRRRBBBOOO
GGGRRRBBBOOO
WWW
WWW
WWW
(The `W` and `Y` faces have been swapped)
ZZZ
+++
+}}
+[[}77ZZ7bbb
bb[}[[7}}+Z7
bb[}++[}}+Z7
7bb
[7Z
[7Z
(To start with, the colours have been mapped W -> +, G -> b, R -> [, B -> }, O -> Z and Y -> 7.
Then, the moves L, R, U and F' have been applied, in that order.
Notice that each centre square is different, and corresponds to the same colour as in the mapping)