Умножение перестановок, обратная перестановка, группа перестановок — различия между версиями
(→Пример) |
Denis (обсуждение | вклад) (Как-то так оформил тикет) |
||
Строка 3: | Строка 3: | ||
{{Определение | {{Определение | ||
|definition= | |definition= | ||
− | Умножением (композицией) перестановок называется перестановка, | + | '''Умножением''' (композицией) перестановок,представленных в виде целочисленных функций <tex> a_i </tex>, где <tex>i - </tex> позиция элемента, а <tex> a_i </tex> — его номер, называется перестановка, получаемая по следующему правилу: |
<tex> (ab)_i = a_{b_i} </tex> | <tex> (ab)_i = a_{b_i} </tex> | ||
Строка 26: | Строка 26: | ||
===Пример=== | ===Пример=== | ||
− | <tex> | + | <tex> a = {2, 5, 6, 3, 1, 4} = (1, 2, 5)(3, 6, 4) </tex> |
− | |||
− | |||
− | <tex> | + | <tex> b = {4, 1, 3, 6, 5, 2} = (1, 4, 6, 5) </tex> |
− | + | ||
− | + | <tex> ab = {a_4, a_1, a_3, a_6, a_5, a_2} = {3, 2, 6, 4, 1, 5} </tex> | |
− | |||
− | <tex> | ||
или | или | ||
− | <tex> | + | <tex> ab = (1, 2, 5)(3, 6, 4)(1, 4, 6, 5) = (1, 3, 6, 5)(2)(4) = (1, 3, 6, 5) </tex> |
==Обратная перестановка== | ==Обратная перестановка== | ||
Строка 45: | Строка 41: | ||
|definition= | |definition= | ||
− | Обратной перестановкой <tex> a^{-1} </tex> к перестановке <tex> a </tex> называется такая перестановка, что: | + | '''Обратной''' перестановкой <tex> a^{-1} </tex> к перестановке <tex> a </tex> называется такая перестановка, что: |
<tex> (a^{-1}a)_i = (aa^{-1})_i = i </tex> | <tex> (a^{-1}a)_i = (aa^{-1})_i = i </tex> | ||
Строка 54: | Строка 50: | ||
|id = def_involution | |id = def_involution | ||
|definition= | |definition= | ||
− | Перестановка, равная своей обратной, называется инволюцией: | + | Перестановка, равная своей обратной, называется '''инволюцией''' (англ. involution): |
+ | |||
+ | <tex> a_i = a^{-1}_i \Rightarrow (aa ^{-1})_i = (aa)_i = a_{a_i} = i </tex>, то есть её представление в виде циклов не содержит цикла, размер которого больше двух. | ||
+ | |||
+ | }} | ||
− | <tex> | + | {{Утверждение |
+ | |statement= | ||
+ | Количество инволюционных перестановок длины <tex>n\geqslant 2 </tex> может быть получено по формуле: <tex> I(n) = I(n-1)+(n-1)\cdot I(n-2) </tex>, где <tex> I(0) = I(1) = 1. </tex> | ||
+ | |proof= | ||
+ | Существует <tex> I(n-1)</tex> инволюций, при <tex>a_n = n </tex>. Число инволюций, содержащих цикл <tex>(j,n)</tex>, где <tex> 1\leq j\leq n-1 </tex>, <tex> (n-1)\cdot I(n-2)</tex>. Имеем, что <tex> I(n) = I(n-1)+(n-1)\cdot I(n-2). </tex> | ||
+ | }} | ||
+ | |||
+ | {{Определение | ||
+ | |definition= | ||
+ | |||
+ | Перестановка, содержащая чётное количество инверсий, называется '''чётной''', в противном случае <tex> - </tex> '''нечётной'''. | ||
+ | |||
+ | }} | ||
+ | |||
+ | {{Определение | ||
+ | |definition= | ||
+ | |||
+ | Перестановка, меняющая местами только два элемента, называется '''транспозицией''' (англ. transposition). | ||
+ | |||
+ | }} | ||
+ | |||
+ | {{Лемма|id=lemma1 | ||
+ | |statement= | ||
+ | |||
+ | Если в перестановке, длина которой больше <tex>1</tex>, поменять местами <tex> 2 </tex> элемента, то её четность изменится. | ||
+ | |||
+ | |proof= | ||
+ | |||
+ | Для элементов, стоящих рядом, истинность утверждения очевидна: их взаимное расположение относительно других элементов не изменилось, а транспозиция этих чисел изменяет количество инверсий на единицу. Пусть теперь между перемещаемыми элементами <tex> a </tex> и <tex> b </tex> находятся <tex> d </tex> элементов, то есть перестановка имеет вид: <tex> ..., a, s_1, s_2, ..., s_d, b, ... </tex>. Сначала поменяем последовательно <tex> a </tex> с числами <tex> s_1, s_2, ..., s_d, b </tex>, а затем число <tex>b</tex> с рядом стоящими <tex> s_d, s_d-1, ..., s_1 </tex>. В итоге мы выполним <tex> 2\cdot d + 1 </tex> транспозиций рядом стоящих элементов, то есть чётность перестановки изменится. | ||
}} | }} | ||
Строка 65: | Строка 93: | ||
for(i = 0; i < n; i++) | for(i = 0; i < n; i++) | ||
− | + | for(j = 0; j < n; j++) | |
− | + | if(p[j] == i + 1) | |
− | + | op[i] = j + 1; | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
При представлении перестановки в виде циклов обратную перестановку можно легко получить, инвертировав все ребра в циклах. | При представлении перестановки в виде циклов обратную перестановку можно легко получить, инвертировав все ребра в циклах. | ||
Строка 83: | Строка 105: | ||
boolean[] visited = new boolean[n]; | boolean[] visited = new boolean[n]; | ||
for (int i = 0; i < n; ++i) | 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; | |
− | |||
− | |||
− | |||
− | |||
==Группа перестановок== | ==Группа перестановок== | ||
Строка 103: | Строка 121: | ||
{{Определение | {{Определение | ||
|definition= | |definition= | ||
− | Группой называется множество <tex> M </tex> с заданной на нём бинарной операцией <tex> \circ: МM\times M \longrightarrow M</tex>, удовлетворяющей следующим свойствам: | + | '''Группой''' называется множество <tex> M </tex> с заданной на нём бинарной операцией <tex> \circ: МM\times M \longrightarrow M</tex>, удовлетворяющей следующим свойствам: |
# <tex> (g_1 \circ g_2) \circ g_3 = g_1 \circ (g_2 \circ g_3) </tex> — ассоциативность соответствующей бинарной операции. | # <tex> (g_1 \circ g_2) \circ g_3 = g_1 \circ (g_2 \circ g_3) </tex> — ассоциативность соответствующей бинарной операции. | ||
Строка 121: | Строка 139: | ||
[[Теорема Кэли]] утверждает, что любая конечная группа изоморфна подгруппе некоторой группе перестановок. | [[Теорема Кэли]] утверждает, что любая конечная группа изоморфна подгруппе некоторой группе перестановок. | ||
+ | |||
+ | ==Группа чётных перестановок== | ||
+ | |||
+ | {{Определение | ||
+ | |definition= | ||
+ | '''Группа чётных перестановок''' <tex> A_n </tex> является подгруппой симметричной группы перестановок, образованной всеми чётными перестановками. Композиция не выводит из группы, так как если представить каждую перестановку группы в виде чётного числа транспозиций и перемножить их, чётность не изменится. | ||
+ | }} | ||
+ | |||
+ | {{Утверждение | ||
+ | |statement= | ||
+ | Количество чётных перестановок длины <tex> n </tex> равно количеству нечётных и равно <tex> \dfrac{n!}{2} </tex> | ||
+ | |proof= | ||
+ | Пусть число число чётных перестановок <tex> - </tex> <tex> a</tex>, а нечётных <tex> - </tex> <tex> b </tex>. Сделаем транспозицию <tex> (1, 2) </tex> для всех чётных перестановок. Получим <tex> a </tex> нечётных различных перестановок, то есть <tex> a\leqslant b </tex>. Проделаем то же самое с нечётными перестановками. Получим, что <tex> b\leqslant a </tex>, то есть <tex> a = b </tex> и <tex> a = \dfrac{n!}{2} </tex>. | ||
+ | }} | ||
+ | |||
+ | ==Подстановка== | ||
+ | |||
+ | {{Определение | ||
+ | |definition= | ||
+ | '''Подстановкой''' (англ. substitution) называется всякое взаимно однозначное отображение <tex> A </tex> множества первых <tex>n</tex> натуральных чисел на себя. | ||
+ | |||
+ | }} | ||
+ | |||
+ | Всякая подстановка A может быть записана при помощи двух перестановок, подписанных одна под другой: | ||
+ | |||
+ | <tex> A = \begin{pmatrix} q_1 & q_2 & ... & q_n \\ a_{k_1} & a_{k_2} & ... & a_{k_n} \end{pmatrix} </tex> | ||
+ | |||
+ | Где через <tex> a_{k_i} </tex> обозначается то число, в которое при подстановке <tex> A </tex> переходит число <tex> q_i </tex>. | ||
+ | |||
+ | |||
==Источники и литература== | ==Источники и литература== | ||
− | * | + | * https://en.wikipedia.org/wiki/Involution_(mathematics) |
* Н. И. Яцкин, Алгебра Теоремы и алгоритмы, Издательство «Ивановский государственный университет», 2006 г., стр. 161 | * Н. И. Яцкин, Алгебра Теоремы и алгоритмы, Издательство «Ивановский государственный университет», 2006 г., стр. 161 | ||
[[Категория: Дискретная математика и алгоритмы]] | [[Категория: Дискретная математика и алгоритмы]] | ||
[[Категория: Комбинаторика]] | [[Категория: Комбинаторика]] |
Версия 23:02, 31 декабря 2017
Содержание
Умножение перестановок
Определение: |
Умножением (композицией) перестановок,представленных в виде целочисленных функций | , где позиция элемента, а — его номер, называется перестановка, получаемая по следующему правилу:
Утверждение: |
Умножение перестановок ассоциативно:
|
Доказывается простым раскрытием скобок. |
Пример
или
Обратная перестановка
Определение: |
Обратной перестановкой | к перестановке называется такая перестановка, что:
Определение: |
Перестановка, равная своей обратной, называется инволюцией (англ. 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