Preview

Вестник кибернетики

Расширенный поиск

Анализ сложности арифметических операций в модулярной системе счисления квадратичного диапазона

https://doi.org/10.35266/1999-7604-2025-3-5

Содержание

Перейти к:

Аннотация

Исследование посвящено изучению особенностей и эффективности модулярной системы счисления квадратичного диапазона, включая реализацию базовых арифметических операций на серийных (позиционных) компьютерах. Основной целью является проанализировать структуру и особенности выполнения различных арифметических операций в модулярной системе счисления квадратичного диапазона и провести сравнение их временной сложности с аналогичными операциями в традиционных позиционных системах счисления. Для достижения поставленной цели были сформулированы следующие задачи: изучение структуры и особенностей модулярной системы счисления квадратичного диапазона, реализация базовых арифметических операций на языке Python, проведение экспериментов и анализ временной сложности операций. Методология исследования включает теоретическое изучение основ модулярной системы счисления квадратичного диапазона, создание алгоритмов выполнения операций на Python, экспериментальное тестирование и анализ результатов. Результатом исследования является создание алгоритма выполнения арифметических операций в модулярной системе счисления квадратичного диапазона, выявление значительного выигрыша в производительности по сравнению с позиционными системами счисления, подтвержденного экспериментально. Таким образом, данное исследование подтверждает перспективность применения модулярной системы счисления для повышения производительности в задачах с высокими требованиями к быстродействию и ресурсоемкости.

Для цитирования:


Золотарева Н.С. Анализ сложности арифметических операций в модулярной системе счисления квадратичного диапазона. Вестник кибернетики. 2025;24(3):44-54. https://doi.org/10.35266/1999-7604-2025-3-5

For citation:


Zolotareva N.S. Arithmetic operations’ complexity analysis in modular arithmetic within quadratic range. Proceedings in Cybernetics. 2025;24(3):44-54. (In Russ.) https://doi.org/10.35266/1999-7604-2025-3-5

ВВЕДЕНИЕ

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

К основным компонентам МСС квадратичного диапазона относятся следующие.

  1. Совокупность элементов модулярного квадратичного диапазона.

Элементы этой совокупности представляют собой числа, выраженные в виде вычетов по различным основаниям. Эти основания определяют конкретный диапазон значений, внутри которого проводятся операции над числами. Каждое число записывается в виде остатков от деления на некоторые фиксированные основания – модули.

  1. Множество операций.

Операции, выполняемые над представленными в МСС данными, делят на два класса: модульные и немодульные. Модульные характеризуются тем, что при их выполнении не происходит переносов между разрядами. Примерами таких операций являются сложение, вычитание и умножение, деление нацело, умножение на обратный элемент и др. К немодульным операциям отнесены деление, расширение, определение знака, сравнение, определение переполнения, масштабирование, определение ошибки, локализация ошибки, вычисление ранга и др. Для выполнения этих операций, в отличие от модульных, требуется оценка значения числа в целом, которая затруднена в связи с непозиционной природой МСС [1][2].

  1. Алгоритмы выполнения операций.

Алгоритмические процедуры предназначены для оптимизации процесса вычислений, минимизации временных затрат и повышения точности результатов.

Вычисления производятся над числами, представленными в типовом машинном формате, который соответствует возможностям конкретного компьютера. Такие числа задаются в виде цифр, соответствующих позициям позиционной системы счисления. Применяется на практике:

– двоичная система, которая используется благодаря простоте аппаратной реализации и эффективности хранения информации;

– шестнадцатеричная система применяется, когда нужна компактность представления больших объемов данных и удобство восприятия человеком.

МАТЕРИАЛЫ И МЕТОДЫ

В данном исследовании основные арифметические операции в МСС реализованы на серийном (позиционном) компьютере.

