Система остаточных классов — различия между версиями
Turbo (обсуждение | вклад) |
Turbo (обсуждение | вклад) |
||
Строка 39: | Строка 39: | ||
Пусть <math>X=Y\cdot Z</math>- полупростое число. Рассмотрим систему остаточных классов <math>p_i,\ldots, p_N</math>, где <math>p_i</math>— <math>i</math>-е простое число. | Пусть <math>X=Y\cdot Z</math>- полупростое число. Рассмотрим систему остаточных классов <math>p_i,\ldots, p_N</math>, где <math>p_i</math>— <math>i</math>-е простое число. | ||
+ | == Численный пример == | ||
+ | |||
+ | Рассмотрим СОК с базисом <math>(2;3;5)</math>. В этом базисе можно взаимооднозначно представить числа из промежутка от <math>0</math> до <math>29</math>, так как <math>M = 2\times 3\times 5 = 30</math>. Таблица соответствия чисел из позиционной системы счисления и системы остаточных классов: | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | <math>0=(0;0;0)</math> || <math>1=(1;1;1)</math> || <math>2=(0;2;2)</math> || <math>3=(1;0;3)</math> || <math>4=(0;1;4)</math> | ||
+ | |- | ||
+ | | <math>5=(1;2;0)</math> || <math>6=(0;0;1)</math> || <math>7=(1;1;2)</math> || <math>8=(0;2;3)</math> || <math>9=(1;0;4)</math> | ||
+ | |- | ||
+ | | <math>10=(0;1;0)</math> || <math>11=(1;2;1)</math> || <math>12=(0;0;2)</math> || <math>13=(1;1;3)</math> || <math>14=(0;2;4)</math> | ||
+ | |- | ||
+ | | <math>15=(1;0;0)</math> || <math>16=(0;1;1)</math> || <math>17=(1;2;2)</math> || <math>18=(0;0;3)</math> || <math>19=(1;1;4)</math> | ||
+ | |- | ||
+ | | <math>20=(0;2;0)</math> || <math>21=(1;0;1)</math> || <math>22=(0;1;2)</math> || <math>23=(1;2;3)</math> || <math>24=(0;0;4)</math> | ||
+ | |- | ||
+ | | <math>25=(1;1;0)</math> || <math>26=(0;2;1)</math> || <math>27=(1;0;2)</math> || <math>28=(0;1;3)</math> || <math>29=(1;2;4)</math> | ||
+ | |} | ||
+ | |||
+ | === Пример сложения === | ||
+ | |||
+ | === Пример умножения === | ||
Версия 06:32, 6 февраля 2013
Система остаточных классов (СОК) (от англ. Residue number system, другое название Модулярная арифметика) - непозиционная система счисления. Представление числа в системе остаточных классов основано на понятии вычета и китайской теореме об остатках. СОК определяется набором взаимно простых модулей с произведением
так, что каждому целому числу
из отрезка
ставится в соответствие набор вычетов
, где
-
-
- …
-
При этом китайская теорема об остатках гарантирует однозначность представления для чисел из отрезка .
Содержание
Преимущества системы остаточных классов
- В СОК арифметические операции (сложение, вычитание, умножение, деление) выполняются покомпонентно, если про результат известно, что он является целочисленным и также лежит в
.
Недостатки системы остаточных классов
- Возможность представления только ограниченного количества чисел.
- Отсутствие эффективных алгоритмов для сравнения чисел, представленных в СОК. Сравнение обычно осуществляется через перевод аргументов из СОК в смешанную систему счисления по основаниям
.
- Сложные реализации алгоритмов перевода из позиционной системы счисления в СОК и обратно.
Применение системы остаточных классов
СОК широко используется в микроэлектронике в специализированных устройствах [ЦОС], где требуется:
- контроль за ошибками, за счет введения дополнительных избыточных модулей
- высокая скорость работы, которую обеспечивает параллельная реализация базовых арифметических операций
Основные определения
Система остаточных классов используется для представления больших чисел , обеспечивая таким образом более эффективные вычисления. В основе данного представления лежит изоморфизм
, который доставляет китайская теорема об остатках.
Системой остаточных классов называют произвольное конечное множество , такое что
, где
. Пусть задана произвольная система остаточных классов
и положим, что
. Тогда в силу китайской теоремы об остатках имеем эпиморфизм колец
, т.ч.
, который индуцирует канонический изоморфизм
.
Выполнение арифметических операций
С использованием системы остаточных классов можно выполнять основные арифметические операции.
Сложение и вычитание
Пусть - произвольные натуральные числа. Положим, что
представляются в виде системы остаточных классов как
и
соответственно. Формально,
. В силу того, что
- изоморфизм будем иметь
. Обозначим через
остаток
от деления на
. Тогда
представляется в виде системы остаточных классов как
.
Умножение
- остаток от деления
на
. Тогда
представляется в виде системы остаточных классов как
.
Деление
Деление на
с использованием системы остаточных классов можно выполнять не всегда. Положим, что
- остаток
от деления на
. На языке теории колец это означает, что
обратим и
- обратный. Тогда
представляется в виде
.
Факторизация полупростых чисел
Пусть - полупростое число. Рассмотрим систему остаточных классов
, где
—
-е простое число.
Численный пример
Рассмотрим СОК с базисом . В этом базисе можно взаимооднозначно представить числа из промежутка от
до
, так как
. Таблица соответствия чисел из позиционной системы счисления и системы остаточных классов:
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |