Скачать .docx Скачать .pdf

Дипломная работа: Восьмиэлементные ассоциативные кольца

Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования

Вятский Государственный Гуманитарный Университет

Математический факультет

Кафедра алгебры и геометрии

Выпускная квалификационная работа

Восьмиэлементные ассоциативные кольца

Выполнил: студент Vкурса математического факультета Касьянов А.А.

_________________________

Научный руководитель: д.ф.-м.н., профессор, зав. кафедры алгебры и геометрии

Вечтомов Е.М.

_________________________

Рецензент: к.ф.-м.н., доцент

Чермных В.В.

_________________________

Допущен к защите в ГАК

Зав. кафедрой________________ Вечтомов Е.М.

« »___________

Декан факультета_____________ Варанкина В.И.

« »___________

Киров 2005

Содержание

Введение........................................................................................ 3

§1. Абелевы группы по сложению.............................................. 5

§2. Кольца, образованные аддитивной группой ............ 8

§3. Кольца, образованные аддитивной группой ... 10

Библиографический список........................................................ 11

Приложение................................................................................ 12


Введение

Понятие кольца появилось в математике в конце XIX века. Первыми примерами ассоциативных колец были числовые кольца, т.е. подкольца поля комплексных чисел и кольца классов вычетов целых чисел. Как самостоятельная область алгебры, теория ассоциативных колец оформилась к началу XX века. Из этой теории выделились в самостоятельные области алгебры теории коммутативных колец, тел, алгебр.

Дадим основные понятия, которыми мы будем пользоваться в дальнейшем.

Аддитивной абелевой группой называется алгебра с бинарной операцией + (сложение), удовлетворяющей следующим аксиомам:

1) сложение ассоциативно, т.е. ;

2) в G существует нейтральный элемент 0 (ноль) такой, что ;

3) в G для любого элемента существует противоположный элемент, т.е. ;

4) Сложение коммутативно: ;

Мультипликативной полугруппой называется алгебра с бинарной операцией (умножение), удовлетворяющая закону ассоциативности: ; (в дальнейшем мы будем писать ab , и иметь ввиду произведение элементов a и b в G .

Кольцом называется алгебра с двумя бинарными операциями сложения и умножения, которые удовлетворяют следующим условиям:

1) относительно сложения кольцо является абелевой группой;

2) относительно умножения – это полугруппа;

3) выполняются законы дистрибутивности: и ;

Данная дипломная работа представляет собой изложение методики изучения определенных конечных алгебр. В настоящее время изучение конечных алгебр производится с помощью компьютера. Задача данной дипломной работы состоит в отыскании всех восьмиэлементных ассоциативных колец. Для этого мы сначала находим все абелевы группы из восьми элементов, а затем для каждой такой группы строим соответствующие полугруппы по умножению, и получаем искомые кольца.

Всего абелевых групп по сложению, с точностью до изоморфизма, будет три: , , и . Для группы , кольца находятся вручную. Для нахождения колец по остальным двум группам нужно использовать компьютер, так как количество всевозможных полугрупп по умножению будет велико и, соответственно, отбор восьмиэлементных колец без привлечения вычислительной машины займет очень много времени.

В результате получаем, что всего существует с точностью до изоморфизма 392 восьмиэлиментных кольца.

Для работы с абелевыми группами и полугруппами по умножению, а также для представления их в компьютере, будем пользоваться таблицами Кэли. Таблицей Кэли называется квадратная таблица произвольной алгебры, задаваемая для определённой бинарной операции. Заглавная строка таблицы заполняется в некотором порядке символами, обозначающими различные элементы, теми же символами и в том же порядке заполняется главный столбец. Если алгебра обладает нейтральным элементом, то этот элемент, как правило, помещается на первом месте. Если на i-м месте в заглавном столбце стоит символ ai , и на j-м месте в заглавной строке – символ aj , то на пересечении i-ой строки и j-го столбца записывается символ, обозначающий результат операции элементов ai и aj . В нашем случае мы не будем писать заглавные строки таблицы, подразумевая, что элементы пронумерованы числами от 0 до 7. Мы будем использовать таблицы Кэли без заглавных строки и столбца.


§1. Абелевы группы по сложению

Как уже было сказано выше, всего восьмиэлементных аддитивных абелевых групп с точностью до изоморфизма три: , , и .

Представим каждую из таких групп в виде таблиц Кэли. Для группы элементы представим числами от 0 до 7. Элементы для групп и обозначим следующим образом:

0º (0,0)

1º (1,0)

2º (2,0)

3º (3,0)

4º (0,1)

5º (1,1)

6º (2,1)

7º (3,1)

0º (0,0,0)

1º (1,0,0)

2º (0,1,0)

3º (0,0,1)

4º (1,1,0)

5º (1,0,1)

6º (0,1,1)

7º (1,1,1)

Таким образом, группы будут иметь следующий вид:

0 1 2 3 4 5 6 7

1 2 3 4 5 6 7 0

2 3 4 5 6 7 0 1

3 4 5 6 7 0 1 2

4 5 6 7 0 1 2 3

5 6 7 0 1 2 3 4

6 7 0 1 2 3 4 5

7 0 1 2 3 4 5 6

0 1 2 3 4 5 6 7

1 2 3 0 5 6 7 4

2 3 0 1 6 7 4 5

3 0 1 2 7 4 5 6

4 5 6 7 0 1 2 3

5 6 7 4 1 2 3 0

6 7 4 5 2 3 0 1

7 4 5 6 3 0 1 2