Серийный компьютер – это вычислительная система классической архитектуры, в которой операнды представлены в позиционной системе счисления (ПСС), а операции выполняются последовательно. Термин «серийный» подчеркивает традиционный подход к обработке данных, в отличие от специализированных систем, таких как модулярные компьютеры.

К основным характеристикам серийных компьютеров можно отнести следующие.

  1. Числа представляются в виде последовательности цифр, каждая из которых имеет вес, зависящий от ее позиции (разряда).
  2. Последовательная обработка. Операции выполняются последовательно, например, сложение двух чисел выполняется пошагово, начиная с младшего разряда. Сложение, вычитание, умножение и деление выполняются с учетом переносов и заимствований.
  3. Традиционная архитектура фон Неймана (один центральный процессор выполняет операции последовательно).

Операции в МСС, реализованные на серийном (позиционном) компьютере, сопровождаются рядом трудностей.

  1. Преобразование в ПСС. Числа, представленные в МСС, могут быть преобразованы в ПСС с помощью китайской теоремы об остатках (КТО). После преобразования можно выполнять обычные арифметические операции (сложение, вычитание, умножение и т. д.).
  2. Обратное преобразование. После выполнения операций в ПСС результат необходимо снова преобразовать в МСС.

Преобразование между системами счисления требует вычислительных ресурсов.

Введем основные понятия и определения для МСС квадратичного диапазона.

В МСС каждое число представляется в виде набора остатков по соответствующим основаниям (модулям), позволяющим эффективно использовать ресурсы оборудования и минимизировать ошибки округления при выполнении сложных расчетов [3].

Стоит отметить, что в статье модули, по которым вычисляются наименьшие неотрицательные вычеты по модулю (остатки от деления), называются в этой тематике основаниями одинарной или квадратичной МСС.

Определение: Модулярная система счисления квадратичного диапазона это совокупность математических конструкций и правил, предназначенных для представления и обработки чисел с использованием системы взаимно простых модулей, каждый из которых является квадратом простого числа.

Пусть p1, p2, ... pn простые числа и пусть mi = pi2, i = 1, 2, ..., n соответствующие квадратичные модули. Тогда любое целое число X в диапазоне [0, M − 1], где M = m1 · m2 · ... · mn, может быть однозначно представлено в виде набора остатков:

X = (a1, a2, ... an) (m1, m2, ... mn),

где ai – остаток от деления числа X на модуль mi, то есть ai = X mod mi; пара a1, a2, ... an называется модулярным представлением числа X.

Определение: Квадратичный модуль это модуль, задаваемый в виде квадрата простого числа ρ, то есть m = ρ2.

Определение: Диапазон значений множество чисел, представленных в МСС с квадратичными модулями, ограничено верхним пределом, равным произведению всех модулей.

Китайская теорема об остатках (КТО) – известная в теории чисел. Из теоремы следует: если заданы попарно взаимно простые модули m1, m2, ... mn, то любое число Y в диапазоне [0, M − 1], где M = m1 · m2 · ... · mn, может быть однозначно представлено своими остатками по этим модулям.

Теорема: Пусть m1, m2, ... mn – попарно взаимно простые числа, то есть НОД(mi, mj) = 1 для всех i j. Тогда система сравнений:

имеет единственное решение Y в диапазоне [0, M − 1], где M = m1 · m2 · ... · mn.

Доказательство.

Пусть модули m1, m2, ... mn попарно взаимно просты, то есть НОД(mi, mj) = 1 для всех i j. Требуется доказать существование и единственность решения Y в указанном диапазоне. 

  1. Определим

Так как модули попарно взаимно просты, очевидно, что Mi и mi также взаимно просты для каждого i.

  1. Поиск обратных элементов:

Для каждого Mi найдем обратный элемент Xi по модулю mi, то есть такое число, что:

(Xi Mi) ≡ 1(mod mi)

Обратные элементы можно найти с помощью расширенного алгоритма Евклида.

III. Далее воспользуемся формулой:

Рассмотрим арифметические операции в МСС квадратичного диапазона.

  1. Сложение, вычитание и умножение.

