Дипломная работа: Восьмиэлементные ассоциативные кольца
Название: Восьмиэлементные ассоциативные кольца Раздел: Рефераты по математике Тип: дипломная работа | |||||||||||||||||||
Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования Вятский Государственный Гуманитарный Университет Математический факультет Кафедра алгебры и геометрии Выпускная квалификационная работа Восьмиэлементные ассоциативные кольца Выполнил: студент Vкурса математического факультета Касьянов А.А. _________________________ Научный руководитель: д.ф.-м.н., профессор, зав. кафедры алгебры и геометрии Вечтомов Е.М. _________________________ Рецензент: к.ф.-м.н., доцент Чермных В.В. _________________________ Допущен к защите в ГАК Зав. кафедрой________________ Вечтомов Е.М. « »___________ Декан факультета_____________ Варанкина В.И. « »___________
Содержание Введение........................................................................................ 3 §1. Абелевы группы по сложению.............................................. 5 §2. Кольца, образованные аддитивной группой §3. Кольца, образованные аддитивной группой Библиографический список........................................................ 11 Приложение................................................................................ 12 Введение Понятие кольца появилось в математике в конце XIX века. Первыми примерами ассоциативных колец были числовые кольца, т.е. подкольца поля комплексных чисел и кольца классов вычетов целых чисел. Как самостоятельная область алгебры, теория ассоциативных колец оформилась к началу XX века. Из этой теории выделились в самостоятельные области алгебры теории коммутативных колец, тел, алгебр. Дадим основные понятия, которыми мы будем пользоваться в дальнейшем. Аддитивной абелевой группой 1) сложение ассоциативно, т.е. 2) в G
существует нейтральный элемент 0 (ноль) такой, что 3) в G
для любого элемента существует противоположный элемент, т.е. 4) Сложение коммутативно: Мультипликативной полугруппой Кольцом называется алгебра 1) относительно сложения кольцо является абелевой группой; 2) относительно умножения – это полугруппа; 3) выполняются законы дистрибутивности: Данная дипломная работа представляет собой изложение методики изучения определенных конечных алгебр. В настоящее время изучение конечных алгебр производится с помощью компьютера. Задача данной дипломной работы состоит в отыскании всех восьмиэлементных ассоциативных колец. Для этого мы сначала находим все абелевы группы из восьми элементов, а затем для каждой такой группы строим соответствующие полугруппы по умножению, и получаем искомые кольца. Всего абелевых групп по сложению, с точностью до изоморфизма, будет три: В результате получаем, что всего существует с точностью до изоморфизма 392 восьмиэлиментных кольца. Для работы с абелевыми группами и полугруппами по умножению, а также для представления их в компьютере, будем пользоваться таблицами Кэли. Таблицей Кэли называется квадратная таблица произвольной алгебры, задаваемая для определённой бинарной операции. Заглавная строка таблицы заполняется в некотором порядке символами, обозначающими различные элементы, теми же символами и в том же порядке заполняется главный столбец. Если алгебра обладает нейтральным элементом, то этот элемент, как правило, помещается на первом месте. Если на i-м месте в заглавном столбце стоит символ ai , и на j-м месте в заглавной строке – символ aj , то на пересечении i-ой строки и j-го столбца записывается символ, обозначающий результат операции элементов ai и aj . В нашем случае мы не будем писать заглавные строки таблицы, подразумевая, что элементы пронумерованы числами от 0 до 7. Мы будем использовать таблицы Кэли без заглавных строки и столбца. §1. Абелевы группы по сложению Как уже было сказано выше, всего восьмиэлементных аддитивных абелевых групп с точностью до изоморфизма три: Представим каждую из таких групп в виде таблиц Кэли. Для группы
Таким образом, группы будут иметь следующий вид:
Затем, для каждой такой группы, мы будем строить полугруппы по умножению, пользуясь также таблицами Кэли. Для группы
В случае с группой
Колец с абелевой группой по сложению §2. Кольца, образованные аддитивной группой Для нахождения колец, с абелевой группой по сложению 1) Находим все полугруппы по умножению, так, чтобы выполнялась дистрибутивность; 2) Проверяем каждую полугруппу на ассоциативность, и, соответственно, ненужные вычеркиваем; 3) Находим изоморфные кольца следующим образом: а) берем первую полугруппу по умножению и действуем на нее автоморфизмами для аддитивной абелевой группы; б) находим получившиеся полугруппы среди остальных, и вычеркиваем их из общего списка; в) затем берем следующую не вычеркнутую полугруппу и проделываем операции а)-б). Поясним пункт а). Пусть f
– автоморфизм группы Таким образом, мы получим 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). Принцип действия данной программы, аналогичен принципу, описанному в предыдущем параграфе. Добавляется только пункт по нахождению всех базисов данной аддитивной группы. Всего колец с аддитивной группой 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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. |