0 1 2 3 4 5 6 7

1 0 4 5 2 3 7 6

2 4 0 6 1 7 3 5

3 5 6 0 7 1 2 4

4 2 1 7 0 6 5 3

5 3 7 1 6 0 4 2

6 7 3 2 5 4 0 1

7 6 5 4 3 2 1 0

Затем, для каждой такой группы, мы будем строить полугруппы по умножению, пользуясь также таблицами Кэли. Для группы таких полугрупп будет всего 8, так как нам достаточно определить чему равно произведение 1·1. На место этого произведения мы можем поставить один из 8 элементов (от 0 до 7), а все остальные элементы будут определяться однозначно, согласно дистрибутивному закону. Ассоциативность умножения будет выполнятся, так как умножение сводится к сложению. Кроме того, умножение будет коммутативно. Таким образом, после вычеркивания изоморфных, мы получим 4 кольца с абелевой группой по сложению :

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 1 2 3 4 5 6 7

0 2 4 6 0 2 4 6

0 3 6 1 4 7 2 5

0 4 0 4 0 4 0 4

0 5 2 7 4 1 6 3

0 6 4 2 0 6 4 2

0 7 6 5 4 3 2 1

0 0 0 0 0 0 0 0

0 2 4 6 0 2 4 6

0 4 0 4 0 4 0 4

0 6 4 2 0 6 4 2

0 0 0 0 0 0 0 0

0 2 4 6 0 2 4 6

0 4 0 4 0 4 0 4

0 6 4 2 0 6 4 2

0 0 0 0 0 0 0 0

0 4 0 4 0 4 0 4

0 0 0 0 0 0 0 0

0 4 0 4 0 4 0 4

0 0 0 0 0 0 0 0

0 4 0 4 0 4 0 4

0 0 0 0 0 0 0 0

0 4 0 4 0 4 0 4

В случае с группой в полугруппе по умножению уже будет 4 независимых произведения, т.е. это такие элементы в таблице Кэли для полугруппы по умножению, на которые мы можем поставить любой из элементов от 0 до 7. Соответственно всего различных колец без учета ассоциативности и вычеркивания изоморфных будет 84 . Проверка ассоциативности умножения и выделение изоморфных колец осуществляется программным способом. Чтобы найти кольцо, изоморфное данному, нужно сначала найти все автоморфизмы абелевой группы по сложению, а потом этими преобразованиями подействовать на полугруппы по умножению, и соответственно получившиеся одинаковые кольца вычеркнуть. Автоморфизмы группы будем искать вручную. Выделим в данной группе элементы 1, 3, 5, 7 – элементы четвертого порядка. Остальные элементы будут выражаться через них: 4=1+7, 6=1+5, 2=4+6 – это элементы второго порядка. Пары элементов 1º(1,0), 3º(3,0) и 5º(1,1), 7º(3,1) – противоположные друг другу элементы. Нам достаточно посмотреть, как будут вести себя элементы четвертого порядка при автоморфизмах. Это будут 6 взаимнооднозначных отображений, в том числе и тождественное, которые переводят данную группу в себя:

1®3

3®1

5®7

7®5

4®4

6®6

2®2

1®1

3®3

5®7

7®5

4®6

6®4

2®2

1®3

3®1

5®5

7®7

4®6

6®4

2®2

1®5

5®1

3®7

7®3

4®4

6®6

2®2

1®7

7®1

3®5

5®3

4®4

6®6

2®2

Колец с абелевой группой по сложению будет 89 , так как независимых элементов в полугруппе по умножению будет 9. Нужные нам кольца, мы будем искать аналогично предыдущему случаю. Только автоморфизмы данной группы мы будем искать другим способом. Заметим, что группа является трехмерным векторным пространством над полем Z 2 и базисом группы мы назовем любой ее базис, как векторное пространство над Z 2 . Данная группа задается некоторыми тремя элементами – базисом группы, а остальные элементы выражаются через данный базис. К примеру начальный базис: (1,2,3). Соответственно: 4=1+2, 5=1+3, 6=2+3, 7=1+2+3. Таким образом, количество всех базисов – это количество всевозможных упорядоченных троек из данных семи элементов, за исключением таких троек, которые базис не образуют, на пример: (1,2,4), так как 4=1+2. Количество всех базисов – это и будет количество всех автоморфизмов данной группы. Сначала найдем всевозможные неупорядоченные тройки из 7 элементов, которые образуют базис. Получим 28 таких троек. Чтобы найти все базисы, нужно каждую найденную тройку, упорядочить, т.е. 28·6. Таким образом получаем 168 различных базисов.


§2. Кольца, образованные аддитивной группой

Для нахождения колец, с абелевой группой по сложению мы будем использовать программу на языке Pascal (Приложение 1). Принцип работы программы следующий:

1) Находим все полугруппы по умножению, так, чтобы выполнялась дистрибутивность;

2) Проверяем каждую полугруппу на ассоциативность, и, соответственно, ненужные вычеркиваем;

3) Находим изоморфные кольца следующим образом: а) берем первую полугруппу по умножению и действуем на нее автоморфизмами для аддитивной абелевой группы; б) находим получившиеся полугруппы среди остальных, и вычеркиваем их из общего списка; в) затем берем следующую не вычеркнутую полугруппу и проделываем операции а)-б).

