Система остаточных классов

Систе́ма оста́точных кла́ссов (СОК), непозиционная система счисления, числа в которой представлены наборами остатков от деления на попарно взаимно простые натуральные числа.

СОК задаётся набором попарно взаимно простых натуральных чисел (модулей системы) – диапазон СОК. Целое число в СОК представляется в виде набора остатков от деления числа на модули системы . Каждому числу ставится в соответствие единственный набор где (Ananda Mohan. 2016[1]).

Например, число в СОК с модулями имеет вид . Диапазон СОК равен .

Для вычисления остатка от деления разработаны алгоритмы (Nazarov. 2020.[2] P. 10–13) более эффективные, чем, например, известное со школы «деление углом».

Сложение чисел в позиционной системе счисления и в СОК

На рисунке представлено сложение в позиционной десятичной системе счисления и в СОК с модулями . При сложении в СОК складываются остатки по соответствующим модулям, поэтому, например, . Вычислив соответствующие остатки от деления, легко убедиться, что действительно .

В десятичной системе счисления для вычисления второй цифры, соответствующей количеству десятков в сумме, необходимо дождаться вычисления третьей цифры, соответствующей единицам, потому что возможен перенос в старший разряд. В СОК же вычисления по каждому из модулей происходят независимо без межразрядных переносов, кроме того операнды имеют ме́ньшую разрядность (маленькие числа складывать проще). Если необходимо сложить очень большие числа, задержка, связанная с ожиданием возможных переносов из единиц в десятки, из десятков в сотни и т. д. будет очень большой, тогда как для СОК всё останется по-прежнему. Аналогично обстоит дело с вычитанием (когда необходимо «занимать» у старшего разряда) и умножением. Арифметические операции сложения, вычитания и умножения чисел в СОК называются модульными и выполняются покомпонентно (Акушский. 1968[3]).

Вычисления без межразрядных переносов идеально вписываются в парадигму параллельных вычислений. Например, можно каждому ядру многоядерного компьютера назначить вычисления по одному из модулей, при этом не будет задержки, связанной с пересылкой сообщений между ядрами, как в случае позиционной системы счисления, когда необходимо пересылать сообщения о межразрядных переносах. Однако подобное представление чисел непривычно и малоинформативно для конечного пользователя, поэтому после выполнения всех параллельных вычислений необходимо перейти обратно от представления в СОК к классическому привычному представлению в десятичной системе счисления. Сделать это позволяет китайская теорема об остатках.

К недостаткам СОК можно отнести сложности при реализации операций определения знака числа, сравнения чисел, деления, определения переполнения диапазона, масштабирования. Указанные операции называются немодульными, являются вычислительно сложными и для их выполнения требуется вычисление позиционной характеристики. Таким образом, целесообразно использование СОК в приложениях, где большинство вычислений сводится к модульным операциям.

Вычисления в СОК также называют модулярной арифметикой, которая используется в цифровой обработке сигналов, криптографии и облачных вычислениях для работы с большими целыми числами.

Примечания

  1. Ananda Mohan P. V. Residue Number Systems : Theory and Applications / P. V. Ananda Mohan. – [Basel] : Birkhäuser, 2016.
  2. Nazarov A. Efficient Hardware Implementation of Forward Conversion WNS-RNS on FPGA / A. Nazarov, M. Babenko, E. Golimblevskaia // 2020 International Conference Engineering and Telecommunication (En & T 2020), Dolgoprudny, Russia 25–26 November 2020. – Piscataway, NJ : Institute of Electrical and Electronics Engineers, 2020. – P. 10–13.
  3. Акушский И. Я. Машинная арифметика в остаточных классах / И. Я. Акушский, Д. И. Юдицкий. – Москва : Советское радио, 1968.

Литература

  • Акушский И. Я. Машинная арифметика в остаточных классах / И. Я. Акушский, Д. И. Юдицкий. – Москва : Советское радио, 1968.
  • Ananda Mohan P. V. Residue Number Systems: Theory and Applications. – [S. l.] : Birkhäuser, 2016.
  • Nazarov A. Efficient Hardware Implementation of Forward Conversion WNS-RNS on FPGA / A. Nazarov, M. Babenko, E. Golimblevskaia // 2020 International Conference Engineering and Telecommunication (En & T 2020), Dolgoprudny, Russia 25–26 November 2020. – Piscataway, NJ : Institute of Electrical and Electronics Engineers, 2020. – P. 10–13.
Материалы портала bigenc.ru переданы в ведение АНО «Интернет-энциклопедия «РУВИКИ» на основе лицензионного соглашения. Возможны неточности в отображении материалов. Если у вас возникли вопросы или вы увидели ошибку, пожалуйста, сообщите нам на info@ruwiki.ru