Система остаточных классов
Система остаточных классов (СОК) (от англ. Residue number system, другое название Модулярная арифметика) - непозиционная система счисления. Представление числа в системе остаточных классов основано на понятии вычета и китайской теореме об остатках. СОК определяется набором взаимно простых модулей с произведением так, что каждому целому числу из отрезка ставится в соответствие набор вычетов , где
- …
При этом китайская теорема об остатках гарантирует однозначность представления для чисел из отрезка .
Содержание
Преимущества системы остаточных классов
- В СОК арифметические операции (сложение, вычитание, умножение, деление) выполняются покомпонентно, если про результат известно, что он является целочисленным и также лежит в .
Формула для сложения: , где
- ...
Аналогично выполняются вычитание, умножение и деление.
Недостатки системы остаточных классов
- Возможность представления только ограниченного количества чисел.
- Отсутствие эффективных алгоритмов для сравнения чисел, представленных в СОК. Сравнение обычно осуществляется через перевод аргументов из СОК в смешанную систему счисления по основаниям .
- Сложные реализации алгоритмов перевода из позиционной системы счисления в СОК и обратно.
Применение системы остаточных классов
СОК широко используется в микроэлектронике в специализированных устройствах [ЦОС], где требуется:
- контроль за ошибками, за счет введения дополнительных избыточных модулей
- высокая скорость работы, которую обеспечивает параллельная реализация базовых арифметических операций
Основные определения
Система остаточных классов используется для представления больших чисел , обеспечивая таким образом более эффективные вычисления. В основе данного представления лежит изоморфизм , который доставляет китайская теорема об остатках.
Системой остаточных классов называют произвольное конечное множество , такое что , где . Пусть задана произвольная система остаточных классов и положим, что . Тогда в силу китайской теоремы об остатках имеем эпиморфизм колец , т.ч. , который индуцирует канонический изоморфизм .
Выполнение арифметических операций
С использованием системы остаточных классов можно выполнять основные арифметические операции.
Сложение и вычитание
Пусть - произвольные натуральные числа. Положим, что представляются в виде системы остаточных классов как и соответственно. Формально, . В силу того, что - изоморфизм будем иметь . Обозначим через остаток от деления на . Тогда представляется в виде системы остаточных классов как .
Умножение
- остаток от деления на . Тогда представляется в виде системы остаточных классов как .
Деление
Деление на с использованием системы остаточных классов можно выполнять не всегда. Положим, что - остаток от деления на . На языке теории колец это означает, что обратим и - обратный. Тогда представляется в виде .
Факторизация полупростых чисел
Пусть - полупростое число. Рассмотрим систему остаточных классов , где — -е простое число.
Численный пример
Пример
Рассмотрим СОК с базисом . В этом базисе можно взаимооднозначно представить числа из промежутка от до , так как . Таблица соответствия чисел из позиционной системы счисления и системы остаточных классов:
Пример сложения
Сложим два числа 9 и 14 в базисе . Их представление в заданном базисе и (см. табличку выше). Воспользуемся формулой для сложения:
- по таблице убеждаемся, что результат равен 23.
Пример умножения
Умножим два числа 4 и 5 в базисе . Их представление в заданном базисе и (см. табличку выше). Воспользуемся формулой для умножения:
- по таблице убеждаемся, что результат равен 20.
Замечание: если бы мы умножали или складывали числа, которые дали в результате умножения число больше или равное , то полученный результат , где - результат операции в позиционной системе счисления.