Поясним пункт а). Пусть f – автоморфизм группы . Берем мультипликативную полугруппу <A,·> соответствующего кольца, представленную таблицей Кэли. Тогда через <f A,*> обозначим мультипликативную полугруппу на , полученную следующим образом. Длялюбыхa,b Î полагаемa *b=f(f –1 (a) · f –1 (b)) . При этом кольца <A,·,+> и <f A,*,+> изоморфны.

Таким образом, мы получим 33 кольца с абелевой группой по сложению и мультипликативными полугруппами:


0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 1 1 1 1

0 0 0 0 1 1 1 1

0 0 0 0 1 1 1 1

0 0 0 0 1 1 1 1

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 2 2 2 2

0 0 0 0 2 2 2 2

0 0 0 0 2 2 2 2

0 0 0 0 2 2 2 2

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 4 4 4 4

0 0 0 0 4 4 4 4

0 0 0 0 4 4 4 4

0 0 0 0 4 4 4 4

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 5 5 5 5

0 0 0 0 5 5 5 5

0 0 0 0 5 5 5 5

0 0 0 0 5 5 5 5

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 2 0 2 0 2 0 2

0 2 0 2 0 2 0 2

0 2 0 2 0 2 0 2

0 2 0 2 0 2 0 2

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 2 0 2 2 0 2 0

0 2 0 2 2 0 2 0

0 2 0 2 2 0 2 0

0 2 0 2 2 0 2 0

0 0 0 0 0 0 0 0

0 0 0 0 1 1 1 1

0 0 0 0 2 2 2 2

0 0 0 0 3 3 3 3

0 0 0 0 4 4 4 4

0 0 0 0 5 5 5 5

0 0 0 0 6 6 6 6

0 0 0 0 7 7 7 7

0 0 0 0 0 0 0 0

0 0 0 0 1 1 1 1

0 0 0 0 2 2 2 2

0 0 0 0 3 3 3 3

0 1 2 3 4 5 6 7

0 1 2 3 5 6 7 4

0 1 2 3 6 7 4 5

0 1 2 3 7 4 5 6

0 0 0 0 0 0 0 0

0 0 0 0 1 1 1 1

0 0 0 0 2 2 2 2

0 0 0 0 3 3 3 3

0 1 2 3 5 6 7 4

0 1 2 3 6 7 4 5

0 1 2 3 7 4 5 6

0 1 2 3 4 5 6 7

0 0 0 0 0 0 0 0

0 0 0 0 2 2 2 2

0 0 0 0 0 0 0 0

0 0 0 0 2 2 2 2

0 0 0 0 0 0 0 0

0 0 0 0 2 2 2 2

0 0 0 0 0 0 0 0

0 0 0 0 2 2 2 2

0 0 0 0 0 0 0 0

0 0 0 0 2 2 2 2

0 0 0 0 0 0 0 0

0 0 0 0 2 2 2 2

0 2 0 2 0 2 0 2

0 2 0 2 2 0 2 0

0 2 0 2 0 2 0 2

0 2 0 2 2 0 2 0

0 0 0 0 0 0 0 0

0 0 0 0 2 2 2 2

0 0 0 0 0 0 0 0

0 0 0 0 2 2 2 2

0 2 0 2 1 3 1 3

0 2 0 2 3 1 3 1

0 2 0 2 1 3 1 3

0 2 0 2 3 1 3 1

0 0 0 0 0 0 0 0

0 0 0 0 2 2 2 2

0 0 0 0 0 0 0 0

0 0 0 0 2 2 2 2

0 2 0 2 2 0 2 0

0 2 0 2 0 2 0 2

0 2 0 2 2 0 2 0

0 2 0 2 0 2 0 2

0 0 0 0 0 0 0 0

0 1 2 3 0 1 2 3

0 2 0 2 0 2 0 2

0 3 2 1 0 3 2 1

0 0 0 0 0 0 0 0

0 1 2 3 0 1 2 3

0 2 0 2 0 2 0 2

0 3 2 1 0 3 2 1

0 0 0 0 0 0 0 0

0 1 2 3 0 1 2 3

0 2 0 2 0 2 0 2

0 3 2 1 0 3 2 1

0 0 0 0 4 4 4 4

0 1 2 3 4 5 6 7

0 2 0 2 4 6 4 6

0 3 2 1 4 7 6 5

0 0 0 0 0 0 0 0

0 1 2 3 0 1 2 3

0 2 0 2 0 2 0 2

0 3 2 1 0 3 2 1

0 4 0 4 0 4 0 4

0 5 2 7 0 5 2 7

0 6 0 6 0 6 0 6

0 7 2 5 0 7 2 5

0 0 0 0 0 0 0 0

0 1 2 3 1 2 3 0

0 2 0 2 2 0 2 0

0 3 2 1 3 2 1 0

0 1 2 3 1 2 3 0

0 2 0 2 2 0 2 0

0 3 2 1 3 2 1 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 1 2 3 1 2 3 0

0 2 0 2 2 0 2 0

0 3 2 1 3 2 1 0

0 1 2 3 4 5 6 7

0 2 0 2 5 7 5 7

0 3 2 1 6 5 4 7

0 0 0 0 7 7 7 7

0 0 0 0 0 0 0 0

0 1 2 3 4 5 6 7

0 2 0 2 0 2 0 2

0 3 2 1 4 7 6 5

0 0 0 0 0 0 0 0

0 1 2 3 4 5 6 7

0 2 0 2 0 2 0 2

0 3 2 1 4 7 6 5

0 0 0 0 0 0 0 0

0 1 2 3 4 5 6 7

0 2 0 2 0 2 0 2

0 3 2 1 4 7 6 5

0 4 0 4 0 4 0 4