Сложение и вычитание в МСС квадратичного диапазона выполняются поэлементно по каждому модулю с последующим вычислением остатка [1][2][4][5]. Пусть заданы два числа A = α1 · α2 · ... · αn и B = β1 · β2 · ... · βn, где αi и βi остатки по модулям mi = pi2, а pi – простые числа. Тогда:

A + B = (α1 + β1 (mod m1), α2 + β2 (mod m2),…, αn + βn (mod mn)),

A – B = (α1 – β1 (mod m1), α2 – β2 (mod m2),…,
αn – βn (mod mn)).

Умножение также выполняется поэлементно с последующим взятием остатка:

A · B = (α1 · β1 (mod m1), α2 · β2 (mod m2),…,
αn · βn (mod mn)).

Результаты операций сложения, вычитания и умножения A + B, A – B и A · B представлены остатками γi σi и δi по тем же основаниям системы счисления mi.

A + B = (γ1 , γ2, ... · γn),

A – B = (σ1 , σ2, ... · σn),

A · B = (δ1 , δ2, ... · δn),

где γi сравнимо с αi + βi по модулю mi, σi сравнимо с αi – βi по модулю mi, δi сравнимо с αi · βi по тому же модулю, выполняются соотношения:

γi = αi + βi (mod mi),

σi = αi – βi (mod mi),

δi = αi · βi (mod mi).

Результатом являются числа:

Пример 1. Рассмотрим выполнение данных операций на примере.

В компьютерах, поддерживающих 32-битные числа, типовой диапазон чисел – от 0 до 232 − 1. Ставится задача – выбрать подходящий набор квадратичных модулей, который покроет этот диапазон, и выполнить операции сложения, вычитания и умножения в МСС.

В качестве оснований выберем взаимно простые числа, квадраты которых дадут достаточное покрытие диапазона: m1 = 17, тогда p1 = 172 = 289, m2 = 19, тогда p2 = 19 = 361, m3 = 23, тогда p3 = 232 = 529, m4 = 29, тогда p4 = 292 = 841, m5 = 31,тогда p5 = 312 = 961. М = 289 · 361 · 529 · 841 · 961 = 44604646326241 > 232 − 1 = 4294967295.

Необходимость превышения произведения модулей над машинным диапазоном обусловлена особенностью МCС и требованием полной однозначности представления чисел.

Пусть даны два числа, представленных в МСС: A = (23, 87, 12, 34, 56) и B = (17, 34, 157, 89, 112).

Выполняем поэлементное сложение с последующим взятием остатка по каждому модулю:

A + B = (23 + 17 (mod 289), 87 + 24 (mod 361), 12 + 157 (mod 529), 34 + 89 (mod 841), 56 + 112 (mod 961)) = (40 (mod 289), 121 (mod 361), 169 (mod 529), 1239 (mod 841), 168 (mod 961)) =
= (40, 121, 169, 123, 168).

Аналогично выполняем поэлементное вычитание со взятием остатка:

A−B = (23−17 (mod 289), 87−24 (mod 361), 12−157 (mod 529), 34−89 (mod 841), 56−112 (mod 961)) = (6 (mod 289), 53 (mod 361), 384 (mod 529), 786 (mod 841), 905 (mod 961)) = = (6, 53, 384, 786, 905).

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

  1. Периодичность и цикличность.

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

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

  1. Единственное представление.

В МСС каждое число в диапазоне [0, M − 1] должно иметь единственное представление. Появление отрицательного числа нарушает это правило, поэтому нормализация необходима.

  1. Последовательность вычислений.

Добавление модуля нормализует результат и восстанавливает нормальное состояние системы, позволяя продолжить вычисления без нарушения законов модулярной арифметики.

На примерах выполним поэлементное умножение с последующим взятием остатка:

