Система остаточных классов — различия между версиями
Bundin (обсуждение | вклад) (→Деление) |
Turbo (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | Система остаточных классов | + | '''Система остаточных классов (СОК)''' (от англ. [http://en.wikipedia.org/wiki/Residue_number_system Residue number system], другое название '''Модулярная арифметика''') - [http://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F#.D0.9D.D0.B5.D0.BF.D0.BE.D0.B7.D0.B8.D1.86.D0.B8.D0.BE.D0.BD.D0.BD.D1.8B.D0.B5_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.8B_.D1.81.D1.87.D0.B8.D1.81.D0.BB.D0.B5.D0.BD.D0.B8.D1.8F непозиционная система счисления]. Представление числа в системе остаточных классов основано на понятии [http://ru.wikipedia.org/wiki/%D0%A1%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E вычета] и [http://ru.wikipedia.org/wiki/%D0%9A%D0%B8%D1%82%D0%B0%D0%B9%D1%81%D0%BA%D0%B0%D1%8F_%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%BE%D0%B1_%D0%BE%D1%81%D1%82%D0%B0%D1%82%D0%BA%D0%B0%D1%85|китайской теореме об остатках]. СОК определяется набором взаимно простых ''модулей'' <math>(m_1, m_2, \dots, m_n)</math> с произведением <math>M=m_1\cdot m_2\cdot \dots\cdot m_n</math> так, что каждому целому числу <math>x</math> из отрезка <math>[0,M-1]</math> ставится в соответствие набор вычетов <math>(x_1, x_2, \dots, x_n)</math>, где |
+ | : <math>x \equiv x_1 \pmod{m_1};</math> | ||
+ | : <math>x \equiv x_2 \pmod{m_2};</math> | ||
+ | : … | ||
+ | : <math>x \equiv x_n \pmod{m_n}.</math> | ||
+ | При этом китайская теорема об остатках гарантирует однозначность представления для чисел из отрезка <math>[0,M-1]</math>. | ||
+ | |||
+ | == Преимущества СОК == | ||
+ | В СОК арифметические операции (сложение, вычитание, умножение, деление) выполняются покомпонентно, если про результат известно, что он является целочисленным и также лежит в <math>[0,M-1]</math>. | ||
+ | |||
+ | == Недостатки СОК == | ||
+ | Недостатками СОК является возможность представления только ограниченного количества чисел, а также отсутствие эффективных алгоритмов для сравнения чисел, представленых в СОК. Сравнение обычно осуществляется через перевод аргументов из СОК в смешанную систему счисления по основаниям <math>(m_1, m_1\cdot m_2, \dots, m_1\cdot m_2\cdot\dots\cdot m_{n-1})</math>. | ||
== Основные определения == | == Основные определения == | ||
+ | Система остаточных классов используется для представления больших чисел <math>N</math>, обеспечивая таким образом более эффективные вычисления. В основе данного представления лежит [http://ru.wikipedia.org/wiki/Изоморфизм изоморфизм] <math>\mathbb{Z}/m_1\cdot\ldots\cdot m_n\mathbb{Z}\cong\mathbb{Z}/m_1\mathbb{Z}\times\ldots\times\mathbb{Z}/m_n\mathbb{Z}</math> , который доставляет [http://ru.wikipedia.org/wiki/Китайская_теорема_об_остатках китайская теорема об остатках]. | ||
+ | |||
Системой остаточных классов называют произвольное конечное множество <math>\{m_1,\ldots ,m_n\}\subset\mathbb{N}</math>, такое что <math>\gcd\limits_{i\ne j}(m_i,m_j)=1</math>, где <math>n\in\mathbb{N}</math>. Пусть задана произвольная система остаточных классов <math>\{m_1,\ldots ,m_n\}</math> и положим, что <math>M=\prod\limits_{i=1}^{n}m_i</math>. Тогда в силу [http://ru.wikipedia.org/wiki/Китайская_теорема_об_остатках китайской теоремы об остатках] имеем [http://ru.wikipedia.org/wiki/Эпиморфизм эпиморфизм] [http://ru.wikipedia.org/wiki/Кольцо_(математика) колец] <math>\varphi: \mathbb{Z}\to\prod\limits_{i=1}^{n}\mathbb{Z}/m_i\mathbb{Z}</math>, т.ч. <math>\operatorname{Ker}\varphi=M\mathbb{Z}</math>, который индуцирует канонический [http://ru.wikipedia.org/wiki/Изоморфизм изоморфизм] <math>\mathbb{Z}/M\mathbb{Z}\cong\prod\limits_{i=1}^{n}\mathbb{Z}/m_i\mathbb{Z}</math>. | Системой остаточных классов называют произвольное конечное множество <math>\{m_1,\ldots ,m_n\}\subset\mathbb{N}</math>, такое что <math>\gcd\limits_{i\ne j}(m_i,m_j)=1</math>, где <math>n\in\mathbb{N}</math>. Пусть задана произвольная система остаточных классов <math>\{m_1,\ldots ,m_n\}</math> и положим, что <math>M=\prod\limits_{i=1}^{n}m_i</math>. Тогда в силу [http://ru.wikipedia.org/wiki/Китайская_теорема_об_остатках китайской теоремы об остатках] имеем [http://ru.wikipedia.org/wiki/Эпиморфизм эпиморфизм] [http://ru.wikipedia.org/wiki/Кольцо_(математика) колец] <math>\varphi: \mathbb{Z}\to\prod\limits_{i=1}^{n}\mathbb{Z}/m_i\mathbb{Z}</math>, т.ч. <math>\operatorname{Ker}\varphi=M\mathbb{Z}</math>, который индуцирует канонический [http://ru.wikipedia.org/wiki/Изоморфизм изоморфизм] <math>\mathbb{Z}/M\mathbb{Z}\cong\prod\limits_{i=1}^{n}\mathbb{Z}/m_i\mathbb{Z}</math>. | ||
Версия 12:50, 30 января 2013
Система остаточных классов (СОК) (от англ. Residue number system, другое название Модулярная арифметика) - непозиционная система счисления. Представление числа в системе остаточных классов основано на понятии вычета и теореме об остатках. СОК определяется набором взаимно простых модулей с произведением так, что каждому целому числу из отрезка ставится в соответствие набор вычетов , где
- …
При этом китайская теорема об остатках гарантирует однозначность представления для чисел из отрезка .
Содержание
Преимущества СОК
В СОК арифметические операции (сложение, вычитание, умножение, деление) выполняются покомпонентно, если про результат известно, что он является целочисленным и также лежит в .
Недостатки СОК
Недостатками СОК является возможность представления только ограниченного количества чисел, а также отсутствие эффективных алгоритмов для сравнения чисел, представленых в СОК. Сравнение обычно осуществляется через перевод аргументов из СОК в смешанную систему счисления по основаниям .
Основные определения
Система остаточных классов используется для представления больших чисел , обеспечивая таким образом более эффективные вычисления. В основе данного представления лежит изоморфизм , который доставляет китайская теорема об остатках.
Системой остаточных классов называют произвольное конечное множество , такое что , где . Пусть задана произвольная система остаточных классов и положим, что . Тогда в силу китайской теоремы об остатках имеем эпиморфизм колец , т.ч. , который индуцирует канонический изоморфизм .
Выполнение арифметических операций
С использованием системы остаточных классов можно выполнять основные арифметические операции.
Сложение и вычитание
Пусть - произвольные натуральные числа. Положим, что представляются в виде системы остаточных классов как и соответственно. Формально, . В силу того, что - изоморфизм будем иметь . Обозначим через остаток от деления на . Тогда представляется в виде системы остаточных классов как .
Умножение
- остаток от деления на . Тогда представляется в виде системы остаточных классов как .
Деление
Деление на с использованием системы остаточных классов можно выполнять не всегда. Положим, что - остаток от деления на . На языке теории колец это означает, что обратим и - обратный. Тогда представляется в виде .
Факторизация полупростых чисел
Пусть - полупростое число. Рассмотрим систему остаточных классов , где — -е простое число.