
- •1.1.2.Операции над множествами
- •1.1.3. Векторы и прямые произведения множеств
- •1.1.4. Теорема о мощности прямого произведения множеств. Принцип математической индукции
- •1.1.5. Соответствия между множествами и отображение множеств
- •1.1.6. Взаимно однозначные соответствия и мощности множеств
- •1.1.7. Отношения на множествах
- •Задания для самостоятельной работы к разд.1.1
- •1.2. Алгебры. Алгебраические системы. Модели. Фундаментальные алгебры. Примеры алгебр и алгебраических систем.
- •1.2.1. Множества с бинарными операциями
- •1.2.2. Группа подстановок
- •1.2.3. Кольцо вычетов
- •1.2.4. Поле вычетов
- •Задания для самостоятельной работы к разд.1.2
- •Вопросы для повторения
- •Резюме по теме
1.2.4. Поле вычетов
Как было показано в разд.1.2.3, полная система вычетов <Zn,*,+>является коммутативным кольцом.
Исследуем далее мультипликативную полугруппу <Zn,*>.
Единицей мультипликативной полугруппы является класс 1, поскольку 1*a=a*1=(1a) mod n=a.
Существуют пары обратных элементов. Например, (n-1)-1=(n-1), поскольку (n-1)*(n-1)=(n2-2n+1) mod n =1.
Однако делители нуля не имеют обратных элементов. Действительно, пусть n – составное число и a,b – делители нуля: a*b=b*a=0; a¹0, b¹0; и пусть a имеет обратный элемент c: a*c=c*a=1. Тогда b=b*1=b*(a*c)=(b*a)*c=0*c=0, что противоречит предположению b¹0.
Следовательно, мультипликативная полугруппа <Zn,*> не образует группу и полная система вычетов не является полем.
Однако, если ввести ограничение, что n – простое число, то мультипликативная полугруппа <Zn,*> без нуля образует коммутативную (абелеву) группу и полная система вычетов <Zn,*,+> будет является полем.
Так как операция умножения на множестве Zn коммутативна, то для доказательства того, что <Zn,*,+> является полем требуется доказать утверждение: если n – простое число, то для любого aÎ{1,2,…,n-1}, (a¹0), существует bÎ{1,2,…,n-1} (b¹0), такое что a*b=b*a=(ab) mod n =1.
Доказательство. Рассмотрим n-1 чисел a,2a,3a,…,(n-1)a, где aÎ{1,2,…,n-1}.
Поскольку a<n, a¹0 и множитель при a тоже меньше n, то произведение двух чисел, которые оба отличны от нуля и меньше простого n, на n не делится. Поэтому все эти числа лежат вне нулевого класса.
Если два числа sa и ta, s,tÎ{1,2,…,n-1} лежат в одном классе (sa=in+k, ta=jn+k), тогда их разность sa-ta=a(s-t) должна делится на n (sa-ta=in+k-jn-k=in-jn). Но поскольку оба сомножителя a и (s-t) меньше простого n, это не возможно. Поэтому никакие два числа a,2a,3a,…,(n-1)a не лежат в одном классе.
Итак, ни одно из чисел a,2a,3a,…,(n-1)a не лежит в классе 0, и все эти числа лежат в разных классах 1,2,3,…,n-1, поэтому в каждом из этих классов лежит ровно одно число из чисел a,2a,3a,…,(n-1)a. Значит и в классе 1 лежит некоторое единственное число ba, 1£b£(n-1). Это значит, что a*b=b*a=(ab) mod n = 1; a,bÎ{1,2,…,n-1}, (a¹0,b¹0), что и требовалось доказать.
Таким образом, в случае простого n полная система вычетов <Zn,*,+> является полем.
В этом случае можно ввести операцию деления, кроме деления на нуль
a/b=c, bc mod n =a, b¹0.
Результаты операций сложения, умножения, вычитания и деления полной системы вычетов <Z3,*,+> представлены в табл.1.5 - 1.8 соответственно. Результаты операций сложения, умножения, вычитания и деления полной системы вычетов <Z5,*,+> представлены в табл.1.9-1.12 соответственно.
Задания для самостоятельной работы к разд.1.2
Реализуйте на языке высокого уровня алгоритм выполнения операций сложения, умножения и вычитания в полной системе вычетов. Получите результаты операций сложения, умножения и вычитания в различных полных системах вычетов. Результаты для систем <Z4,*,+>, <Z3,*,+> и <Z5,*,+> сравните с результатами, представленными в табл.1.2 - 1.7, 1.9-1.11.
Алгоритм выполнения операций сложения, умножения и вычитания в полной системе вычетов представлен на рис. 1.5. Здесь и далее при записи алгоритмов используются следующие обозначения:
- оператор присваивания.
- оператор транспозиции, т.е. выполнение оператора ab при a=3 и b=7 приводит к результату a=7, b=3.
-
составной оператор.
for i=начальное значение to конечное значение do оператор – оператор цикла с фиксированным числом шагов, значение счетчика i увеличивается на единицу.
for i=начальное значение downto конечное значение do оператор – оператор цикла с фиксированным числом шагов, значение счетчика i уменьшается на единицу.
while условие do оператор – оператор цикла с предусловием.
вывести(список вывода) – оператор вывода.
{} – комментарий.
Реализуйте на языке высокого уровня алгоритм выполнения операции деления в полной системе вычетов. Получите результаты операции деления в различных полных системах вычетов. Результаты для систем <Z3,*,+> и <Z5,*,+> сравните с результатами, представленными в табл.1.8, 1.12.
Алгоритм выполнения операции деления в полной системе вычетов представлен на рис.1.6.