Главная страница

Судопланов. Судоплатов С.В., Овчинникова Е.В. Дискретная математика 2016. Редакционная коллегия серии учебники нгту


Скачать 2.01 Mb.
НазваниеРедакционная коллегия серии учебники нгту
АнкорСудопланов
Дата05.06.2022
Размер2.01 Mb.
Формат файлаpdf
Имя файлаСудоплатов С.В., Овчинникова Е.В. Дискретная математика 2016.pdf
ТипУчебники
#571403
страница16 из 36
1   ...   12   13   14   15   16   17   18   19   ...   36
az ≡ b (mod m). Напротив, если ax ≡ az ≡ b (mod m), то ax − az ≡ b − b ≡ 0
(mod m), и значит, m | a(x − z). Тогда m/d делит x − z, и следовательно,
x ≡ z (mod m/d). ¤
Пример 3.8.1. Найдем решение уравнения 270x ≡ 36 (mod 342). По ал- горитму Евклида получим (5) · 270 + 4 · 342 = 18 = (270, 342) и 18 | 36.
По теореме 3.8.1 существует единственное решение данного уравнения по мо- дулю 19 = 342/18. Для нахождения этого решения умножим равенство
(5) · 270 + 4 · 342 = 18 на 2 = 36/18 и получим (10) · 270 + 8 · 342 = 36,
откуда следует, что (10) — одно из решений уравнения по модулю 342. Так как 9 ≡ −10 (mod 19), то 9 — единственное решение по модулю 19. Общее решение уравнения представляется в виде x = 9 + 19k. ¤
Частным случаем теоремы 3.8.1 является
Следствие 3.8.2. Уравнение ax ≡ 1 (mod m) тогда и только тогда
имеет решение, когда (a, m) = 1. Решение a
1
(mod m) единственно по мо-
дулю m и является обратным к a элементом по модулю m. ¤
Пример 3.8.2. Уравнение 2x ≡ 1 (mod 26) не имеет решений, поскольку
(2, 26) = 2. ¤
Рассмотрим теперь задачу решения системы линейных уравнений по мо- дулю некоторого числа m. При этом возникает изоморфизм кольца Z
M
и декартова произведения колец Z
m
1
, Z
m
2
, . . ., Z
m
k
, где M = m
1
m
2
. . . m
k
,
(m
i
, m
j
) = 1, i 6= j. Прежде чем формулировать изоморфизм в общем случае,
рассмотрим следующий

3.8. ЛИНЕЙНЫЕ УРАВНЕНИЯ ПО МОДУЛЮ m
107
Пример 3.8.3. Кольцо Z
6
изоморфно декартову произведению колец Z
2
и Z
3
: Z
6

