Научная статья на тему 'Алгоритм выполнения операции деления чисел на два в системе остаточных классов'

Алгоритм выполнения операции деления чисел на два в системе остаточных классов Текст научной статьи по специальности «Математика»

CC BY
185
34
Читать
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АЛГОРИТМ / ДіЛЕННЯ ЧИСЕЛ / ЗАЛИШКОВИЙ КЛАС / ДЕЛЕНИЕ ЧИСЕЛ / ОСТАТОЧНЫЙ КЛАСС / ALGORITHM DIVISION / NUMBERS / REMAINING CLASS

Аннотация научной статьи по математике, автор научной работы — Полисский Ю. Д.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Полисский Ю. Д.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
Предварительный просмотр
i Надоели баннеры? Вы всегда можете отключить рекламу.

The method of solving problem of division on two for numbers in residue class system are observed. The method is algorithmically simple and not complicated to scheme realization for making of effective computing''s structures.

Текст научной работы на тему «Алгоритм выполнения операции деления чисел на два в системе остаточных классов»

УДК' 681.04

Ю. Д. ПОЛИССКИЙ (НИИАЧМ)

АЛГОРИТМ ВЫПОЛНЕНИЯ ОПЕРАЦИИ ДЕЛЕНИЯ ЧИСЕЛ НА ДВА В СИСТЕМЕ ОСТАТОЧНЫХ КЛАССОВ

Розтлянуто метод розв'язання задач) дшення на два чисел у систем! залишкових класш. Метод алгоритм!чно простий та не складни й для схемно) реал5зацп при створе KHi ефективних обчислювальних структур.

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

The method of solving problem of division on two for numbers in residue class system are observed. The method is algorithmically simple and not complicated to scheme realization for making of effective computing's structures.

Введение

Применение непозиционной системы остаточных классов (СОК) [1] открыло новые возможности повышения производительности вычислительных структур и надежности вычислений. По данным руководителя научной школы в Украине проф. М. В. Синькова [2] СОК «...нашла воплощение в серийных универсальных ЭВМ и многих оригинальных разработках. К ним относятся работы но созданию универсальной ЭВМ в институте дальней радиосвязи, бортовых специализированных ЭВМ, созданных на авиационных предприятиях, специализированных моделирующих устройств, разработанных в Ленинградской военной Академии». Достоинства СОК заключаются [2], [3] в высокой степени параллелизма при выполнении арифметических операций сложения, вычитания и умножения. Несколько сложнее обстоят дела при реализации немодульных операций, требующих знания всего числа в целом, к которым относится операция деления числа на два.

Постановка задачи

При изложении статьи будем использовать определения и обозначения, приведенные в [4].

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

N = [Л^тос! т1), ЛГ(то<1 ш2),..., ЛГ(тос1 тп)] или

^=(а1,а2,...,а„). (1)

Здесь а. = Ы(тоЛт1)- При этом, если числа щ взаимно простые, то представление числа

N в виде (1) является единственным, а объем

диапазона представимых чисел в этом

случае равен

М -щт2. .тл, (2)

В дальнейшем рассматриваются числа вида (1), для которых один из модулей тп=2.

Будем отличать числа, большие Ы/2 и меньшие М/ 2. При этом, если 0<Лг<Л//2, то N - число первой половины. Если же М

— < N < М, то N - число второй половины.

Пусть в системе с основаниями т^,т2,..,,тп = 2 даны два числа N1 =(а|,а2,...,а„) и ЛГ2=2 = (р„р2)...Л) и пусть £ = (б„£г,...,г„) -частное от деления Л^ на Л7,. Тогда, если деление точно выполнимо, т.е. Л^ кратно М2, то Е принадлежит первой половине. При этом все остатки частного, кроме остатка по модулю тп, определяются формальным делением остатков а, на остатки [3,. Для модуля тп имеем неопределенность Ц, которую требуется раскрыть.

Основная часть

Пусть системой оснований полиадического кода также является система тит2,...,тп =2, Тогда число Е в полиадическом коде представляется следующим образом

£" = ;![ + П2т1 +я3т|/и2 + ... + +

где 0 < л, < /я, — 1.

Пусть

^ = Л[ + п2гп\ + я3/И| т2 + ■ • ■ +■ Число

О ^ я| + ■к2т\ +ИъП\Щ + ... + +

М

±... + пп_1т]т2...т„_2 <—,

т. е. является числом первой половины. Поэтому задача нахождения еп сводится, таким образом, к определению четности числа Е1

£„ =

[О, Е\ четное, [1, Е] нечетное.

5 = Я> = Е

[ -«М .

Получаем

Е] =Еу- А1 - т1 (я2 + т2 (я3 +.,. + тм +

+ ... + отл_2тг„ч)))

и

При этом

е] =е, -д} е2 = е2 - д2

где

(4)

