<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">procyber</journal-id><journal-title-group><journal-title xml:lang="ru">Вестник кибернетики</journal-title><trans-title-group xml:lang="en"><trans-title>Proceedings in Cybernetics</trans-title></trans-title-group></journal-title-group><issn pub-type="epub">1999-7604</issn><publisher><publisher-name>Бюджетное учреждение высшего образования Ханты-Мансийского автономного округа – Югры «Сургутский государственный университет»</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.35266/1999-7604-2025-3-5</article-id><article-id custom-type="elpub" pub-id-type="custom">procyber-697</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>ТЕХНИЧЕСКИЕ НАУКИ</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="en"><subject>Engeneering</subject></subj-group></article-categories><title-group><article-title>Анализ сложности арифметических операций в модулярной системе счисления квадратичного диапазона</article-title><trans-title-group xml:lang="en"><trans-title>Arithmetic operations’ complexity analysis in modular arithmetic within quadratic range</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><contrib-id contrib-id-type="orcid">https://orcid.org/0000-0001-9751-4232</contrib-id><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Золотарева</surname><given-names>Н. С.</given-names></name><name name-style="western" xml:lang="en"><surname>Zolotareva</surname><given-names>N. S.</given-names></name></name-alternatives><bio xml:lang="ru"><p>аспирант</p></bio><bio xml:lang="en"><p>Postgraduate</p></bio><email xlink:type="simple">zolotareva_ns@surgu.ru</email><xref ref-type="aff" rid="aff-1"/></contrib></contrib-group><aff-alternatives id="aff-1"><aff xml:lang="ru"><institution>Сургутский государственный университет, Сургут</institution><country>Россия</country></aff><aff xml:lang="en"><institution>Surgut State University, Surgut</institution><country>Russian Federation</country></aff></aff-alternatives><pub-date pub-type="collection"><year>2025</year></pub-date><pub-date pub-type="epub"><day>14</day><month>10</month><year>2025</year></pub-date><volume>24</volume><issue>3</issue><fpage>44</fpage><lpage>54</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Золотарева Н.С., 2025</copyright-statement><copyright-year>2025</copyright-year><copyright-holder xml:lang="ru">Золотарева Н.С.</copyright-holder><copyright-holder xml:lang="en">Zolotareva N.S.</copyright-holder><license license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://www.vestcyber.ru/jour/article/view/697">https://www.vestcyber.ru/jour/article/view/697</self-uri><abstract><p>Исследование посвящено изучению особенностей и эффективности модулярной системы счисления квадратичного диапазона, включая реализацию базовых арифметических операций на серийных (позиционных) компьютерах. Основной целью является проанализировать структуру и особенности выполнения различных арифметических операций в модулярной системе счисления квадратичного диапазона и провести сравнение их временной сложности с аналогичными операциями в традиционных позиционных системах счисления. Для достижения поставленной цели были сформулированы следующие задачи: изучение структуры и особенностей модулярной системы счисления квадратичного диапазона, реализация базовых арифметических операций на языке Python, проведение экспериментов и анализ временной сложности операций. Методология исследования включает теоретическое изучение основ модулярной системы счисления квадратичного диапазона, создание алгоритмов выполнения операций на Python, экспериментальное тестирование и анализ результатов. Результатом исследования является создание алгоритма выполнения арифметических операций в модулярной системе счисления квадратичного диапазона, выявление значительного выигрыша в производительности по сравнению с позиционными системами счисления, подтвержденного экспериментально. Таким образом, данное исследование подтверждает перспективность применения модулярной системы счисления для повышения производительности в задачах с высокими требованиями к быстродействию и ресурсоемкости.</p></abstract><trans-abstract xml:lang="en"><p>The authors study the features and effectiveness of modular arithmetic within a quadratic range, including the implementation of basic arithmetic operations on commodity computers. The research aim is to analyze the structure and features of performing various arithmetic operations in the modular arithmetic within quadratic range and compare their time complexity with similar operations in traditional positional systems. To meet this objective, the authors investigated the structure and characteristics of modular arithmetic within a quadratic range. They implemented arithmetic operations in Python, performed experiments, and assessed the time complexity of operations. The research methods include a theoretical study of the basis of the modular arithmetic within quadratic range, the creation of algorithms for performing operations in Python, experimental testing and analysis of the results. The research result is the creation of an algorithm for performing arithmetic operations in the modular arithmetic within quadratic range, revealing a significant performance gain compared to positional number systems, confirmed experimentally. Therefore, this study proves that modular arithmetic can improve task productivity that requires speed and resources.</p></trans-abstract><kwd-group xml:lang="ru"><kwd>модулярная система</kwd><kwd>квадратичный диапазон</kwd><kwd>арифметические операции</kwd><kwd>временная сложность</kwd><kwd>позиционные системы</kwd><kwd>последовательная обработка</kwd><kwd>позиционные компьютеры</kwd></kwd-group><kwd-group xml:lang="en"><kwd>modular arithmetic</kwd><kwd>quadratic range</kwd><kwd>arithmetic operations</kwd><kwd>time complexity</kwd><kwd>positional system</kwd><kwd>sequential processing</kwd><kwd>commodity computer</kwd></kwd-group></article-meta></front><body><sec><title>ВВЕДЕНИЕ</title><p>Модулярная система счисления (МСС) квадратичного диапазона представляет собой расширение традиционной модулярной системы счисления (одинарного диапазона). МСС предназначена для работы в больших числовых областях и специфическими алгоритмами обработки чисел. Она является математической моделью для реализации вычислений на цифровых вычислительных устройствах.</p><p>К основным компонентам МСС квадратичного диапазона относятся следующие.</p><p>Элементы этой совокупности представляют собой числа, выраженные в виде вычетов по различным основаниям. Эти основания определяют конкретный диапазон значений, внутри которого проводятся операции над числами. Каждое число записывается в виде остатков от деления на некоторые фиксированные основания – модули.</p><p>Операции, выполняемые над представленными в МСС данными, делят на два класса: модульные и немодульные. Модульные характеризуются тем, что при их выполнении не происходит переносов между разрядами. Примерами таких операций являются сложение, вычитание и умножение, деление нацело, умножение на обратный элемент и др. К немодульным операциям отнесены деление, расширение, определение знака, сравнение, определение переполнения, масштабирование, определение ошибки, локализация ошибки, вычисление ранга и др. Для выполнения этих операций, в отличие от модульных, требуется оценка значения числа в целом, которая затруднена в связи с непозиционной природой МСС [<xref ref-type="bibr" rid="cit1">1</xref>][<xref ref-type="bibr" rid="cit2">2</xref>].</p><p>Алгоритмические процедуры предназначены для оптимизации процесса вычислений, минимизации временных затрат и повышения точности результатов.</p><p>Вычисления производятся над числами, представленными в типовом машинном формате, который соответствует возможностям конкретного компьютера. Такие числа задаются в виде цифр, соответствующих позициям позиционной системы счисления. Применяется на практике:</p><p>– двоичная система, которая используется благодаря простоте аппаратной реализации и эффективности хранения информации;</p><p>– шестнадцатеричная система применяется, когда нужна компактность представления больших объемов данных и удобство восприятия человеком.</p></sec><sec><title>МАТЕРИАЛЫ И МЕТОДЫ</title><p>В данном исследовании основные арифметические операции в МСС реализованы на серийном (позиционном) компьютере.</p><p>Серийный компьютер – это вычислительная система классической архитектуры, в которой операнды представлены в позиционной системе счисления (ПСС), а операции выполняются последовательно. Термин «серийный» подчеркивает традиционный подход к обработке данных, в отличие от специализированных систем, таких как модулярные компьютеры.</p><p>К основным характеристикам серийных компьютеров можно отнести следующие.</p><p>Операции в МСС, реализованные на серийном (позиционном) компьютере, сопровождаются рядом трудностей.</p><p>Преобразование между системами счисления требует вычислительных ресурсов.</p><p>Введем основные понятия и определения для МСС квадратичного диапазона.</p><p>В МСС каждое число представляется в виде набора остатков по соответствующим основаниям (модулям), позволяющим эффективно использовать ресурсы оборудования и минимизировать ошибки округления при выполнении сложных расчетов [<xref ref-type="bibr" rid="cit3">3</xref>].</p><p>Стоит отметить, что в статье модули, по которым вычисляются наименьшие неотрицательные вычеты по модулю (остатки от деления), называются в этой тематике основаниями одинарной или квадратичной МСС.</p><p>Определение: Модулярная система счисления квадратичного диапазона – это совокупность математических конструкций и правил, предназначенных для представления и обработки чисел с использованием системы взаимно простых модулей, каждый из которых является квадратом простого числа.</p><p>Пусть p1, p2, ... pn – простые числа и пусть mi = pi2, i = 1, 2, ..., n – соответствующие квадратичные модули. Тогда любое целое число X в диапазоне [0, M − 1], где M = m1 · m2 · ... · mn, может быть однозначно представлено в виде набора остатков:</p><p>X = (a1, a2, ... an) (m1, m2, ... mn),</p><p>где ai – остаток от деления числа X на модуль mi, то есть ai = X mod mi; пара a1, a2, ... an называется модулярным представлением числа X.</p><p>Определение: Квадратичный модуль – это модуль, задаваемый в виде квадрата простого числа ρ, то есть m = ρ2.</p><p>Определение: Диапазон значений – множество чисел, представленных в МСС с квадратичными модулями, ограничено верхним пределом, равным произведению всех модулей.</p><p>Китайская теорема об остатках (КТО) – известная в теории чисел. Из теоремы следует: если заданы попарно взаимно простые модули m1, m2, ... mn, то любое число Y в диапазоне [0, M − 1], где M = m1 · m2 · ... · mn, может быть однозначно представлено своими остатками по этим модулям.</p><p>Теорема: Пусть m1, m2, ... mn – попарно взаимно простые числа, то есть НОД(mi, mj) = 1 для всех i ≠ j. Тогда система сравнений:</p><p>имеет единственное решение Y в диапазоне [0, M − 1], где M = m1 · m2 · ... · mn.</p><p>Доказательство.</p><p>Пусть модули m1, m2, ... mn попарно взаимно просты, то есть НОД(mi, mj) = 1 для всех i ≠ j. Требуется доказать существование и единственность решения Y в указанном диапазоне. </p><p>Так как модули попарно взаимно просты, очевидно, что Mi и mi также взаимно просты для каждого i.</p><p>Для каждого Mi найдем обратный элемент Xi по модулю mi, то есть такое число, что:</p><p>(Xi ∙ Mi) ≡ 1(mod mi)</p><p>Обратные элементы можно найти с помощью расширенного алгоритма Евклида.</p><p>III. Далее воспользуемся формулой:</p><p>Рассмотрим арифметические операции в МСС квадратичного диапазона.</p><p>Сложение и вычитание в МСС квадратичного диапазона выполняются поэлементно по каждому модулю с последующим вычислением остатка [<xref ref-type="bibr" rid="cit1">1</xref>][<xref ref-type="bibr" rid="cit2">2</xref>][<xref ref-type="bibr" rid="cit4">4</xref>][<xref ref-type="bibr" rid="cit5">5</xref>]. Пусть заданы два числа A = α1 · α2 · ... · αn и B = β1 · β2 · ... · βn, где αi и βi – остатки по модулям mi = pi2, а pi – простые числа. Тогда:</p><p>A + B = (α1 + β1 (mod m1), α2 + β2 (mod m2),…, αn + βn (mod mn)),</p><p>A – B = (α1 – β1 (mod m1), α2 – β2 (mod m2),…,αn – βn (mod mn)).</p><p>Умножение также выполняется поэлементно с последующим взятием остатка:</p><p>A · B = (α1 · β1 (mod m1), α2 · β2 (mod m2),…,αn · βn (mod mn)).</p><p>Результаты операций сложения, вычитания и умножения A + B, A – B и A · B представлены остатками γi σi и δi по тем же основаниям системы счисления mi.</p><p>A + B = (γ1 , γ2, ... · γn),</p><p>A – B = (σ1 , σ2, ... · σn),</p><p>A · B = (δ1 , δ2, ... · δn),</p><p>где γi сравнимо с αi + βi по модулю mi, σi сравнимо с αi – βi по модулю mi, δi сравнимо с αi · βi по тому же модулю, выполняются соотношения:</p><p>γi = αi + βi (mod mi),</p><p>σi = αi – βi (mod mi),</p><p>δi = αi · βi (mod mi).</p><p>Результатом являются числа:</p><p>Пример 1. Рассмотрим выполнение данных операций на примере.</p><p>В компьютерах, поддерживающих 32-битные числа, типовой диапазон чисел – от 0 до 232 − 1. Ставится задача – выбрать подходящий набор квадратичных модулей, который покроет этот диапазон, и выполнить операции сложения, вычитания и умножения в МСС.</p><p>В качестве оснований выберем взаимно простые числа, квадраты которых дадут достаточное покрытие диапазона: 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 &gt; 232 − 1 = 4294967295.</p><p>Необходимость превышения произведения модулей над машинным диапазоном обусловлена особенностью МCС и требованием полной однозначности представления чисел.</p><p>Пусть даны два числа, представленных в МСС: A = (23, 87, 12, 34, 56) и B = (17, 34, 157, 89, 112).</p><p>Выполняем поэлементное сложение с последующим взятием остатка по каждому модулю:</p><p>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).</p><p>Аналогично выполняем поэлементное вычитание со взятием остатка:</p><p>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).</p><p>При выполнении операции вычитания в МСС результатом может оказаться отрицательное число. Однако в МСС работают с неотрицательными числами, ограниченными пределами выбранного модуля. Для перевода результата в стандартный вид применяется простая процедура: если число получилось отрицательным, к нему добавляют модуль. Это обусловлено следующими причинами:</p><p>В МСС действует циклическая арифметика. Если вычитается число и получается отрицательный результат, то это эквивалентно перемещению по кругу на определенное расстояние влево, и возвращение в положительную зону можно выполнить добавлением модуля.</p><p>Периодичность и цикличность в МСС позволяют работать с числами в ограниченном диапазоне, создавая эффект возврата в начало при выходе за пределы. Это важнейшее свойство, лежащее в основе модулярной арифметики и обеспечивающее корректность вычислений.</p><p>В МСС каждое число в диапазоне [0, M − 1] должно иметь единственное представление. Появление отрицательного числа нарушает это правило, поэтому нормализация необходима.</p><p>Добавление модуля нормализует результат и восстанавливает нормальное состояние системы, позволяя продолжить вычисления без нарушения законов модулярной арифметики.</p><p>На примерах выполним поэлементное умножение с последующим взятием остатка:</p><p>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).</p><p>Возведение в степень в МСС квадратичного диапазона выполняется поэлементно с последующим взятием остатка по каждому модулю.</p><p>Пусть A = (23, 87, 12, 34, 56) и k = 5. Необходимо найти Ak.</p><p>Для каждого модуля mi возводим соответствующую компоненту числа A в степень k и берем остаток по модулю mi.</p><p>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).</p><p>Нахождение обратного числа в МСС квадратичного диапазона выполняется поэлементно с использованием расширенного алгоритма Евклида. Это позволяет эффективно обрабатывать числа и выполнять обратные операции в МСС.</p><p>Определение: Обратное число A–1 по модулю mi – это такое число, что: A–1 · A ≡ 1 (mod mi).</p><p>Для каждого модуля mi находится обратный элемент Xi для соответствующей компоненты числа A по модулю mi. Будем использовать расширенный алгоритм Евклида для поиска обратных элементов. Рассмотрим его подробно.</p><p>Требуется найти обратный элемент Y для числа A по модулю m, то есть такое число Y, что:</p><p>A · X ≡ 1 (mod m).</p><p>Расширенный алгоритм Евклида основан на классическом алгоритме Евклида для нахождения наибольшего общего делителя (НОД), дополненном поиском коэффициентов Безу.</p><p>Алгоритм</p><p>Пусть A и m – заданные числа, причем НОД(A, m) = 1 (условие взаимной простоты). Введем начальные значения: x0 = 1, x1 = 0, y0 = 0, y1 = 1.</p><p>Пока m ≠ 0, делаем следующие шаги:</p><p>Обновляем коэффициенты:</p><p>(x0, x1) = ( x1, x0 − q · x1),( y0, y1) = ( y1, y0 − q · y1).</p><p>III. Завершение цикла.</p><p>Когда m = 0, последний ненулевой остаток A – это НОД. Если A = 1, то обратный элемент найден и равен x0.</p><p>Пример 2. Пусть A = (23, 87, 12, 34, 56). Необходимо найти A–1.</p><p>Найдем обратный элемент для A = 23 по модулю m = 289.</p><p>A = 23, m = 289, x0 = 1, x1 = 0, y0 = 0, y1 = 1.</p><p>Первый шаг:</p><p>Обновляем коэффициенты:</p><p>A = 289, m = 23, x0 = 0, x1 = 1, y0 = 1, y1 = 0.</p><p>Второй шаг:</p><p>Обновляем коэффициенты:</p><p>A = 23, m = 13, x0 = 1, x1 = –12, y0 = 0, y1 = 1.</p><p>Третий шаг:</p><p>Обновляем коэффициенты:</p><p>A = 13, m = 10, x0 = –12, x1 = 13, y0 = 1, y1 = –1.</p><p>Четвертый шаг:</p><p>Обновляем коэффициенты:</p><p>A = 10, m = 3, x0 = 13, x1 = –25, y0 = −1, y1 = 2.</p><p>Пятый шаг:</p><p>Обновляем коэффициенты:</p><p>A = 3, m = 1, x0 = –25, x1 = 88, y0 = −2, y1 = 7.</p><p>Последний шаг:</p><p>Обновляем коэффициенты:</p><p>A = 1, m = 0, x0 = 88, x1 = −299, y0 = −7, y1 = 23.</p><p>III. Завершение.</p><p>Последний ненулевой остаток A = 1, следовательно, обратный элемент равен x0 = 88.</p><p>Расширенный алгоритм Евклида позволил найти обратный элемент к числу 23 по модулю 289, он равен 88.</p><p>Чтобы проверить результат, подставим его в исходное уравнение:</p><p>A · X ≡ 1 (mod m)</p><p>23 · 88 ≡ 1 (mod 289)</p><p>Вычислим левую сторону: 23 · 88 = 2024.</p><p>Теперь возьмем остаток от деления на 289: 2024 (mod 289) = 1.</p><p>Таким образом, уравнение выполняется, и 88 действительно является обратным элементом к 23 по модулю 289.</p><p>Аналогично, найдем обратные элементы для остальных компонент числа A = (23, 87, 12, 34, 56) по остальным модулям p2 = 361, p3 = 529, p4 = 841, p5 = 961. Используя расширенный алгоритм Евклида для каждого модуля отдельно, получим:</p><p>87 · 83 ≡ 1 (mod 361)</p><p>12 · 485 ≡ 1 (mod 529)</p><p>34 · 470 ≡ 1 (mod 841)</p><p>56 · 532 ≡ 1 (mod 961)</p><p>Обратное число для A = (23, 87, 12, 34, 56) по модулям p1 = 289, p2 = 361, p3 = 529, p4 = 841, p5 = 961 соответственно: A−1 = (88, 83, 485, 470, 532).</p><p>Рассмотрим отдельно случай для компоненты α5 = 56 числа A, по модулю p5 = 961. Расширенный алгоритм Евклида позволил нам найти, что обратный элемент к числу 56 по модулю 961 равен –429. Однако в модулярной арифметике результат должен находиться в диапазоне от [0, p5 − 1]. В нашем случае модуль равен 961.</p><p>Чтобы привести результат к нужному диапазону, мы добавляем модуль к отрицательному числу:</p><p>–429 + 961 = 532.</p><p>Таким образом, –429 эквивалентно 532 по модулю 961.</p><p>Нормализация отрицательного результата путем добавления модуля – это стандартная практика в модулярной арифметике, позволяющая приводить результаты к корректному диапазону.</p><p>Для перевода числа из МСС в ПСС используется КТО. Она позволяет построить число Y в ПСС, исходя из остатков по каждому модулю.</p><p>Пример 3. Пусть задано число в МСС в виде остатков A = (23, 87, 12), модули m1 = 49, m2 = 121, m3 = 169.</p><p>1) Находим произведение модулей:</p><p>M = 49 ∙ 121 ∙ 169 = 1002001.</p><p>2) Вычислим: </p><p>3) Используя расширенный алгоритм Евклида, находим обратные элементы:</p><p>Найдем обратный элемент X1 для M1 по модулю m1 = 49:</p><p>X1 = 46, так как 46 ∙ 20449 ≡ 1 (mod 49).</p><p>Найдем обратный элемент X2 для M2 по модулю m2 = 121:</p><p>X2 = 16, так как 16 ∙ 8281 ≡ 1 (mod 121).</p><p>Найдем обратный элемент X3 для M3 по модулю m3 = 169:</p><p>X3 = 157, так как 157 ∙ 5929 ≡ 1 (mod 169).</p><p>4) Собираем результат:</p><p>Y = (23 ∙ 46 ∙ 20449 + 87 ∙ 16 ∙ 8281 + + 12 ∙ 157 ∙ 5929) (mod 1002001) = 44332430 (mod 1002001) = 244386.</p><p>Таким образом, число A = (23, 87, 12) в позиционной системе равно 244386.</p></sec><sec><title>РЕЗУЛЬТАТЫ И ИХ ОБСУЖДЕНИЕ</title><p>На языке программирования Python разработаны программы выполнения рассмотренных операций. Приведены фрагменты алгоритмов и результаты (рис. 1–4).</p><fig id="fig-1"><caption><p>Рис. 1. Импорт необходимых библиотек</p><p>Примечание: составлено автором на основании данных, полученных в исследовании.</p><p>Рис. 2. Вспомогательные функции</p><p>Примечание: составлено автором на основании данных, полученных в исследовании.</p><p>Рис. 3. Основная программа</p><p>Примечание: составлено автором на основании данных, полученных в исследовании.</p><p>Рис. 4. Результат</p><p>Примечание: составлено автором на основании данных, полученных в исследовании.</p></caption><graphic xlink:href="procyber-24-3-g001.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/9zGUki61Pke6Z67lwSPO1xvbDwvTkXx8SooMGN4O.jpeg</uri></graphic><graphic xlink:href="procyber-24-3-g001.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/XvGW0vVBclytzNbZFJeFJw3JxHk94XNn434cBnXY.jpeg</uri></graphic><graphic xlink:href="procyber-24-3-g001.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/WppvJkCrpN6hatDQFGyNhxv06WiB1F6J1pJguIja.jpeg</uri></graphic><graphic xlink:href="procyber-24-3-g001.jpeg"><uri content-type="original_file">https://cdn.elpub.ru/assets/journals/procyber/2025/3/X2bQRc1v6wM8WrQKhgJXoMh4sVF8GXTwUl6Y9ED7.jpeg</uri></graphic></fig><p>Исходные данные: в МСС квадратичного диапазона представлены числа 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.</p><p>Анализ сложности операций в МСС квадратичного диапазона позволяет оценить ресурсы, необходимые для выполнения операций, и служит важным фактором при выборе подходящей методики и оптимизации производительности [<xref ref-type="bibr" rid="cit6">6</xref>][<xref ref-type="bibr" rid="cit8">8</xref>].</p><p>Оценка сложности алгоритмов – это мера количества ресурсов времени, необходимого для выполнения алгоритма в зависимости от размера входных данных. Сложность позволяет сравнить алгоритмы и выбрать наиболее эффективный.</p><p>Обычно сложность оценивается в следующих терминах. Временная сложность – сколько времени займет выполнение алгоритма и пространственная сложность – сколько памяти потребуется для выполнения алгоритма. Чаще всего рассматривают временную сложность, так как она отражает скорость выполнения.</p><p>Проведем анализ сложности операций сложения, вычитания, умножения, возведения в степень и нахождения обратного элемента.</p><p>Временная сложность операции сложения: O(n), где n – количество модулей.</p><p>В ПСС сложность данных операций напрямую зависит от размера чисел, участвующих в расчетах. Операции занимают время порядка O(n), где n – количество цифр в числе (базисная единица измерения сложности).</p><p>Временная сложность операции сложения: O(n), где n – количество модулей.</p><p>Для сравнения в позиционной системе счисления (ПСС) сложность следующая:</p><p>– классический метод: сложность O(n 2), где n – количество цифр в числе.</p><p>– быстрый метод (Карацуба): сложность O(nlog23).</p><p>– самый быстрый известный метод (FFT): сложность O(n log n) где n – размер входных данных.</p><p>В ПСС при умножении двух чисел длиной n цифр нужно выполнить n 2 операций сложения и переноса, что и приводит к квадратичной сложности.</p><p>В МСС квадратичного диапазона же каждое умножение выполняется отдельно по каждому модулю, что существенно снижается до линейной сложности.</p><p>В ПСС операция возведения числа в степень имеет следующую сложность.</p><p>Простой метод: сложность O(nk), где n – количество цифр, k – показатель степени.</p><p>Быстрый метод (Binary Exponentiation): сложность O(n ∙ log k).</p><p>В ПСС возведение в степень приводит к росту числа разрядов, что требует больших ресурсов для обработки.</p><p>Таблица показывает временную сложность арифметических операций для одинарной и квадратичной, а также позиционной систем счисления. Все они используются для отображения чисел из одинаковых числовых диапазонов. Обозначения в МСС: n – количество модулей, k – показатель степени, M – максимальный модуль; в ПСС: n – размер входных данных (количество цифр в числе), k – показатель степени. </p><table-wrap id="table-1"><caption><p>Таблица</p><p>Временная сложность выполнения арифметических операций</p><p>Примечание: составлено автором на основании данных, полученных в исследовании.</p></caption><table><tbody><tr><td>Система счисления</td><td>Основные арифметические операции</td></tr><tr><td>Сложение</td><td>Вычитание</td><td>Умножение</td><td>Возведение в степень</td><td>Нахождение обратного элемента</td></tr><tr><td>Позиционная система счисления</td><td>O(n)</td><td>O(n)</td><td>O(n 2)O(nlog23)O(n ∙ logn)</td><td>O(nk)O(n ∙ logk)</td><td>O(n 2)</td></tr><tr><td>МСС одинарного диапазона</td><td>O(n)</td><td>O(n)</td><td>O(n)</td><td>O(n ∙ logk)</td><td>O(n ∙ logM)</td></tr><tr><td>МСС квадратичного диапазона</td><td>O(n)</td><td>O(n)</td><td>O(n)</td><td>O(n ∙ logk)</td><td>O(n ∙ logM)</td></tr></tbody></table></table-wrap><p>Из таблицы можно заметить, что сложность арифметических операций для одинарной и квадратичной МСС одинаковая. Причина заключается в том, что фундаментальная структура операций в обеих системах идентична и ключевым параметром является не сама величина модулей, а их количество. Количество шагов остается постоянным, и разница проявляется лишь в максимальном диапазоне представлений чисел, но не в самой процедуре вычислений.</p></sec><sec><title>ЗАКЛЮЧЕНИЕ</title><p>Исследование посвящено анализу модулярной системы счисления квадратичного диапазона, ее структуре и особенностям выполнения основных арифметических операций на серийных (позиционных) компьютерах. Оцениваются временные затраты на выполнение основных арифметических операций в сравнении с позиционными системами счисления. На языке программирования Python разработан алгоритм выполнения основных арифметических операций, приведены результаты его работы.</p><p>Проведенное исследование позволяет сделать следующие выводы:</p><p>Большинство операций в МСС квадратичного диапазона имеют низкую сложность и обеспечивают высокую производительность. Линейные операции особенно привлекательны для крупномасштабных вычислений, тогда как операции с логарифмической зависимостью требуют внимания к размерам показателей степени и модулей.</p><p>К недостаткам реализации МСС квадратичного диапазона на серийном компьютере можно отнести следующие:</p><p>– медленная обработка – преобразование между системами счисления требует значительных вычислительных ресурсов. Операции в ПСС выполняются последовательно, что снижает производительность;</p><p>– большой объем данных – представление чисел в МСС может потребовать больших объемов памяти для хранения промежуточных результатов;</p><p>– ограниченные возможности параллельной обработки – серийные компьютеры не приспособлены для параллельной обработки данных, что делает их менее эффективными для массовых вычислений.</p><p>Серийные компьютеры широко используются в жизни и науке. Они универсальны, что делает их популярными в различных областях, от персональных компьютеров до серверов и суперкомпьютеров.</p><p>Альтернативой серийным компьютерам являются специализированные многопроцессорные (модулярные) компьютеры.</p><p>Специализированные многопроцессорные компьютеры, работающие с МСС, специально разработаны для параллельной обработки данных. Они позволяют эффективно выполнять операции в МСС, распределяя нагрузку между процессорами и используя преимущества параллельных вычислений. Целесообразно рассмотреть сложность выполнения операций в специализированных многопроцессорных компьютерах, которые разработаны для работы с МСС и обеспечивают высокую производительность.</p></sec></body><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">Акушский И. Я., Юдицкий Д. И. Машинная арифметика в остаточных классах. М. : Советское радио, 1968. 440 с.</mixed-citation><mixed-citation xml:lang="en">Акушский И. Я., Юдицкий Д. И. Машинная арифметика в остаточных классах. М. : Советское радио, 1968. 440 с.</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">Амербаев В. М. Теоретические основы машинной арифметики. Алма-Ата : Наука, 1976. 320 с.</mixed-citation><mixed-citation xml:lang="en">Амербаев В. М. Теоретические основы машинной арифметики. Алма-Ата : Наука, 1976. 320 с.</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">Червяков Н. И., Коляда А. А., Ляхов П. А. и др. Модулярная арифметика и ее приложения в инфокоммуникационных технологиях : моногр. М. : Физматлит, 2017. 400 с.</mixed-citation><mixed-citation xml:lang="en">Червяков Н. И., Коляда А. А., Ляхов П. А. и др. Модулярная арифметика и ее приложения в инфокоммуникационных технологиях : моногр. М. : Физматлит, 2017. 400 с.</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">Инютин С. А. Модулярная алгоритмика многоразрядных вычислений. М. : Московский авиационный институт (национальный исследовательский университет), 2020. 160 с.</mixed-citation><mixed-citation xml:lang="en">Инютин С. А. Модулярная алгоритмика многоразрядных вычислений. М. : Московский авиационный институт (национальный исследовательский университет), 2020. 160 с.</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">Золотарева Н. С. Обзор методов и оценка сложности алгоритмов операций сравнения в модулярной арифметике и перевода из модулярной системы в позиционную систему счисления // Вестник кибернетики. 2022. № 4. С. 77–90. https://doi.org/10.34822/1999-7604-2022-4-77-90.</mixed-citation><mixed-citation xml:lang="en">Золотарева Н. С. Обзор методов и оценка сложности алгоритмов операций сравнения в модулярной арифметике и перевода из модулярной системы в позиционную систему счисления // Вестник кибернетики. 2022. № 4. С. 77–90. https://doi.org/10.34822/1999-7604-2022-4-77-90.</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">Инютин С. А. Дробно-рациональные конструкции в компьютерной модулярной арифметике // Информационные технологии. 2019. Т. 25, № 9. С. 515–521.</mixed-citation><mixed-citation xml:lang="en">Инютин С. А. Дробно-рациональные конструкции в компьютерной модулярной арифметике // Информационные технологии. 2019. Т. 25, № 9. С. 515–521.</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">Инютин С. А. Метод вычисления позиционных характеристик модулярного представления с линейной сложностью // Информационные технологии и вычислительные системы. 2024. Вып. 1. С. 109–122. https://doi.org/10.14357/20718632240111.</mixed-citation><mixed-citation xml:lang="en">Инютин С. А. Метод вычисления позиционных характеристик модулярного представления с линейной сложностью // Информационные технологии и вычислительные системы. 2024. Вып. 1. С. 109–122. https://doi.org/10.14357/20718632240111.</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">Инютин С. А. Комплексирование систем счисления для многоразрядных вычислительных процессов // Информационные технологии. 2018. Т. 24, № 12. С. 782–790. https://doi.org/10.17587/it.24.782-790.</mixed-citation><mixed-citation xml:lang="en">Инютин С. А. Комплексирование систем счисления для многоразрядных вычислительных процессов // Информационные технологии. 2018. Т. 24, № 12. С. 782–790. https://doi.org/10.17587/it.24.782-790.</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