= Z
2
× Z
3
, M = 6, m
1
= 2, m
2
= 3. Шести элементам кольца Z
6
со- ответствуют пары (0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2). Арифметическим опе- рациям в Z
6
соответствуют операции над парами, выполняемые покоорди- натно: (x
1
, x
2
) + (y
1
, y
2
) = (x
1
+ y
1
, x
2
+ y
2
), (x
1
, x
2
) · (y
1
, y
2
) = (x
1
· y
1
, x
2
· y
2
).
Например, (0, 2)·(1, 2) = (0, 1), где умножение 0·1 выполняется по модулю 2,
а умножение 2 · 2 — по модулю 3. ¤
Теорема 3.8.3 (китайская теорема об остатках). Пусть m
1
, m
2
,
. . . , m
k
— попарно взаимно простые целые числа больше 1, M = m
1
m
2
. . . m
k
;
a
1
, a
2
, . . . , a
k
— целые числа, 0 6 a
i
< m
i
, i ∈ {1, 2, . . . , k}. Тогда существует
единственное неотрицательное решение по модулю M следующей системы
уравнений:
x ≡ a
1
(mod m
1
), x ≡ a
2
(mod m
2
), . . . , x ≡ a
k
(mod m
k
).
Отображение, которое каждому целому числу x (0 6 x 6 M − 1) ставит
в соответствие строку (a
1
, a
2
, . . . , a
k
), где x ≡ a
i
(mod m
i
) (i = 1, 2, . . . , k),
является изоморфизмом кольца Z
M
на кольцо Z
m
1
× Z
m
2
× . . . × Z
m
k
.
Доказательство. Нужно найти число x (0 6 x 6 M − 1), удовле- творяющее всем сравнениям x ≡ a
i
(mod m
i
), i = 1, 2, . . . , k. Будем решать уравнения по два одновременно. Рассмотрим сначала первые два сравне- ния. Первое сравнение x ≡ a
1
(mod m
1
) справедливо для всякого x вида
x = a
1
+ m
1
q, q ∈ Z. Для нахождения q подставим значение x во второе сравнение x ≡ a
2
(mod m
2
). Имеем x = a
1
+ m
1
q ≡ a
2
(mod m
2
), откуда
q ≡ (m
1
)
1
(a
2
− a
1
) (mod m
2
). Таким образом, q = (m
1
)
1
(a
2
− a
1
) + rm
2
для некоторого r. Подставив значение q в выражение x = a
1
+ m
1
q, получим, что решение x первых двух уравнений представляется в виде x = a
12
+ r(m
1
m
2
)
для некоторого r. Теперь первые два сравнения можно заменить на од- но сравнение x ≡ a
12
(mod m
1
m
2
). Применим описанную выше процедуру к сравнению x ≡ a
12
(mod m
1
m
2
) и сравнению, которое первоначально было третьим, и будем повторять этот процесс, пока не найдем число x, удовле- творяющее всем сравнениям.
Для доказательства единственности предположим, что существует x
0
(0 6 x
0
6 M − 1) такой, что x
0
≡ a
i
(mod m
i
) для любого i. Тогда
x − x
0
0 (mod m
i
) для всех i, откуда следует, что m
i
| (x − x
0
) для любого
i. Тогда M | (x − x
0
) и, поскольку |x − x
0
| < M , x = x
0
. ¤

108
Глава 3. ЧИСЛОВЫЕ СИСТЕМЫ
Пример 3.8.4. Решим систему уравнений
x ≡ 1 (mod 2), x ≡ 2 (mod 5), x ≡ 5 (mod 7).
Из первого уравнения следует, что x = 1+2q. Чтобы вычислить q, подста- вим x во второе уравнение: 1 + 2q ≡ 2 (mod 5) или 2q ≡ (2 1) (mod 5). Так как 2
1
3 (mod 5), то q ≡ 2
1
(2 1) (mod 5) 3 (mod 5) или q = 3 + 5r
для некоторого r. Следовательно, решением первых двух уравнений явля- ется x = 1 + 2(3 + 5r) = 7 + 2 · 5r, т. е. x ≡ 7 (mod 2 · 5).
Осталось решить систему уравнений x ≡ 7 (mod 2 · 5) и x ≡ 5 (mod 7).
Имеем x = 7 + 2 · 5q ≡ 5 (mod 7) или 2 · 5q ≡ (5 7) ≡ −2 5 (mod 7). Так как 10
1
3
1
5 (mod 7), то q ≡ 5 · 5 (mod 7) 4 (mod 7) или q = 4 + 7r
для некоторого r. Следовательно, решением трех уравнений является число
x = 7 + 2 · 5(4 + 7r) или x ≡ 47 (mod 2 · 5 · 7).
Отметим, что 47 = 1 + 3 · (2) + 4 · (2 · 5), где коэффициенты 3 и 4 являются значениями q. Заметим также, что при изоморфизме Z
2·5·7

