Умножение перестановок, обратная перестановка, группа перестановок
Умножение перестановок
| Определение: |
| Умножением (композицией) перестановок,представленных в виде целочисленных функций , где позиция элемента, а — его номер, называется перестановка, получаемая по следующему правилу: |
| Утверждение: |
Умножение перестановок ассоциативно:
|
|
Доказывается простым раскрытием скобок. |
Пример
или
Обратная перестановка
| Определение: |
| Обратной перестановкой к перестановке называется такая перестановка, что: |
| Определение: |
| Перестановка, равная своей обратной, называется инволюцией (англ. involution): , то есть её представление в виде циклов не содержит цикла, размер которого больше двух. |
| Утверждение: |
Количество инволюционных перестановок длины может быть получено по формуле: , где |
| Существует инволюций, при . Число инволюций, содержащих цикл , где , . Имеем, что |
| Определение: |
| Перестановка, содержащая чётное количество инверсий, называется чётной, в противном случае нечётной. |
| Определение: |
| Перестановка, меняющая местами только два элемента, называется транспозицией (англ. transposition). |
| Лемма: |
Если в перестановке, длина которой больше , поменять местами элемента, то её четность изменится. |
| Доказательство: |
| Для элементов, стоящих рядом, истинность утверждения очевидна: их взаимное расположение относительно других элементов не изменилось, а транспозиция этих чисел изменяет количество инверсий на единицу. Пусть теперь между перемещаемыми элементами и находятся элементов, то есть перестановка имеет вид: . Сначала поменяем последовательно с числами , а затем число с рядом стоящими . В итоге мы выполним транспозиций рядом стоящих элементов, то есть чётность перестановки изменится. |
Получение обратной перестановки
Пусть в массиве p[i] содержится перестановка, тогда в массиве op[i], после выполнения алгоритма, будет содержаться обратная перестановка.
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
if(p[j] == i + 1)
op[i] = j + 1;
При представлении перестановки в виде циклов обратную перестановку можно легко получить, инвертировав все ребра в циклах.
Отсюда следует более эффективный алгоритм (приведена in-place версия):
boolean[] visited = new boolean[n];
for (int i = 0; i < n; ++i)
if (visited[i]) continue;
// Reverse the cycle starting at i
int last = i;
int j = p[i];
while (true)
int next = p[j];
p[j] = last;
visited[j] = true;
if (j == i) break;
last = j;
j = next;
Группа перестановок
| Определение: |
Группой называется множество с заданной на нём бинарной операцией , удовлетворяющей следующим свойствам:
|
| Утверждение: |
Множество перестановок с элементами с операцией умножения является группой (часто группу перестановок называют симметрической, и обозначают ). |
| Свойства 1 и 3 доказаны выше, а в качестве нейтрального элемента выступает тождественная перестановка (). |
Мощность симметрической группы:
Теорема Кэли утверждает, что любая конечная группа изоморфна подгруппе некоторой группе перестановок.
Группа чётных перестановок
| Определение: |
| Группа чётных перестановок является подгруппой симметричной группы перестановок, образованной всеми чётными перестановками. Композиция не выводит из группы, так как если представить каждую перестановку группы в виде чётного числа транспозиций и перемножить их, чётность не изменится. |
| Утверждение: |
Количество чётных перестановок длины равно количеству нечётных и равно |
| Пусть число число чётных перестановок , а нечётных . Сделаем транспозицию для всех чётных перестановок. Получим нечётных различных перестановок, то есть . Проделаем то же самое с нечётными перестановками. Получим, что , то есть и . |
Подстановка
| Определение: |
| Подстановкой (англ. substitution) называется всякое взаимно однозначное отображение множества первых натуральных чисел на себя. |
Всякая подстановка A может быть записана при помощи двух перестановок, подписанных одна под другой:
Где через обозначается то число, в которое при подстановке переходит число .
Источники и литература
- https://en.wikipedia.org/wiki/Involution_(mathematics)
- Н. И. Яцкин, Алгебра Теоремы и алгоритмы, Издательство «Ивановский государственный университет», 2006 г., стр. 161