Для реализации вычислительного процесса с использованием полиномиальной системы классов вычетов необходимо осуществить преобразование из позиционного кода в модулярный и обратно.
Представление операнда в позиционном счислении определяется следующим образом
(1)
где aj - элементы поля GF(2); j = 0, ... , r.
Для перевода из позиционной системы счисления в непозиционную, заданную взаимно простыми основаниями p1(z), p2(z), ..., pn(z), необходимо выполнить операции деления на модули p1(z), i = 1, 2, ..., n. Образование остатка αi(z) в этом случае осуществляется следующим образом
(2)
где [A(z) / pi(z) ]- наименьшее целое от деления A(z) на основание pi(z); i=1, 2,..., n.
Таким образом, целью данной статьи является систематизация методов перевода из позиционного двоичного кода в коды системы классов вычета и выделение наиболее перспективных из них.
Все множество методов перевода из позиционной системы счисления в систему классов вычетов можно свести к трем основным группам. В основу методов, образующих первую группу, положен метод понижения разрядности числа, не содержащий операцию деления.
В основу данного метода положен следующий принцип: вычисление остатка осуществляется с помощью итерационного алгоритма. Для этого необходимо определить остатки от деления на pi степеней основания, которые дадут набор чисел Ci, i=1, 2,..., r. Если остаток от деления степени основания Ci превосходит половину модуля pi , то в качестве значения Ci необходимо взять число, дополняющее до значения pi, со знаком минус. Значения Ci можно знать заранее и они являются константами для выбранной системы счисления. Количество разрядов Ci определяется разрядностью исходного числа A. Затем цифры исходного числа умножаются на соответствующие числа Ci, полученная сумма определяется
(3)
По значению Ai можно узнать каков остаток от деления числа A на pi.. Если Ai имеет количество разрядов больше, чем pi., то вновь цифры числа Ai необходимо умножить на числа Ci , причем полученная сумма будет A2 < Ai.
По значению A2 можно узнать каков остаток от деления числа A на pi.. Этот продолжается до тех пор, пока не получится число Ai, разрядностью равной или меньшей разрядности pi.. По данному числу и определяется остаток от деления числа A на pi..
Несмотря на простоту реализации, данный метод преобразования чисел по модулю, построенных по принципу рекуррентной редукции, значительно сужают область применения модулярной арифметики.
Основу второй группы составляют методы, обеспечивающие пространственное распределение вычислительного процесса - перевода из ПСС в ПСКВ. Отказ от обратных связей в нейронных сетях позволяет устранить указанные выше недостатки и реализует обработку исходных данных на сети прямого распространения. В настоящее время предложена математическая модель нейронной сети, реализующей прямое преобразование позиционного двоичного кода в код классов вычетов, на основе сети прямого распространения. Число слоев в такой сети определяется количеством итераций l, необходимых для преобразования входных данных, а количество нейронов в каждом слое - разрядностью обрабатываемых данных на каждой из итераций. В этом случае итеративный алгоритм преобразования A по модулю p определяется выражением
(4)
где l=0, 1, 2,... - число итераций.
Замена обратных связей в нейронных сетях на прямые позволяет повысить скорость обработки данных, так как в такой сети одновременно обрабатывается несколько отсчетов и в каждом такте работы сети на входе формируются преобразованные данные.
Вычислительные процессы третьей группы методов перевода чисел из ПСС в непозиционную систему реализуют различные варианты метода непосредственного суммирования.
Перевод из позиционного двоичного кода в ПСКВ осуществляется в соответствии с выражением
(5)
где i=1, 2,..., n..
Для получения A(z) в системе классов вычетов с основаниями p1(z), p2(z),..., pn(z) необходимо получить в этой системе значения al(z) · zl mod pi(z). В этом случае остаток по модулю pi(z) определяется
(6)
где ali = al mod pi(z), i = 1, 2, ..., n.
В соответствии с (6), перевод A(z) из позиционной системы счисления в непозиционную сводится к суммированию по модулю два величин (ali(z) · zl) mod pi(z) в соответствии с заданным полиномом A(z).
Таким образом, очевидно, что модификация и реализация метода непосредственного суммирования для полиномиальной системы классов вычетов позволяет разрабатывать высокоскоростные преобразователи кодов для вычислительных структур реального масштаба времени.
Библиографическая ссылка
Сагдеев А.К., Петлеваный С.В. ПРЯМОЕ ПРЕОБРАЗОВАНИЕ ИЗ ДВОИЧНОГО КОДА В КОД ПСКВ // Современные наукоемкие технологии. – 2007. – № 4. – С. 47-48;URL: https://top-technologies.ru/ru/article/view?id=24856 (дата обращения: 17.08.2024).