= Z
2
× Z
5
× Z
7
число 47 соответствует данной тройке (1, 2, 5). ¤
В общем случае решение системы k уравнений
x ≡ a
1
(mod m
1
), x ≡ a
2
(mod m
2
), . . . , x ≡ a
k
(mod m
k
)
представляется в виде
x = q
1
+ q
2
· m
1
+ q
3
· (m
1
· m
2
) + . . . + q
k
· (m
1
· m
2
· . . . · m
k−1
),
где 0 6 q
i
< |m
i
|, q
1
— остаток от деления a
1
на m
1
Опишем применение китайского алгоритма к задаче о безопасном хране-
нии ключа. Пусть K ∈ Z — ключ, который необходимо сохранить. При этом требуется, чтобы любые L человек из тех k (k > L), которые получили ин- формацию о ключе, могли бы вместе восстановить ключ, но ни одна группа из L − 1 человек или менее не могла этого сделать.
Для решения этой задачи выберем такое множество целых чисел
{p, d
1
, d
2
, . . . , d
k
}, что:
1) p > K;
2) d
1
< d
2
< . . . < d
k
;
3) числа p, d
1
, d
2
, . . . , d
k
попарно взаимно просты;
4) d
1
· d
2
· . . . · d
k
> p · d
k−L+2
· d
k−L+3
· . . . · d
k
Пункт 4 означает, что произведение L наименьших чисел d
i
больше, чем произведение p и L − 1 наибольших чисел d
i
. Положим D ­ d
1
· d
2
· . . . · d
k

3.9. ТОЧНЫЕ ВЫЧИСЛЕНИЯ
109
Тогда D/p больше, чем произведение любых L − 1 чисел d
i
. Выберем теперь целое число r ∈ [0, (D/p) 1] так, чтобы число K
0
= K + r · p попало в интервал [D/p, D − 1]. Между разными людьми распределяются числа
K
i
≡ K
0
(mod d
i
), i = 1, 2, . . . , k.
Пример 3.8.5. Предположим, что требуется закодировать ключ K = 5
и при этом L = 2, k = 3, p = 7, d
1
= 11, d
2
= 13, d
3
= 17. Имеем
D = d
1
· d
2
= 11 · 13 = 143 > 119 = 7 · 17 = p · d
3
, как и требуется. Выберем число r ∈ [0, (143/7) 1] = [0, 19] так, что K
0
= K + r · p ∈ [D/p, D− 1],
т. е. 5+ 7r ∈ [20, 142]. Возьмем, например, r = 3, тогда K
0
= 26. Распре- деляемые числа равны
K
1
= 26 (mod 11) = 4,
K
2
= 26 (mod 13) = 0,
K
3
= 26 (mod 17) = 9. По любым двум из этих чисел можно восстановить K.
Например, для K
1
и K
3
имеем K
0
4 (mod 11), K
0
9 (mod 17). Используя китайский алгоритм, находим K
0
= 26, откуда K = K
0
− r · p = 5. ¤
§ 3.9.
Точные вычисления,
использующие модулярную арифметику
Используя результаты предыдущих параграфов, опишем способ выпол- нения точных арифметических действий с (большими) целыми числами, при котором целые числа представляются в виде кортежей остатков от деления данных чисел на попарно взаимно простые модули, а выполнение арифме- тических операций сводится к выполнению соответствующих операций над остатками.
Рассмотрим сначала случай одного модуля. Пусть дано выражение
f (x
1
, x
2
, . . . , x
h
), являющееся термом сигнатуры Σ = {+
(2)
, −
(1)
, ·
(2)
, (()
1
)
(1)
},
и требуется вычислить значение f (i
1
, i
2
, . . . , i
h
), где i
1
, i
2
, . . . , i
h
Z. Три- виальный подход состоит в непосредственном вычислении значения терма.
Однако промежуточные результаты могут не быть целыми числами (напри- мер, 1/3 = 0.333 . . . = 0.(3)), и отбрасывание цифр или округление может привести к неточности окончательного результата. Во избежание этого со- поставим вычислению значения f (i
1
, i
2
, . . . , i
h
) над Z соответствующее вы- числение значения f (i
0
1
, i
0
2
, . . . , i
0
h
) в поле Z
m
по обходному пути, показанному на рис. 3.2.
Вместо вычисления f (i
1
, i
2
, . . . , i
h
) над Z мы сначала получаем эквива- лентное выражение f
m
= f (i
0
1
, i
0
2
, . . . , i
0
h
) над Z
m
для некоторого простого m,
где i
0
j
≡ i
j
(mod m), j = 1, 2, . . . , h. Затем вычисляем выражение f
m
над Z
m

