 Статус: Частенько заглядывает Группы: Member
Зарегистрирован: 08.10.2016(UTC) Сообщений: 243
Сказал(а) «Спасибо»: 79 раз Поблагодарили: 185 раз в 118 постах
|
Выкладываю пару утилит, могущих оказаться полезными при изучении автоморфизмов (сиречь обобщённых симметрий) ЛК10. Файл readme.txt
************************ Автоизор ***************************
Программа Автоизор находит все автоморфизмы ЛК10, если передать программе один квадрат. Если же во входном файле input.txt записаны два ЛК, то программа найдёт все изоморфизмы первого квадрата во второй, либо сообщит об их отсутствии.
Выходные данные записываются в файл output.txt. Пример записи:
** 9685741302 6857913024 0314258697 -> (21,36,36) *T 0432159876 0432159876 0432159876 -> (16,16,16)+ C* 9567840123 8765932104 4012395678 -> (31,41,42)+ CT 0432159876 1234067895 4012395678 -> (16,41,41)++ R* 9685741302 8697531420 2413079685 -> (21,36,36)+ RT 1043265987 2340178956 4321098765 -> (16,16,41)++
Пара символов в первой колонке кодируют парастрофию:
** — нет *T — транспонирование C* — инверсия столбцов CT — инверсия стобцов с последующим транспонирование R* — инверсия строк RT — инверсия строк с последующим транспонированием
В трёх следующих колонках записаны перестановки строк, столбцов и значений соответственно. То есть, чтобы из ЛК L получить изоморфный ему ЛК L" нужно: 1) применить к L указанную парастрофию в том порядке как указано, получим ЛК L'; 2) вычислить L"(i,j) = v[L'(r[i],c[j])] для всех (i,j), здесь <r,c,v> тройка указанных перестановок.
В последней колонке (после символа '->' ) приведён код соответствующей обобщённой симметрии.
***************************** Изоморфер ***************************
Программа Изоморфер преобразует введённый квадрат в соответствии с заданным изоморфизмом.
Исходный квадрат берётся из файла input.txt, нужный изоморфизм вводится по запросу в формате вывода Автоизора (без кода симметрии), например:
R* 9685741302 8697531420 2413079685
Полученный квадрат выводится на консоль. Кроме того, он сравнивается с исходным ЛК, а результат сравнения сообщается.
Несколько слов о кодах обобщённых симметрий. Как уже отмечалось, обобщённые симметрии определяются циклическими структурами трёх перестановок и циклической структурой парстрофии. Всего перестановки десяти элементов могут иметь 42 различные циклические структуры, а парастрофии — три. Для каждой циклической структуры выберем наименьшую перестановку. Упорядочим выбранных представителей в лексикографическом порядке и занумеруем их начиная с 1. Получим следующую таблицу:
Код:
1 : 0123456789 -> 1,1,1,1,1,1,1,1,1,1
2 : 0123456798 -> 1,1,1,1,1,1,1,1,2
3 : 0123456897 -> 1,1,1,1,1,1,1,3
4 : 0123457698 -> 1,1,1,1,1,1,2,2
5 : 0123457896 -> 1,1,1,1,1,1,4
6 : 0123465897 -> 1,1,1,1,1,2,3
7 : 0123467895 -> 1,1,1,1,1,5
8 : 0123547698 -> 1,1,1,1,2,2,2
9 : 0123547896 -> 1,1,1,1,2,4
10: 0123564897 -> 1,1,1,1,3,3
11: 0123567894 -> 1,1,1,1,6
12: 0124365897 -> 1,1,1,2,2,3
13: 0124367895 -> 1,1,1,2,5
14: 0124537896 -> 1,1,1,3,4
15: 0124567893 -> 1,1,1,7
16: 0132547698 -> 1,1,2,2,2,2
17: 0132547896 -> 1,1,2,2,4
18: 0132564897 -> 1,1,2,3,3
19: 0132567894 -> 1,1,2,6
20: 0134267895 -> 1,1,3,5
21: 0134527896 -> 1,1,4,4
22: 0134567892 -> 1,1,8
23: 0214365897 -> 1,2,2,2,3
24: 0214367895 -> 1,2,2,5
25: 0214537896 -> 1,2,3,4
26: 0214567893 -> 1,2,7
27: 0231564897 -> 1,3,3,3
28: 0231567894 -> 1,3,6
29: 0234167895 -> 1,4,5
30: 0234567891 -> 1,9
31: 1032547698 -> 2,2,2,2,2
32: 1032547896 -> 2,2,2,4
33: 1032564897 -> 2,2,3,3
34: 1032567894 -> 2,2,6
35: 1034267895 -> 2,3,5
36: 1034527896 -> 2,4,4
37: 1034567892 -> 2,8
38: 1204537896 -> 3,3,4
39: 1204567893 -> 3,7
40: 1230567894 -> 4,6
41: 1234067895 -> 5,5
42: 1234567890 -> 10
Здесь в первой колонке номера, во второй — наименьшие представители, а в третьей — циклические структуры. Код обобщённой симметрии получим если номера циклических структур соответствующих перестановок упорядочим по не убыванию и добавим 0, 1 или 2 '+' в зависимости от циклической структуры парастрофии: 0 — тождественная парастрофия 1 — парастрофия второго порядка (T, R, C) 2 — парастрофия третьего порядка (RT, CT).
|