Система остаточных классов
Система остаточных классов (СОК) (от англ. Residue number system, другое название Модулярная арифметика) - непозиционная система счисления. Представление числа в системе остаточных классов основано на понятии вычета и китайской теореме об остатках. СОК определяется набором взаимно простых модулей с произведением
так, что каждому целому числу
из отрезка
ставится в соответствие набор вычетов
, где
-
-
- …
-
При этом китайская теорема об остатках гарантирует однозначность представления для чисел из отрезка .
Содержание
Преимущества СОК
В СОК арифметические операции (сложение, вычитание, умножение, деление) выполняются покомпонентно, если про результат известно, что он является целочисленным и также лежит в .
Недостатки СОК
Недостатками СОК является возможность представления только ограниченного количества чисел, а также отсутствие эффективных алгоритмов для сравнения чисел, представленых в СОК. Сравнение обычно осуществляется через перевод аргументов из СОК в смешанную систему счисления по основаниям .
Основные определения
Система остаточных классов используется для представления больших чисел , обеспечивая таким образом более эффективные вычисления. В основе данного представления лежит изоморфизм
, который доставляет китайская теорема об остатках.
Системой остаточных классов называют произвольное конечное множество , такое что
, где
. Пусть задана произвольная система остаточных классов
и положим, что
. Тогда в силу китайской теоремы об остатках имеем эпиморфизм колец
, т.ч.
, который индуцирует канонический изоморфизм
.
Выполнение арифметических операций
С использованием системы остаточных классов можно выполнять основные арифметические операции.
Сложение и вычитание
Пусть - произвольные натуральные числа. Положим, что
представляются в виде системы остаточных классов как
и
соответственно. Формально,
. В силу того, что
- изоморфизм будем иметь
. Обозначим через
остаток
от деления на
. Тогда
представляется в виде системы остаточных классов как
.
Умножение
- остаток от деления
на
. Тогда
представляется в виде системы остаточных классов как
.
Деление
Деление на
с использованием системы остаточных классов можно выполнять не всегда. Положим, что
- остаток
от деления на
. На языке теории колец это означает, что
обратим и
- обратный. Тогда
представляется в виде
.
Факторизация полупростых чисел
Пусть - полупростое число. Рассмотрим систему остаточных классов
, где
—
-е простое число.