A · B = (23 · 17 (mod 289), 87 · 34 (mod 361), 12 · 157 (mod 529), 34 · 89 (mod 841), 56 · 112 (mod 961)) = (391 (mod 289), 2958 (mod 361), 1884 (mod 529), 3026 (mod 841), 6272 (mod 961)) = (102, 70, 297, 503, 506).

  1. Возведение в степень.

Возведение в степень в МСС квадратичного диапазона выполняется поэлементно с последующим взятием остатка по каждому модулю.

Пусть A = (23, 87, 12, 34, 56) и k = 5. Необходимо найти Ak.

Для каждого модуля mi возводим соответствующую компоненту числа A в степень k и берем остаток по модулю mi.

A5 = (235 (mod 289), 875 (mod 361), 125 (mod 529), 345 (mod 841), 565 (mod 961)) =
= (6436343 (mod 289), 4984209207 (mod 361), 248832 (mod 529), 45435424 (mod 841), 550731776 (mod 961)) = (24, 254, 202, 399, 935).

  1. Нахождение обратного элемента.

Нахождение обратного числа в МСС квадратичного диапазона выполняется поэлементно с использованием расширенного алгоритма Евклида. Это позволяет эффективно обрабатывать числа и выполнять обратные операции в МСС.

Определение: Обратное число A–1 по модулю mi – это такое число, что: A–1 · A ≡ 1 (mod mi).

Для каждого модуля mi находится обратный элемент Xi для соответствующей компоненты числа A по модулю mi. Будем использовать расширенный алгоритм Евклида для поиска обратных элементов. Рассмотрим его подробно.

Требуется найти обратный элемент Y для числа A по модулю m, то есть такое число Y, что:

A · X ≡ 1 (mod m).

Расширенный алгоритм Евклида основан на классическом алгоритме Евклида для нахождения наибольшего общего делителя (НОД), дополненном поиском коэффициентов Безу.

Алгоритм

  1. Начальные условия.

Пусть A и m – заданные числа, причем НОД(A, m) = 1 (условие взаимной простоты). Введем начальные значения: x0 = 1, x1 = 0, y0 = 0, y1 = 1.

  1. Основной цикл.

Пока m ≠ 0, делаем следующие шаги:

Обновляем коэффициенты:

(x0, x1) = ( x1, x0q · x1),( y0, y1) = ( y1, y0q · y1).

III. Завершение цикла.

Когда m = 0, последний ненулевой остаток A – это НОД. Если A = 1, то обратный элемент найден и равен x0.

Пример 2. Пусть A = (23, 87, 12, 34, 56). Необходимо найти A–1.

Найдем обратный элемент для A = 23 по модулю m = 289.

  1. Начальные условия:

A = 23, m = 289, x0 = 1, x1 = 0, y0 = 0, y1 = 1.

  1. Основной цикл.

Первый шаг:

Обновляем коэффициенты:

A = 289, m = 23, x0 = 0, x1 = 1, y0 = 1, y1 = 0.

Второй шаг:

Обновляем коэффициенты:

A = 23, m = 13, x0 = 1, x1 = –12, y0 = 0, y1 = 1.

Третий шаг:

Обновляем коэффициенты:

A = 13, m = 10, x0 = –12, x1 = 13, y0 = 1, y1 = –1.

Четвертый шаг:

Обновляем коэффициенты:

A = 10, m = 3, x0 = 13, x1 = –25, y0 = −1, y1 = 2.

Пятый шаг:

Обновляем коэффициенты:

A = 3, m = 1, x0 = –25, x1 = 88, y0 = −2, y1 = 7.

Последний шаг:

Обновляем коэффициенты:

A = 1, m = 0, x0 = 88, x1 = −299, y0 = −7, y1 = 23.

III. Завершение.

Последний ненулевой остаток A = 1, следовательно, обратный элемент равен x0 = 88.

Расширенный алгоритм Евклида позволил найти обратный элемент к числу 23 по модулю 289, он равен 88.