110
Глава 3. ЧИСЛОВЫЕ СИСТЕМЫ
Z
Выражение (f )
−−−−→
Z
m
Эквивалентное выражение (f
m
)


y
Вычисление над Z


y
Вычисление над Z
m
Результат (res) ←−−−− Эквивалентный результат (res
m
)
Рис. 3.2
и получаем эквивалентный результат res
m
, где res
m
res (mod m). В за- ключение отображаем res
m
обратно в множество целых чисел.
Отметим, что отношение res res
m
(mod m) не определяет однозначно окончательный результат res. Например, условие x ≡ 7 (mod 13) означает,
что x может быть равным 7, 20 и т. д. Однако если мы знаем, что 0 < x < 13,
то x может быть равным только 7. Для того чтобы однозначно определить res, нужно иметь априорную оценку его величины. Эта оценка используется в качестве модуля m, и все операции выполняются в кольце Z
m
. Если име- ется оценка на величину res, то ищем наименьшее неотрицательное решение уравнения res res
m
(mod m). Если же мы имеем оценку на |res|, то ищем наименьшее по абсолютной величине решение.
Сложности с данным методом возникают при выполнении операции деле- ния. Как уже отмечалось, в случае, когда p — простое число, кольцо hZ; +, ·i
является конечным полем. Поскольку обратный элемент к любому ненуле- вому элементу всегда существует, деление по модулю p определяется следу- ющим образом:
a
b
(mod p) = a · (b
1
(mod p)) (mod p),
где b
1
(mod p) — элемент, обратный к элементу b по модулю p, который будет также обозначаться просто через b
1
. Частное двух целых чисел в Z
p
также является целым числом, даже если b не делит a в Z.
Пример 3.9.1. 3/4 (mod 11) 3 · 4
1
(mod 11) 3 · 3 (mod 11) 9.
Таким образом, 3/4 9 (mod 11). Число, полученное в этом примере и рас- сматриваемое как промежуточный результат, имеет смысл для дальнейших вычислений, поскольку (3/4) · 4 (mod 11) 9 · 4 (mod 11) 3 (mod 11). ¤
Предположим теперь, что модуль p ограничивает окончательный результат res. Если res не является целым числом, принадлежащим Z
p
,

3.9. ТОЧНЫЕ ВЫЧИСЛЕНИЯ
111
то res
p
6= res, и для того чтобы получить последнее число, требуется допол- нительная информация (которую мы проиллюстрируем ниже двумя при- мерами). Если res лежит в Z
p
, то res
p
= res. Таким образом, арифметика одного модуля может быть использована для выполнения последователь- ности точных арифметических операций над целыми числами в Z
p
, даже если эта последовательность включает операции деления. Трудности могут возникнуть лишь при интерпретации результатов.
Если вычисляемое выражение может быть положительным или отри- цательным, необходимо использовать симметричную систему с носителем
{−
p−1 2
, . . . , −2, −1, 0, 1, 2, . . . ,
p−1 2
}, которая изоморфна неотрицательной си-
стеме с носителем {0, 1, . . . , p − 1}. Изоморфизм ϕ между этими системами осуществляется по формуле
ϕ(k) =
(
k,
если 0 6 k 6
p−1 2
,
k + p, если
p−1 2
6 k < 0.
Пример 3.9.2. На рис. 3.3 показано отображение ϕ при p = 11. Урав- нение x ≡ 17 (mod 11) имеет наименьшее неотрицательное решение x = 6
и наименьшее по абсолютной величине решение x = 5. ¤
При выполнении арифметических операций удобно сначала отобразить данные в неотрицательное множество, выполнить в нем все операции, а за- тем отобразить обратно в симметричное множество.
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
¡
0 1 2 3 4 5 6 7 8 9 10
-5 -4 -3 -2 -1 0 1 2 3 4 5
Неотрицательное множество множество
Симметричное
Рис. 3.3

112
Глава 3. ЧИСЛОВЫЕ СИСТЕМЫ
Пример 3.9.3. Выполним точные арифметические операции в Z
11
для вычисления
1   ...   12   13   14   15   16   17   18   19   ...   36


написать администратору сайта