0 5 2 7 4 1 6 3

0 6 0 6 0 6 0 6

0 7 2 5 4 3 6 1

0 0 0 0 0 0 0 0

0 1 2 3 4 5 6 7

0 2 0 2 0 2 0 2

0 3 2 1 4 7 6 5

0 4 0 4 2 6 2 6

0 5 2 7 6 3 4 1

0 6 0 6 2 4 2 4

0 7 2 5 6 1 4 3

0 0 0 0 0 0 0 0

0 2 0 2 0 2 0 2

0 0 0 0 0 0 0 0

0 2 0 2 0 2 0 2

0 0 0 0 0 0 0 0

0 2 0 2 0 2 0 2

0 0 0 0 0 0 0 0

0 2 0 2 0 2 0 2

0 0 0 0 0 0 0 0

0 2 0 2 0 2 0 2

0 0 0 0 0 0 0 0

0 2 0 2 0 2 0 2

0 0 0 0 4 4 4 4

0 2 0 2 4 6 4 6

0 0 0 0 4 4 4 4

0 2 0 2 4 6 4 6

0 0 0 0 0 0 0 0

0 2 0 2 0 2 0 2

0 0 0 0 0 0 0 0

0 2 0 2 0 2 0 2

0 2 0 2 2 0 2 0

0 0 0 0 2 2 2 2

0 2 0 2 2 0 2 0

0 0 0 0 2 2 2 2

0 0 0 0 0 0 0 0

0 2 0 2 1 3 1 3

0 0 0 0 2 2 2 2

0 2 0 2 3 1 3 1

0 1 2 3 4 5 6 7

0 3 2 1 5 4 7 6

0 1 2 3 6 7 4 5

0 3 2 1 7 6 5 4

0 0 0 0 0 0 0 0

0 2 0 2 2 0 2 0

0 0 0 0 0 0 0 0

0 2 0 2 2 0 2 0

0 2 0 2 0 2 0 2

0 0 0 0 2 2 2 2

0 2 0 2 0 2 0 2

0 0 0 0 2 2 2 2

0 0 0 0 0 0 0 0

0 2 0 2 2 0 2 0

0 0 0 0 0 0 0 0

0 2 0 2 2 0 2 0

0 2 0 2 5 7 5 7

0 0 0 0 7 7 7 7

0 2 0 2 5 7 5 7

0 0 0 0 7 7 7 7

0 0 0 0 0 0 0 0

0 2 0 2 3 1 3 1

0 0 0 0 2 2 2 2

0 2 0 2 1 3 1 3

0 3 2 1 5 4 7 6

0 1 2 3 4 5 6 7

0 3 2 1 7 6 5 4

0 1 2 3 6 7 4 5

0 0 0 0 0 0 0 0

0 4 0 4 0 4 0 4

0 0 0 0 0 0 0 0

0 4 0 4 0 4 0 4

0 0 0 0 0 0 0 0

0 4 0 4 0 4 0 4

0 0 0 0 0 0 0 0

0 4 0 4 0 4 0 4

0 0 0 0 0 0 0 0

0 4 0 4 2 6 2 6

0 0 0 0 0 0 0 0

0 4 0 4 2 6 2 6

0 2 0 2 0 2 0 2

0 6 0 6 2 4 2 4

0 2 0 2 0 2 0 2

0 6 0 6 2 4 2 4

0 0 0 0 0 0 0 0

0 4 0 4 6 2 6 2

0 0 0 0 0 0 0 0

0 4 0 4 6 2 6 2

0 6 0 6 6 0 6 0

0 2 0 2 0 2 0 2

0 6 0 6 6 0 6 0

0 2 0 2 0 2 0 2


§3. Кольца, образованные аддитивной группой

Для нахождения колец с данной группой по сложению использовалась программа на языке Pascal (Приложение 2). Принцип действия данной программы, аналогичен принципу, описанному в предыдущем параграфе. Добавляется только пункт по нахождению всех базисов данной аддитивной группы.

Всего колец с аддитивной группой будет 355. Выпишем некоторые из них:


0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 1 0 1 1 1

0 0 0 0 0 0 0 0

0 0 0 1 0 1 1 1

0 0 0 1 0 1 1 1

0 0 0 1 0 1 1 1

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 3 0 3 3 3

0 0 0 0 0 0 0 0

0 0 0 3 0 3 3 3

0 0 0 3 0 3 3 3

0 0 0 3 0 3 3 3

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 1 0 1 0 1 1

0 0 0 0 0 0 0 0

0 0 1 0 1 0 1 1

0 0 1 0 1 0 1 1

0 0 1 0 1 0 1 1

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 1 1 1 1 0 0

0 0 0 0 0 0 0 0

0 0 1 1 1 1 0 0

0 0 1 1 1 1 0 0

0 0 1 1 1 1 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 2 3 2 3 6 6

0 0 0 0 0 0 0 0

0 0 2 3 2 3 6 6

0 0 2 3 2 3 6 6

0 0 2 3 2 3 6 6

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 2 5 2 5 7 7

0 0 0 0 0 0 0 0

0 0 2 5 2 5 7 7

0 0 2 5 2 5 7 7

0 0 2 5 2 5 7 7

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 1 1 3 0 5 5 3

0 0 0 0 0 0 0 0

0 1 1 3 0 5 5 3

0 1 1 3 0 5 5 3

0 1 1 3 0 5 5 3

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 1 1 7 0 6 6 7

0 0 0 0 0 0 0 0