Чтобы проверить результат, подставим его в исходное уравнение:

A · X ≡ 1 (mod m)

23 · 88 ≡ 1 (mod 289)

Вычислим левую сторону: 23 · 88 = 2024.

Теперь возьмем остаток от деления на 289: 2024 (mod 289) = 1.

Таким образом, уравнение выполняется, и 88 действительно является обратным элементом к 23 по модулю 289.

Аналогично, найдем обратные элементы для остальных компонент числа A = (23, 87, 12, 34, 56) по остальным модулям p2 = 361, p3 = 529, p4 = 841, p5 = 961. Используя расширенный алгоритм Евклида для каждого модуля отдельно, получим:

87 · 83 ≡ 1 (mod 361)

12 · 485 ≡ 1 (mod 529)

34 · 470 ≡ 1 (mod 841)

56 · 532 ≡ 1 (mod 961)

Обратное число для A = (23, 87, 12, 34, 56) по модулям p1 = 289, p2 = 361, p3 = 529, p4 = 841, p5 = 961 соответственно: A−1 = (88, 83, 485, 470, 532).

Рассмотрим отдельно случай для компоненты α5 = 56 числа A, по модулю p5 = 961. Расширенный алгоритм Евклида позволил нам найти, что обратный элемент к числу 56 по модулю 961 равен –429. Однако в модулярной арифметике результат должен находиться в диапазоне от [0, p5 − 1]. В нашем случае модуль равен 961.

Чтобы привести результат к нужному диапазону, мы добавляем модуль к отрицательному числу:

–429 + 961 = 532.

Таким образом, –429 эквивалентно 532 по модулю 961.

Нормализация отрицательного результата путем добавления модуля – это стандартная практика в модулярной арифметике, позволяющая приводить результаты к корректному диапазону.

  1. Конвертирование в ПСС.

Для перевода числа из МСС в ПСС используется КТО. Она позволяет построить число Y в ПСС, исходя из остатков по каждому модулю.

Пример 3. Пусть задано число в МСС в виде остатков A = (23, 87, 12), модули m1 = 49, m2 = 121, m3 = 169.

1) Находим произведение модулей:

M = 49 ∙ 121 ∙ 169 = 1002001.

2) Вычислим: 

3) Используя расширенный алгоритм Евклида, находим обратные элементы:

Найдем обратный элемент X1 для M1 по модулю m1 = 49:

X1 = 46, так как 46 ∙ 20449 ≡ 1 (mod 49).

Найдем обратный элемент X2 для M2 по модулю m2 = 121:

X2 = 16, так как 16 ∙ 8281 ≡ 1 (mod 121).

Найдем обратный элемент X3 для M3 по модулю m3 = 169:

X3 = 157, так как 157 ∙ 5929 ≡ 1 (mod 169).

4) Собираем результат:

Y = (23 ∙ 46 ∙ 20449 + 87 ∙ 16 ∙ 8281 + + 12 ∙ 157 ∙ 5929) (mod 1002001) = 44332430 (mod 1002001) = 244386.

Таким образом, число A = (23, 87, 12) в позиционной системе равно 244386.

РЕЗУЛЬТАТЫ И ИХ ОБСУЖДЕНИЕ

На языке программирования Python разработаны программы выполнения рассмотренных операций. Приведены фрагменты алгоритмов и результаты (рис. 1–4).

Рис. 1. Импорт необходимых библиотек

Примечание: составлено автором на основании данных, полученных в исследовании.

Рис. 2. Вспомогательные функции

Примечание: составлено автором на основании данных, полученных в исследовании.

Рис. 3. Основная программа

Примечание: составлено автором на основании данных, полученных в исследовании.

Рис. 4. Результат

Примечание: составлено автором на основании данных, полученных в исследовании.

