Главная > Математика > Конкретная математика. Основание информатики
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

4.7 НЕЗАВИСИМЫЕ ОСТАТКИ

Одно из важнейших приложений теории сравнений — система счисления в остатках, в которой целое число х представлено набором его остатков (или вычетов) по взаимно простым модулям:

Знание ничего не позволяет сказать про х, однако все же позволяет установить величину где равно произведению . А поскольку в практических применениях зачастую известно, что х лежит в некотором диапазоне, то можно узнать все про х, если известна величина — достаточно большое число.

Рассмотрим, например, один из случаев системы счисления в остатках, когда имеется только два модуля —3 и 5:

Все упорядоченные пары различны, поскольку тогда и только тогда, когда

Согласно свойствам сравнений можно складывать, вычитать и умножать обе компоненты независимо. К примеру, если нужно умножить на по модулю 15, то вычисляются Ответом будет следовательно должно равняться 1. (Безусловно, так оно и есть.)

Сей принцип независимости полезен при вычислениях на компьютере в силу того, что разные компоненты можно обрабатывать раздельно (скажем, на разных компьютерах). Если в качестве каждого модуля тк выбраны различные простые числа ,

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

А в ряде случаев можно выполнять и деление. Предположим, например, что нужно вычислить точную величину некоторого большого определителя, составленного из целых чисел. Результатом будет некоторое целое число а границы для можно задать, исходя из размера его элементов. Однако все известные способы быстрого вычисления определителей требуют деления, а это приводит к дробям (и потере точности, если довольствоваться двоичными приближениями). Выход заключается в вычислении по ряду больших простых чисел — можно спокойно делить по модулю р, если только делитель не окажется кратным Это случается крайне редко, но если все-таки случается, то можно выбрать другое простое число. В конечном счете, знание для достаточно многих простых модулей позволяет установить величину

Но мы еще не объяснили, как от заданного набора остатков перейти к . Мы показали, что такой переход теоретически возможен, но сами вычисления могут оказаться столь внушительны, что практически сведут на нет всю эту затею. К счастью, имеется довольно несложный способ уладить дело, который можно проиллюстрировать на примере набора из нашей таблички. Ключевая идея состоит в разрешении данной проблемы для двух случаев (1,0) и (0,1); действительно, если то поскольку сравнения можно перемножать и складывать.

В нашем случае просмотр таблички дает как найти а и когда модули огромны? Иначе говоря, если то где тот путь, который приведет к числам а и удовлетворяющим каждому из уравнений

И опять на выручку приходит (4.5): с помощью алгоритма Евклида можно найти числа такие, что

Поэтому можно взять при необходимости приводя их по

При больших модулях для сведения вычислений к минимуму бывают необходимы и другие уловки; подробности выходят

за рамки этой книги, но их можно найти в книге [140, разд. 4.3]. Переход от остатков к соответствующим исходным числам — операция в принципе выполнимая, но достаточно медленная, так что выигрыша во времени выполнения можно достичь лишь при условии, что удается выполнить сразу некоторую последовательность операций в системе счисления в остатках перед обратным переходом.

Попробуем подкрепить эти сравнительные идеи решением небольшой задачи: сколько решений имеет сравнение

если два решения такие, что считать одинаковыми?

В соответствии с установленными ранее общими правилами, вначале следует рассмотреть случай, когда та равно степени простого числа при Тогда сравнение может быть записано в виде

так что должно делить либо либо либо и то и другое. Но не может делить как так и если только не равно 2 (оставим этот случай напоследок). Если же то или поэтому имеется ровно два решения:

Случай несколько отличается. Если то одно из чисел или делится на 2 (но не на 4), а тогда другое число должно делиться на Это означает, что при к 3 имеется четыре решения, а именно, (Например, если то этими четырьмя решениями будут — полезно знать, что квадрат любого нечетного числа имеет вид )

Итак, тогда и только тогда, когда для всех простых чисел из канонического разложения на множители. Каждое простое число не зависит от других, и для (кроме случая имеется ровно две возможности. Поэтому если имеет ровно различных простых делителей, то общее число решений сравнения равно (за исключением поправки на четное . В общем случае точное число решений равно

Так, имеется четыре „квадратных корня из единицы по модулю а именно 1, 5, 7 и 11. При данная четверка — это числа, остатки которых по равны ±1, а именно (1,1), (1,4), (2,1) и (2,4) в системе счисления в остатках. В обычной (десятичной) системе счисления этими решениями будут 1, 4, 11 и 14.

<< Предыдущий параграф Следующий параграф >>
Оглавление