Я пытался придумать алгоритм, но не смог этого сделать.Вот проблема:
Существует 16 элементов, сгруппированных по четырем типам (a, b, c и d).У нас также есть четыре группы, A, B, C и D.
В исходном состоянии четыре группы имеют четыре случайных элемента в каждой, например ::
A: c, c, a, d
B: b, b, a, a
C: b, b, c, c
D: d, d, d, a
Порядок элементовв группе значимы.
Допускается две операции:
1) вращение элементов группы (в обе стороны), например ::
c, c, a, d -> d, c, c, a
2) поменять местами два смежных элемента в группе с соответствующими элементами в смежной группе, учитывая, что первая и последняя группы и элементы также являются смежными, поэтому:
Цель алгоритма - поместить элементы в соответствующие группы (A: a, a, a, a
и т. Д.).Алгоритм не должен быть оптимальным с точки зрения времени и решения, но в среднем он должен быть достаточно быстрым (т. Е. Без перебора).
Кто-нибудь может помочь?Является ли этот алгоритм даже полиномиальным?