0 1 1 7 0 6 6 7

0 1 1 7 0 6 6 7

0 1 1 7 0 6 6 7

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 1 2 3 4 5 6 7

0 0 0 0 0 0 0 0

0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

0 1 2 3 4 5 6 7

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 4 0 3 4 7 3 7

0 0 0 0 0 0 0 0

0 4 0 3 4 7 3 7

0 4 0 3 4 7 3 7

0 4 0 3 4 7 3 7

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 4 0 6 4 5 6 5

0 0 0 0 0 0 0 0

0 4 0 6 4 5 6 5

0 4 0 6 4 5 6 5

0 4 0 6 4 5 6 5

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 1 0 1 1 1

0 0 0 0 0 0 0 0

0 0 0 1 0 1 1 1

0 0 0 0 0 0 0 0

0 0 0 1 0 1 1 1

0 0 0 1 0 1 1 1

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 1 0 1 1 1

0 0 0 1 0 1 1 1

0 0 0 1 0 1 1 1

0 0 0 1 0 1 1 1

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 1 0 1 1 1

0 0 1 0 1 0 1 1

0 0 0 1 0 1 1 1

0 0 1 0 1 0 1 1

0 0 1 1 1 1 0 0

0 0 1 1 1 1 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 1 0 1 1 1

0 0 1 1 1 1 0 0

0 0 0 1 0 1 1 1

0 0 1 1 1 1 0 0

0 0 1 0 1 0 1 1

0 0 1 0 1 0 1 1

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 1 0 1 1 1

0 0 1 2 1 2 4 4

0 0 0 1 0 1 1 1

0 0 1 2 1 2 4 4

0 0 1 4 1 4 2 2

0 0 1 4 1 4 2 2

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 2 0 2 2 2

0 0 0 3 0 3 3 3

0 0 0 2 0 2 2 2

0 0 0 3 0 3 3 3

0 0 0 6 0 6 6 6

0 0 0 6 0 6 6 6

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 2 0 2 2 2

0 0 0 5 0 5 5 5

0 0 0 2 0 2 2 2

0 0 0 5 0 5 5 5

0 0 0 7 0 7 7 7

0 0 0 7 0 7 7 7

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 2 0 2 2 2

0 0 2 3 2 3 6 6

0 0 0 2 0 2 2 2

0 0 2 3 2 3 6 6

0 0 2 6 2 6 3 3

0 0 2 6 2 6 3 3


Библиографический список.

1. Кострикин А.И. Введение в алгебру. – М.: Наука, 1997.

2. Скорняков Л.А. Элементы алгебры. – М.: Наука, 1986.


Приложение

1. Текст программы поиска колец, имеющих аддитивную группу .

Программа 1. Формирование мультипликативных полугрупп:

program form;

uses crt;

type mas=array [0..7,0..7] of integer;

dmas=array [1..7,1..7] of integer;

var a:mas;

b:dmas;

f:text;

procedure sc(var a:mas);

var i,j:integer;

begin

assign(f,'a:\mat.txt');

reset(f);

for i:=0 to 7 do begin

for j:=0 to 7 do read(f,a[i,j]);

readln(f);

end;

close(f);

end;

procedure zap1(k1,k2,k3,k4:integer;a:mas; var b:dmas);

var t2,t3,t5,t6,t7:integer;

begin

b[1,1]:=k1; b[1,4]:=k2; b[4,1]:=k3; b[4,4]:=k4;

b[1,2]:=a[b[1,1],b[1,1]]; b[1,3]:=a[b[1,1],b[1,2]];

b[1,5]:=a[b[1,1],b[1,4]]; b[1,6]:=a[b[1,1],b[1,5]];

b[1,7]:=a[b[1,1],b[1,6]];

for t2:=1 to 7 do b[2,t2]:=a[b[1,t2],b[1,t2]];

for t3:=1 to 7 do b[3,t3]:=a[b[1,t3],b[2,t3]];

b[4,2]:=a[b[4,1],b[4,1]]; b[4,3]:=a[b[4,1],b[4,2]];

b[4,5]:=a[b[4,1],b[4,4]]; b[4,6]:=a[b[4,1],b[4,5]];

b[4,7]:=a[b[4,1],b[4,6]];

for t5:=1 to 7 do b[5,t5]:=a[b[1,t5],b[4,t5]];

for t6:=1 to 7 do b[6,t6]:=a[b[1,t6],b[5,t6]];

for t7:=1 to 7 do b[7,t7]:=a[b[1,t7],b[6,t7]];

end;

procedure zap(a:mas);

var f1:text;

i,j,k1,k2,k3,k4,r:integer;

begin

assign(f1,'a:\a2.txt');

rewrite(f1);

r:=0;

for k1:=0 to 7 do

for k2:=0 to 7 do

for k3:=0 to 7 do

for k4:=0 to 7 do begin

zap1(k1,k2,k3,k4,a,b);

for i:=1 to 7 do begin

for j:=1 to 7 do write(f1,b[i,j]);

writeln(f1);

end;

writeln(f1); inc(r);

end;

close(f1);

writeln(r);

end;

begin

clrscr;

sc(a);

zap(a);

writeln('ok');

readln;

end.

Программа 2. Проверка на ассоциативность:

program assoc;

uses crt;

type mas=array [0..7,0..7] of integer;

var a,b:mas;

i,j,k1,k2,k3,n,i1,i2,r,q:integer;

f,f1:text;

begin

clrscr;

q:=0;

assign(f,'a:\w03.txt');

reset(f);