д| =п^(то£1т,) = £|, Д2 =я^(тос1т2), Дз = п^(гао(1тз))д| = Я| (тос1т(), ..., 4ч =я1(то(1»1й_1)

и

Поскольку все модули (3) нечетные, четность определяется значением

/ = я, ,

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

. При этом &'й— 0, г = 0.

Получение тс; осуществляется итеративным путем, при котором на г-й итерации находится Я, и рассчитывается Е\ = Е[~1 - Д', где

Д' =Я[ т1т2 ..,тм,

Перепишем (3) в виде Е^ = + (я2 + /«2 (я^ + •• ■ + т-_ | (я, +

+... + тп_2 я„_!)))

Тогда

я( -£'1(шо(1т|)=£1

Д = я, =еь

= п,(пих1тя). Таким образом, результат первой итерации

к} (0,4,...,^),

/44

На второй итерации выполняется деление Е\ на щ с сокращением объема рабочего диапазона в т1 раз. Получаем

— Е

Е\ = — = я2 + т2 (я3 +... + щ_х (щ + т1

+... + тп_2 ял_])).

. 1

(тск!/^), 5з - — {тос5т3), (то<1«(), (тойт^)

При этом

( 1 ^ е2

Щ)

т

{ лЛ

Щ

\ 1 /

и

еп-1

т,

\ I у

Далее на этой же итерации выполняем Е] = Щ - Д2

Получаем

Е\ + т(1 (л, +... +т„_3ли))

и

При этом

где

Л2=62= = *2(то(1тз). А? =я2(тос1771г.), „„ -тг2(тоатл_,)

и

=%(то<1даи). Таким образом, результат второй итерации

Е?={ОЛ-^Л I*

После выполнения аналогичных действий на каждой итерации получаем последовательно Результат (л-1)-ой итерации ЕГ' =С-\ -О?

Проиллюстрируем изложенное на примере для системы модулей = 5, т2- 7, /и3 = 3, /»4=11, ж5=2. Диапазон чисел 0...2309. Делимое Nl = 1846 - (1,5,1,9,0), делитель Лг2 = 2 = (2,2,2,2,0).

Результат формального деления

£ = -З,е3 -2,е4 =10,е5 = ™

Индикаторное число 1 = 0.

На первой итерации

Л[ =3,

Л1 =3,

5' =3,

— з,

А\ =3(тос17)=3,

д'з =з(шоаз)=о, Д4 =3(то{Ш)=3, л] =3(шоб2)=1

е{-0, 4=2,

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

£4 =7,

4=1,

^=(0,3,2,7),

Нед.

На второй итерации

бЫ ||(тос17)=& 532 =|| |(тойЗ)=1,

Далее

ЕЪ -(2,1,8).

к2 =2, Д2 =2 ■у2 - 2, Д г = 2,

Д23 =2(тоаз}=2,

Д2 =2(тоаи)=2, =2(той2)=0

Е2 ~ 0' -2, £4=6,

«5=1, £2 - (0,2, б).

/2=1.

На третьей итерации

ЕЪ={ 2,4}

Далее

Л3 = 53 = 2, А3 =2

Д3 =2,

Д*4 = 2(йнх111)=2, 53 = 2(пкх12)=0

и

8^=0, £4=2,

Е?={ 0,2), /3 = 1. На четвертой итерации

и

Далее

л4 =8, Д4 -8,

Д4 = 8(то(И1) = 8, 554 =8(тос12)=0

и

# = П 1Л= 1,

Поскольку /4 =1, то число Е1=(3, 6, 2, 10) нечетное. Следовательно, £5=1. Таким образом, результат деления

£■ = 923 = (3,6,2,1 ОД).

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

константы А';+1,Д';+2)...}Д'я) которые следует вычитать из остатков и добав-

лять к на !"-й итерации. Тогда на каждой итерации будет выполняться лишь операция вычитания для все сокращающегося количества остатков.

В качестве примера выполним для той же системы модулей деление Л7, = 1846 = (1,5,1,9,0) на Л7] = 2 = (2,2,2,2,0) с помощью вычитания констант из соответствующих таблиц,

(

Е = \ е, =Ъ,е2 = 6,£3 = 2,е4 = 10,£5 = -

V 0).

Индикаторное число 1-0.

На первой игерации для £[ = 3 выбираем из

табл. 1 Д2 = 3 , Дз = 0, Д), = 3 , = 1 и получаем

Е\ =(0,3,2,7), /1=(1).

Таблица 1

Остатки для mod Константы для mod

т, =5 3 II Щ =11 т5 = 2

0 0 0 0 0

1 1 1 1 1

2 2 2 2 0

3 3 0 3 1

4 4 1 4 0

На второй итерации для е2 - 3 выбираем из табл. 2 Д3 =1, Д4 =10, = 0 и получаем Е1 =(0,1,8), У2=(1).

Таблица 2

Остатки для пкх! Константы для mod

т2 =7 тъ=Ъ тА-\\ ть =2

0 0 0 0

1 0 4 1

2 0 8 0

3 1 10 0

4 1 3 1

5 2 5 1

6 2 9 0

На третьей итерации для е3 = 1 выбираем из табл. 3 А4=4, ,?5=0 и получаем £3=(0,4),

/3=(0-

Таблица 3

Остатки для mod Константы для mod

3 щ-11 щ - 2

0 0 0

i 2 1

2 4 0

На четвертой итерации для е4 = 4 выбираем из табл. 4 = 0 и получаем Ел = (0), /4 = (I).

Таблица 4

Остатки для mod Константы для mod

%=Í1 т5 =2

0 0

1 0

2 0

3 0

4 0

5 0

6 1

Поскольку I4 = (I), то действительное значение е5 = I, Следовательно, результат деления Е = 923 = (3,6,2,10,1).

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

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

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

2. Синьков М. В. Нетрадиционная система остаточных классов и ее основоположник И. Я. Акушский / М. В. Синьков, Т. В. Синькова, А. В. Фе Доренко, А. А. Чалор - Сайт http://www.isfcst.kiev.ua, 2001.

3. Червяков Н, И. Методы и принципы построения модулярных нейрокомпьютеров. Сайт http://www.comp uter-museLim.ru, 2005

4. Полисский IO. Д. О выполнении сложных операций в системе остаточных классов // Электронное моделирование, - 2006. - Т.28, — № 3. -С. 117-123.

Поступила в редколлегию 09.02.07.

i Надоели баннеры? Вы всегда можете отключить рекламу.