Система остаточных классов — различия между версиями
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, другое название Модулярная арифметика) - непозиционная система счисления. Представление числа в системе остаточных классов основано на понятии вычета и китайской теореме об остатках. СОК определяется набором взаимно простых модулей 
 с произведением 
 так, что каждому целому числу 
 из отрезка 
 ставится в соответствие набор вычетов 
, где
-  
 -  
 - …
 -  
 
При этом китайская теорема об остатках гарантирует однозначность представления для чисел из отрезка 
.
Содержание
Преимущества системы остаточных классов
-  В СОК арифметические операции (сложение, вычитание, умножение, деление) выполняются покомпонентно, если про результат известно, что он является целочисленным и также лежит в 
.
 
Недостатки системы остаточных классов
- Возможность представления только ограниченного количества чисел.
 -  Отсутствие эффективных алгоритмов для сравнения чисел, представленных в СОК. Сравнение обычно осуществляется через перевод аргументов из СОК в смешанную систему счисления по основаниям 
.
 - Сложные реализации алгоритмов перевода из позиционной системы счисления в СОК и обратно.
 
Применение системы остаточных классов
СОК широко используется в микроэлектронике в специализированных устройствах [ЦОС], где требуется:
- контроль за ошибками, за счет введения дополнительных избыточных модулей
 - высокая скорость работы, которую обеспечивает параллельная реализация базовых арифметических операций
 
Основные определения
Система остаточных классов используется для представления больших чисел 
, обеспечивая таким образом более эффективные вычисления. В основе данного представления лежит изоморфизм 
 , который доставляет китайская теорема об остатках.
Системой остаточных классов называют произвольное конечное множество 
, такое что 
, где 
. Пусть задана произвольная система остаточных классов 
 и положим, что 
. Тогда в силу китайской теоремы об остатках имеем эпиморфизм колец 
, т.ч. 
, который индуцирует канонический изоморфизм 
.
Выполнение арифметических операций
С использованием системы остаточных классов можно выполнять основные арифметические операции.
Сложение и вычитание
Пусть 
- произвольные натуральные числа. Положим, что 
 представляются в виде системы остаточных классов как 
 и 
 соответственно. Формально, 
. В силу того, что 
- изоморфизм будем иметь 
. Обозначим через 
 остаток 
 от деления на 
. Тогда 
 представляется в виде системы остаточных классов как 
.
Умножение
- остаток от деления 
 на 
. Тогда 
 представляется в виде системы остаточных классов как 
.
Деление
Деление 
 на 
 с использованием системы остаточных классов можно выполнять не всегда. Положим, что 
- остаток 
 от деления на 
. На языке теории колец это означает, что 
 обратим и 
- обратный. Тогда 
 представляется в виде 
.
Факторизация полупростых чисел
Пусть 
- полупростое число. Рассмотрим систему остаточных классов 
, где 
— 
-е простое число.
Численный пример
Рассмотрим СОК с базисом 
. В этом базисе можно взаимооднозначно представить числа из промежутка от 
 до 
, так как 
. Таблица соответствия чисел из позиционной системы счисления и системы остаточных классов:
    | 
    | 
    | 
    | 
  
 | 
    | 
    | 
    | 
    | 
  
 | 
    | 
    | 
    | 
    | 
  
 | 
    | 
    | 
    | 
    | 
  
 | 
    | 
    | 
    | 
    | 
  
 | 
    | 
    | 
    | 
    | 
  
 |