Изменения

Перейти к: навигация, поиск

Коды Грея для перестановок

790 байт добавлено, 07:00, 6 декабря 2011
Нет описания правки
Последовательность перестановок, полученная с помощью данного алгоритма имеет интересную интерпретацию. Так, если рассмотреть граф, вершины которого соответствуют всем перестановкам и в котором две вершины, соответствующие перестановкам $f$ и $g$, соединены ребром, если $g$ образуется из $f$ однократной транспозицией соседних элементов, то полученная последовательность является гамильтоновым путем в этом графе.
 
== Пример применения алгоритма ==
 
Рассмотрим код Грея для длины $n = 2$:
 
{2, 1}
 
{1, 2}
 
Тогда следуя алгоритму полученный код будет выглядеть так(жирным выделены элементы, которые поменялись):
 
{3, 2, 1} берем первую перестановку и добавляем в начало тройку
 
{'''2''', '''3''', 1} двигаем до последней позиции
 
{2, '''1''', '''3'''}
 
{'''1''', '''2''', 3} берем следующую перестановку и записываем тройку в конец
 
{1, '''3''', '''2'''} двигаем в начало
 
{'''3''', '''1''', 2}
 
Код Грея получен.
== Псевдокод получения следующего кода Грея ==
94
правки

Навигация