assign(f1,'a:\aw03.txt');

rewrite(f1);

n:=1; r:=0;

while n<=2048 do begin

for i:=0 to 7 do begin

for j:=0 to 7 do read(f,a[i,j]);

readln(f);

end;

for k1:=1 to 7 do

for k2:=1 to 7 do

for k3:=1 to 7 do

if a[k1,a[k2,k3]]<>a[a[k1,k2],k3] then q:=1;

if q<>1 then begin

for i1:=0 to 7 do begin

for i2:=0 to 7 do write(f1,a[i1,i2],' ');

writeln(f1);

end;

inc(r);

writeln(f1);

end;

readln(f);inc(n);q:=0;

end;

close(f);

close(f1);

writeln(r);

writeln('ok');

readln;

end.

Программа 3. Нахождение изоморфных колец:

program izomorf;

uses crt;

const p=1;

type mas=array [0..7,0..7] of integer;

mas1=array [1..8,1..8] of integer;

var a,b:mas;

y:mas1;

i,j,n,i1,i2,r,w,h,g,d:integer;

f,f1,f2:text;

label 1;

procedure alfa(a:mas; var b:mas);

var k1,k2,j1,j2,z1,z2,z3,z4,q3,w3:integer;

begin

for k1:=0 to 7 do begin

b[0,k1]:=0;

b[1,k1]:=a[7,k1];

b[2,k1]:=a[2,k1];

b[3,k1]:=a[5,k1];

b[4,k1]:=a[4,k1];

b[5,k1]:=a[3,k1];

b[6,k1]:=a[6,k1];

b[7,k1]:=a[1,k1];

end;

for k2:=0 to 7 do begin

z1:=b[k2,3];z2:=b[k2,5];

b[k2,5]:=z1;b[k2,3]:=z2;

z3:=b[k2,1];z4:=b[k2,7];

b[k2,7]:=z3;b[k2,1]:=z4;

end;

for j1:=0 to 7 do

for j2:=0 to 7 do begin

if b[j1,j2]=1 then b[j1,j2]:=-1;

if b[j1,j2]=7 then b[j1,j2]:=-7;

end;

for j1:=0 to 7 do

for j2:=0 to 7 do begin

if b[j1,j2]=-1 then b[j1,j2]:=7;

if b[j1,j2]=-7 then b[j1,j2]:=1;

end;

for j1:=0 to 7 do

for j2:=0 to 7 do begin

if b[j1,j2]=5 then b[j1,j2]:=-5;

if b[j1,j2]=3 then b[j1,j2]:=-3;

end;

for j1:=0 to 7 do

for j2:=0 to 7 do begin

if b[j1,j2]=-5 then b[j1,j2]:=3;

if b[j1,j2]=-3 then b[j1,j2]:=5;

end;

for q3:=0 to 7 do begin

for w3:=0 to 7 do write(b[q3,w3],' ');

writeln;

end;

end;

procedure prov(b:mas);

var q,i3,j3,t,m,x,i4,j4:integer;

a1:mas;

begin

t:=1;

reset(f);

rewrite(f1);

for m:=1 to 9 do readln(f);

while t<=p do begin

for i3:=0 to 7 do begin

for j3:=0 to 7 do read(f,a1[i3,j3]);

readln(f);

end;

q:=0;

for i3:=0 to 7 do

for j3:=0 to 7 do begin

if a1[i3,j3]=b[i3,j3] then inc(q); end;

if q<>64 then

{for x:=1 to 9 do readln(f) else}

begin

for i4:=0 to 7 do begin

for j4:=0 to 7 do write(f1,a1[i4,j4],' ');

writeln(f1);

end;

writeln(f1);

end;

readln(f);

inc(t);

end;

end;

begin

clrscr;

assign(f1,'a:\pr.txt');

assign(f2,'a:\iaw.txt');

rewrite(f2);

assign(f,'a:\aw03.txt');

n:=1;

reset(f);

rewrite(f1);

for i:=0 to 7 do begin

for j:=0 to 7 do read(f,a[i,j]);

readln(f);

end;

{if a[i,j]=8 then begin n:=8; goto 1; end;}

alfa(a,b);

readln(f);

w:=0;

for h:=0 to 7 do

for g:=0 to 7 do

if a[h,g]=b[h,g] then inc(w);

if w<>64 then prov(b) else begin

r:=1;

while r<=p do begin

for i1:=1 to 8 do begin

for i2:=1 to 8 do read(f,y[i1,i2]);

readln(f);

end;

for i1:=1 to 8 do begin

for i2:=1 to 8 do write(f1,y[i1,i2],' ');

writeln(f1);

end;

writeln(f1);

readln(f);

inc(r);

end;

end;

for i1:=0 to 7 do begin

for i2:=0 to 7 do write(f2,a[i1,i2],' ');

writeln(f2);

end;

writeln(f2);

reset(f1);

rewrite(f);

d:=1;

while d<=p do begin

for i1:=1 to 8 do begin

for i2:=1 to 8 do read(f1,y[i1,i2]);

readln(f1);

end;

for i1:=1 to 8 do begin

for i2:=1 to 8 do write(f,y[i1,i2],' ');

writeln(f);

end;

writeln(f);

readln(f1);

inc(d);

end;

{readln(f1);

writeln(f);

inc(n);

end;}

close(f);

close(f1);

close(f2);

writeln('ok');

readln;

end.


2. Текст программы поиска колец, имеющих аддитивную группу .

Программа 1. Нахождение всех базисов данной аддитивной группы:

