Там же доказывается, что время выполнения алгоритма Евклида оценивается равенством
, где L(a) и L(b) – число цифр в а и b соответственно. В правом столбце этого алгоритма каждый остаток выражен через . Надо вычислить и . Очевидно, что и . Сравнивая обе части на i-м шаге, получимоткуда получается следующая индуктивная процедура вычисления
и :Пример. Применим расширенный алгоритм Евклида к числам а = 342, b = 612. Весь алгоритм представим в виде следующей таблицы.
Расширенный алгоритм Евклида
Номер итерации | q | A0 | a1 | x0 | x1 | Y0 | y1 |
0 | - | 342 | 612 | 1 | 0 | 0 | 1 |
1 | 0 | 612 | 342 | 0 | 1 | 1 | 0 |
2 | 1 | 342 | 270 | 1 | -1 | 0 | 1 |
3 | 1 | 270 | 72 | -1 | 2 | 1 | -1 |
4 | 3 | 72 | 54 | 2 | -7 | -1 | 4 |
5 | 1 | 54 | 18 | -7 | 9 | 4 | -5 |
6 | 3 | 18 | 0 | 9 | -34 | -5 | 19 |
Заметим, что равенство
выполняется на каждом шаге итерации. Алгоритм выдаёт d = 18, x = 9, y = -5 и тогда 18=342∙9 + 612∙(-5).Фундаментальным положением, лежащим в основе модулярного представления чисел, является китайская теорема об остатках. Эта теорема формулируется следующим образом.
Теорема. Пусть
- попарно взаимно-простые числа, больше 1, и пусть . Тогда существует единственное неотрицательное решение по модулю Р следующей системы сравнений: …, (3.1)Другими словами, отображение, которое каждому целому числу х,
, ставит в соответствие кортеж , где , , является биекцией кольца на декартово произведение колец .Существует много различных доказательств этой теоремы. Приведём конструктивное доказательство китайской теоремы об остатках.
Доказательство. Найдём число х,
, удовлетворяющее одновременно всем сравнениям, указанным в теореме. Систему сравнений будем решать присоединением на каждом шаге нового сравнения. Первое сравнение справедливо для всякого целого числа х вида где q1 – произвольное целое число. Для нахождения q1 подставим значение х во второе сравнение системы, после чего получим откуда где - обратный мультипликативный элемент к по модулю . Такой элемент существует, так как Найденное таким образом q1 можно записать в видедля некоторого целого числа
. Подставив значение в выражениеТеперь первые два сравнения могут быть заменены на одно
(3.2)Применим теперь описанную процедуру к сравнению (3.2) и к одному из оставшихся сравнений системы (3.1). Повторяя этот процесс k – 1 раз, мы в конечном итоге найдём число х, удовлетворяющее всем сравнениям системы (3.1).
Докажем единственность решения системы (3.1). Воспользуемся методом от противного. Предположим, что существует другое решение
системы (3.1). Тогдадля всех
. Вычитая почленно из первого сравнения второе, получим истинное сравнение откуда следует, что . Но тогда , следовательно, , так как . Этим завершается доказательство китайской теоремы об остатках.Пример. Решим систему сравнений
Решение. Так как модули 13, 15, 19 попарно взаимно простые числа, то данная система имеет единственное решение по модулю
. Сравнение соответствует диофантовому уравнению , где . Заменяя х во втором сравнении системы на , получаем , т. е. . К числу 13 обратным мультипликативным элементом по модулю 15 является число 7. Умножая последнее сравнение на 7 и, переходя в нём к вычетам по модулю 15, получим . Таким образом, . Следовательно, , при этом все числа вида являются решениями первых двух сравнений данной системы. Подставим в третье сравнение вместо х полученное выше значение или . Так как (5, 19) = 1, то или . Итак, , то есть х = 274.Исходя из конструктивного доказательства китайской теоремы об остатках, можно записать алгоритм решения системы линейных сравнений рассматриваемого вида следующим образом (греко-китайский алгоритм).