Исходные данные: в МСС квадратичного диапазона представлены числа A = (23, 87, 12, 34, 56) и B = (17, 34, 157, 89, 112). Модулярные основания m1 = 17, тогда p1 = 172 = 289, m2 = 19, тогда p2 = 19 = 361, m3 = 23, тогда p3 = 232 = 529, m4 = 29, тогда p4 = 292 = 841, m5 = 31, тогда p5 = 312 = 961.

Анализ сложности операций в МСС квадратичного диапазона позволяет оценить ресурсы, необходимые для выполнения операций, и служит важным фактором при выборе подходящей методики и оптимизации производительности [6][8].

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

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

Проведем анализ сложности операций сложения, вычитания, умножения, возведения в степень и нахождения обратного элемента.

  1. Сложение и вычитание. В МСС квадратичного диапазона обе операции выполняются поэлементно по каждому модулю с последующим взятием остатка. Память требуется пропорционально размеру входных данных.

Временная сложность операции сложения: O(n), где n – количество модулей.

В ПСС сложность данных операций напрямую зависит от размера чисел, участвующих в расчетах. Операции занимают время порядка O(n), где n – количество цифр в числе (базисная единица измерения сложности).

  1. Умножение. В МСС квадратичного диапазона операция умножения также выполняется поэлементно с последующим взятием остатка.

Временная сложность операции сложения: O(n), где n – количество модулей.

Для сравнения в позиционной системе счисления (ПСС) сложность следующая:

– классический метод: сложность O(n 2), где n – количество цифр в числе.

– быстрый метод (Карацуба): сложность O(nlog23).

– самый быстрый известный метод (FFT): сложность O(n log n) где n – размер входных данных.

В ПСС при умножении двух чисел длиной n цифр нужно выполнить n 2 операций сложения и переноса, что и приводит к квадратичной сложности.

В МСС квадратичного диапазона же каждое умножение выполняется отдельно по каждому модулю, что существенно снижается до линейной сложности.

  1. Возведение в степень. Используется быстрый алгоритм Binary Exponentiation, который снижает сложность возведения в степень до O(log k), где k– показатель степени. Однако, поскольку эта операция выполняется для каждого модуля, общая временная сложность составит O(n ∙ log k).

В ПСС операция возведения числа в степень имеет следующую сложность.

Простой метод: сложность O(nk), где n – количество цифр, k – показатель степени.

Быстрый метод (Binary Exponentiation): сложность O(n ∙ log k).

В ПСС возведение в степень приводит к росту числа разрядов, что требует больших ресурсов для обработки.

  1. Нахождение обратного элемента. Используется расширенный алгоритм Евклида, который требует O(n∙ log M) операций, где M – максимальный модуль. Учитывая, что мы выполняем эту операцию для каждого модуля, общая временная сложность составит O(n ∙ log M).

Таблица показывает временную сложность арифметических операций для одинарной и квадратичной, а также позиционной систем счисления. Все они используются для отображения чисел из одинаковых числовых диапазонов. Обозначения в МСС: n – количество модулей, k – показатель степени, M – максимальный модуль; в ПСС: n – размер входных данных (количество цифр в числе), k – показатель степени. 

Таблица

Временная сложность выполнения арифметических операций

Система счисления

Основные арифметические операции

Сложение

Вычитание

Умножение

Возведение в степень

Нахождение обратного элемента

Позиционная система счисления

O(n)

O(n)

O(n 2)

O(nlog23)

O(n ∙ logn)

O(nk)

O(n ∙ logk)

O(n 2)

МСС одинарного диапазона

O(n)

O(n)

O(n)

O(n ∙ logk)

O(n ∙ logM)

МСС квадратичного диапазона

O(n)

O(n)

O(n)

O(n ∙ logk)

O(n ∙ logM)

Примечание: составлено автором на основании данных, полученных в исследовании.

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

ЗАКЛЮЧЕНИЕ