programbasis;

uses crt;

type mas=array [1..3] of integer;

var a,b,c,d,e,f,g:char;

i,j,n,k:integer;

x:mas;

f1,f2:text;

begin

assign(f2,'a:\28.txt');

reset(f2);

assign(f1,'a:\new168.txt');

rewrite(f1);

n:=1;

while n<=28 do begin

for i:=1 to 3 do read(f2,x[i]);

write(f1,x[1],' ',x[2],' ',x[3]);

writeln(f1);

write(f1,x[1],' ',x[3],' ',x[2]);

writeln(f1);

write(f1,x[3],' ',x[1],' ',x[3]);

writeln(f1);

write(f1,x[3],' ',x[2],' ',x[1]);

writeln(f1);

write(f1,x[2],' ',x[3],' ',x[1]);

writeln(f1);

write(f1,x[2],' ',x[1],' ',x[3]);

writeln(f1);

readln(f2);

writeln(f1);

inc(n);

end;

close(f2);

close(f1);

writeln('ok');

readln;

end.

Программа 2. Формирование полугрупп, с учетом ассоциативности:

program assZ2;

uses crt;

type mas=array [0..7,0..7] of integer;

var a,a1:mas;

i1,i2,i3,i4,i5,i6,i7,i8,i9,k1,k2,k3,r:integer;

n:real;

f,f1:text;

procedure sc(var a1:mas);

var i,j:integer;

begin

assign(f1,'a:\z2summ.txt');

reset(f1);

for i:=0 to 7 do begin

for j:=0 to 7 do read(f1,a1[i,j]);

readln(f1);

end;

close(f1);

end;

procedure zap(i1,i2,i3,i4,i5,i6,i7,i8,i9:integer;a1:mas; var r:integer);

var i,j,t1,t2,t3,t4,q:integer;

begin

q:=0;

for t1:=0 to 7 do a[0,t1]:=0;

for t2:=1 to 7 do a[t2,0]:=0;

a[1,1]:=i1; a[1,2]:=i2; a[1,3]:=i3;

a[2,1]:=i4; a[2,2]:=i5; a[2,3]:=i6;

a[3,1]:=i7; a[3,2]:=i8; a[3,3]:=i9;

for t3:=1 to 3 do begin

a[t3,4]:=a1[a[t3,1],a[t3,2]];

a[t3,5]:=a1[a[t3,1],a[t3,3]];

a[t3,6]:=a1[a[t3,2],a[t3,3]];

a[t3,7]:=a1[a[t3,1],a[t3,6]];

end;

for t4:=1 to 7 do begin

a[4,t4]:=a1[a[1,t4],a[2,t4]];

a[5,t4]:=a1[a[1,t4],a[3,t4]];

a[6,t4]:=a1[a[2,t4],a[3,t4]];

a[7,t4]:=a1[a[1,t4],a[6,t4]];

end;

{for i:=0 to 7 do begin

for j:=0 to 7 do write(a[i,j],' ');

writeln;

end;}

for k1:=0 to 7 do

for k2:=0 to 7 do

for k3:=0 to 7 do

if a[k1,a[k2,k3]]<>a[a[k1,k2],k3] then q:=1;

{writeln(q);}

if q=0 then begin

inc(r);

{for i:=0 to 2 do begin

for j:=0 to 2 do write(f,a[i,j],' ');

writeln(f);

end;

writeln(f);

end;

q:=0;}

end;

end;

begin

clrscr;

r:=0;

sc(a1);

assign(f,'a:\z2.txt');

rewrite(f);

{ i1:=6;i2:=6;i3:=6;i4:=6;i5:=6;i6:=6;i7:=6;i8:=6;i9:=6;}

for i1:=0 to 7 do

for i2:=0 to 7 do

for i3:=0 to 7 do

for i4:=0 to 7 do

for i5:=0 to 7 do

for i6:=0 to 7 do

for i7:=0 to 7 do

for i8:=0 to 7 do

for i9:=0 to 7 do begin

zap(i1,i2,i3,i4,i5,i6,i7,i8,i9,a1,r);

writeln(r);

end;

writeln(' ',r);

close(f);

writeln('ok');

readln;

end.

Программа 3. Нахождениеизоморфных колец:

program izomorf;

uses crt;

const p=1;

type mas=array [0..7,0..7] of integer;

mas1=array [1..3] of integer;

var a,b,a1:mas;

y:mas1;

n,j1,i2,t,h,g,d:integer;

f,f1,f2,f3,f8:text;

procedure basis(var y:mas1);

var i:integer;

begin

for i:=1 to 3 do read(f2,y[i]);

readln(f2);

end;

procedure sc(var a:mas);

var i,j:integer;

begin

reset(f1);

for i:=0 to 7 do begin

for j:=0 to 7 do read(f1,a[i,j]);

readln(f1);

end;

end;

{procedure glav(b:mas);

var q,i,j,x,k:integer;

begin

x:=0;k:=1;

reset(f1);

rewrite(f8);

while n<=t do begin

q:=0;

for i:=0 to 7 do begin

for j:=0 to 7 do read(f1,a1[i,j]);

readln(f1);

end;

for i:=0 to 7 do

for j:=0 to 7 do

if a1[i,j]=b[i,j] then inc(q);

if q=64 then begin inc(h);

x:=1;

end

else

for i:=0 to 7 do begin

for j:=0 to 7 do write(f8,a1[i,j],' ');

writeln(f8);

end;

inc(n);

readln(f1);

writeln(f8);

end;

if x=1 then t:=t-2 else t:=t-1;

reset(f8);

rewrite(f1);

while k<=t do begin

for i:=0 to 7 do begin

for j:=0 to 7 do read(f8,a1[i,j]);

readln(f8);

end;

for i:=0 to 7 do begin

for j:=0 to 7 do write(f1,a1[i,j],' ');

writeln(f1);

end;

inc(k);

end;

end;}