Исследование посвящено анализу модулярной системы счисления квадратичного диапазона, ее структуре и особенностям выполнения основных арифметических операций на серийных (позиционных) компьютерах. Оцениваются временные затраты на выполнение основных арифметических операций в сравнении с позиционными системами счисления. На языке программирования Python разработан алгоритм выполнения основных арифметических операций, приведены результаты его работы.

Проведенное исследование позволяет сделать следующие выводы:

  1. Рассмотренные в исследовании арифметические операции характеризуются низкой сложностью и высокой эффективностью. Большинство операций линейны относительно количества модулей, что обеспечивает быструю обработку данных. Как видно из таблицы, это операции сложения, вычитания и умножения. Линейные операции O(n) масштабируются линейно с ростом количества модулей, что делает их очень эффективными и быстрыми даже при большом количестве модулей. К логарифмическим операциям относятся возведение в степень и нахождение обратного элемента. Операция возведения в степень O(n∙ log k) эффективна при умеренных показателях степени, но при очень больших степенях может замедляться. Нахождение обратного элемента O(n ∙ log M) также может замедляться при росте максимального модуля, но в целом остается достаточно эффективной для большинства практических задач.

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

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

К недостаткам реализации МСС квадратичного диапазона на серийном компьютере можно отнести следующие:

– медленная обработка – преобразование между системами счисления требует значительных вычислительных ресурсов. Операции в ПСС выполняются последовательно, что снижает производительность;

– большой объем данных – представление чисел в МСС может потребовать больших объемов памяти для хранения промежуточных результатов;

– ограниченные возможности параллельной обработки – серийные компьютеры не приспособлены для параллельной обработки данных, что делает их менее эффективными для массовых вычислений.

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

Альтернативой серийным компьютерам являются специализированные многопроцессорные (модулярные) компьютеры.

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

Список литературы

1. Акушский И. Я., Юдицкий Д. И. Машинная арифметика в остаточных классах. М. : Советское радио, 1968. 440 с.

2. Амербаев В. М. Теоретические основы машинной арифметики. Алма-Ата : Наука, 1976. 320 с.

3. Червяков Н. И., Коляда А. А., Ляхов П. А. и др. Модулярная арифметика и ее приложения в инфокоммуникационных технологиях : моногр. М. : Физматлит, 2017. 400 с.

4. Инютин С. А. Модулярная алгоритмика многоразрядных вычислений. М. : Московский авиационный институт (национальный исследовательский университет), 2020. 160 с.

5. Золотарева Н. С. Обзор методов и оценка сложности алгоритмов операций сравнения в модулярной арифметике и перевода из модулярной системы в позиционную систему счисления // Вестник кибернетики. 2022. № 4. С. 77–90. https://doi.org/10.34822/1999-7604-2022-4-77-90.

6. Инютин С. А. Дробно-рациональные конструкции в компьютерной модулярной арифметике // Информационные технологии. 2019. Т. 25, № 9. С. 515–521.

7. Инютин С. А. Метод вычисления позиционных характеристик модулярного представления с линейной сложностью // Информационные технологии и вычислительные системы. 2024. Вып. 1. С. 109–122. https://doi.org/10.14357/20718632240111.

8. Инютин С. А. Комплексирование систем счисления для многоразрядных вычислительных процессов // Информационные технологии. 2018. Т. 24, № 12. С. 782–790. https://doi.org/10.17587/it.24.782-790.


Об авторе

Н. С. Золотарева
Сургутский государственный университет, Сургут
Россия

аспирант



Рецензия

Для цитирования:


Золотарева Н.С. Анализ сложности арифметических операций в модулярной системе счисления квадратичного диапазона. Вестник кибернетики. 2025;24(3):44-54. https://doi.org/10.35266/1999-7604-2025-3-5

For citation:


Zolotareva N.S. Arithmetic operations’ complexity analysis in modular arithmetic within quadratic range. Proceedings in Cybernetics. 2025;24(3):44-54. (In Russ.) https://doi.org/10.35266/1999-7604-2025-3-5

Просмотров: 130


Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 1999-7604 (Online)