procedure newb(y:mas1;a:mas; var b:mas);

var i,j,z1,z2,z3:integer;

begin

for i:=0 to 7 do begin

z1:=a[1,i]; a[1,i]:=a[y[1],i]; a[y[1],i]:=z1;

z2:=a[2,i]; a[2,i]:=a[y[2],i]; a[y[2],i]:=z2;

z3:=a[3,i]; a[3,i]:=a[y[3],i]; a[y[3],i]:=z3;

end;

for j:=0 to 7 do begin

z1:=a[j,1]; a[j,1]:=a[j,y[1]]; a[j,y[1]]:=z1;

z2:=a[j,2]; a[j,2]:=a[j,y[2]]; a[j,y[2]]:=z2;

z3:=a[j,3]; a[j,3]:=a[j,y[3]]; a[j,y[3]]:=z3;

end;

for i:=0 to 7 do

for j:=0 to 7 do begin

if a[i,j]=1 then a[i,j]:=-1;

if a[i,j]=y[1] then a[i,j]:=-y[1];

end;

for i:=0 to 7 do

for j:=0 to 7 do begin

if a[i,j]=-1 then a[i,j]:=y[1];

if a[i,j]=-y[1] then a[i,j]:=1;

end;

for i:=0 to 7 do

for j:=0 to 7 do begin

if a[i,j]=2 then a[i,j]:=-2;

if a[i,j]=y[2] then a[i,j]:=-y[2];

end;

for i:=0 to 7 do

for j:=0 to 7 do begin

if a[i,j]=-2 then a[i,j]:=y[2];

if a[i,j]=-y[2] then a[i,j]:=2;

end;

for i:=0 to 7 do

for j:=0 to 7 do begin

if a[i,j]=3 then a[i,j]:=-3;

if a[i,j]=y[3] then a[i,j]:=-y[3];

end;

for i:=0 to 7 do

for j:=0 to 7 do begin

if a[i,j]=-3 then a[i,j]:=y[3];

if a[i,j]=-y[3] then a[i,j]:=3;

end;

for i:=0 to 7 do

for j:=0 to 7 do b[i,j]:=a[i,j];

{glav(b);}

for i:=0 to 7 do begin

for j:=0 to 7 do write(f,b[i,j],' ');

writeln(f);

end;

writeln(f);

end;

procedure new5(b,a:mas);

var i,j,z1,z2,i1:integer;

begin

for i:=1 to 5 do begin

if i mod 2<>0 then begin

for j:=0 to 7 do begin

z1:=b[2,j]; b[2,j]:=b[3,j]; b[3,j]:=z1;

end;

for j:=0 to 7 do begin

z2:=b[j,2]; b[j,2]:=b[j,3]; b[j,3]:=z2;

end;

for i1:=0 to 7 do

for j:=0 to 7 do begin

if b[i1,j]=3 then b[i1,j]:=-3;

if b[i1,j]=2 then b[i1,j]:=-2;

end;

for i1:=0 to 7 do

for j:=0 to 7 do begin

if b[i1,j]=-3 then b[i1,j]:=2;

if b[i1,j]=-2 then b[i1,j]:=3;

end;

{glav(b);}

for i1:=0 to 7 do begin

for j:=0 to 7 do write(f,b[i1,j],' ');

writeln(f);

end;

writeln(f);

end;

if i mod 2=0 then begin

for j:=0 to 7 do begin

z1:=b[1,j]; b[1,j]:=b[2,j]; b[2,j]:=z1;

end;

for j:=0 to 7 do begin

z2:=b[j,1]; b[j,1]:=b[j,2]; b[j,2]:=z2;

end;

for i1:=0 to 7 do

for j:=0 to 7 do begin

if b[i1,j]=1 then b[i1,j]:=-1;

if b[i1,j]=2 then b[i1,j]:=-2;

end;

for i1:=0 to 7 do

for j:=0 to 7 do begin

if b[i1,j]=-1 then b[i1,j]:=2;

if b[i1,j]=-2 then b[i1,j]:=1;

end;

{glav(b);}

for i1:=0 to 7 do begin

for j:=0 to 7 do write(f,b[i1,j],' ');

writeln(f);

end;

writeln(f);

end;

end;

end;

begin

clrscr;

assign(f1,'a:\vse_z21.txt');

reset(f1);

assign(f2,'a:\28.txt');

reset(f2);

assign(f,'a:\xx.txt');

rewrite(f);

{assign(f3,'a:\ist.txt');

rewrite(f3);

assign(f8,'a:\pom.txt');

rewrite(f8);}sc(a);

for g:=1 to 28 do begin

basis(y);{d:=1;g:=0;}

{while d<=t do begin}

{inc(g);writeln(g);}

{for j1:=0 to 7 do begin

for i2:=0 to 7 do write(f3,a[j1,i2]);

writeln(f3);

end;

writeln(f3);}

newb(y,a,b);

{n:=1;}

new5(b,a);

{inc(d);}

end;

close(f);

close(f1);

close(f2);

{close(f3);}

{close(f8);}

{ writeln(h); }

writeln('ok');

readln;

end.