
книги из ГПНТБ / Торгашев В.А. Система остаточных классов и надежность ЦВМ
.pdfВ последующих же разделах данной книги в основном будет использоваться позиционная характеристика первого типа. Дело в том, что при вычислении этой характеристики используются константы 1/pj, каждая из которых не зависит от других оснований системы. Это свойство является очень важным, поскольку позволяет исклю чать любые модули из СОК, добавлять новые основания, либо изме нять порядок их следования при вычислении позиционных характе ристик, не изменяя исходных констант.
В то же время практически любое изменение числа оснований
■СОК или их порядка при вычислении |
(А) приводит к изменению |
||
констант \ l j K j - i \ p , и K j - i и |
соответственно функции |
ЧГ' (а /- |
|
Это существенно ограничивает |
гибкость |
вычислительной |
машины, |
работающей в СОК. |
|
|
|
Если при вычислении позиционных характеристик используется не функциональное преобразование, а обычные модульные опера ции умножения (что позволяет уменьшить аппаратурные затраты), то, очевидно, характеристика */<(Л) требует меньшего объема вы
числений по сравнению с кк (А).
Помимо рассмотренных выше точных способов вычисления пози ционных характеристик, известно большое число приближенных ме тодов .[3], некоторые из которых позволяют уменьшить число после довательно выполняемых модульных операций, необходимых для вычисления зхкт_і (Л), до величины ]log2/ti[*. Однако в этом слу чае резко возрастает требуемое количество аппаратуры, причем чаще всего эту аппаратуру приходится выделять в специальный блок. Пример организации такого блока приводится в работе [3]. Наличие подобной аппаратуры существенно ограничивает возможности ЦВМ, поскольку для защиты машины от ошибок данного блока приходится применять резервирование. Поэтому в настоящей работе, посвящен ной вопросам повышения надежности, а не быстродействия ЦВМ, приближенные методы вычисления позиционных характеристик не рассматриваются.
Приведем теперь несколько примеров, иллюстрирующих изло женный выше материал.
Пример 1.3. Определим позиционные характеристики числа ■Д={1, 0, 0, 2}jf, представленного в СОК с основаниями рі= 3, Р г= 4, Рз=5, Р4= 7, путем перевода этого числа в ОПС.
Из приложения для оснований заданной СОК найдем константы, соответствующие обратным мультипликативным величинам:
11/3 I* — 3; 11/3 Is = |
2; |
|1/3| 7 - 5 ; ! 1/4 |5 = 4; |
11/41, = |
2; |
11/5 1, — 3. |
* Под величиной ]х[ понимается ближайшее целое число, боль шее или равное х, т. е. дробное число х, округленное в большую сторону.
20
Далее воспользуемся формулами |
(1.14): |
|
|
|
||||
Рі = |
3. |
4, |
5, |
7; |
|
|
|
|
А = |
{!■ |
0, |
0, |
2}420’ |
" і |
= а , |
= 1 |
|
а, = |
0 - |
1 , |
1, |
*}‘І20 |
|
|
|
|
X |
{0, |
3, |
4, |
41420 |
|
|
|
|
ѵ .= |
|
{3- |
2 , |
5}ио |
|
|
|
|
|
0 - |
3, |
5}и0> |
аг = ctg = |
1. |
|||
аг = |
|
0 - |
1, |
|
|
|
|
|
|
|
2, |
|
|
|
|
|
|
X |
{°. |
4}но |
|
|
|
|
||
V * - |
|
{4- |
2 } з 5, |
|
|
|
о |
|
М) - |
|
{3, |
^}з5> |
|
аэ = |
2 |
||
|
|
а3 = |
3, |
|||||
«3 = |
|
|
I* 1 |
3}з5 |
|
|
|
|
X |
|
{0, |
^)з5 |
|
|
|
|
|
Ѵ .= |
|
|
|
{3Ь |
|
|
|
|
Используя формулу |
|
|
0І7 . |
найти |
«4 = |
“4 = |
1 • |
|
(1.10), можно |
представление числа |
|||||||
А в десятичной |
системе |
счисления: А = 1+ 1-3+3-12+1 • 60= 100. |
||||||
Пусть числа |
из диапазона |
[0,240] |
являются положительными, а |
из диапазона [240, 420] — отрицательными. Тогда знак числа А мож но определить по старшему разряду двоичного представления вели
чины Лкз(А) = а 4. |
Определить позиционные |
характеристики |
числа |
|||||
Л= |
Пример |
1.4. |
||||||
{1, 4, 0, 30} м, |
представленного в СОКН |
с основаниями |
Р\ =3,. |
|||||
р2= |
12, рз=20, Р4=35 и общим основанием М — [3, 12, 35, 20] =420. |
|||||||
|
Найдем сначала основания МОПС в соответствии с формулой |
|||||||
(1.15): Рі=3; |
р2 —А\ р3—5; р4= 7. |
Переведем |
число А в |
СОК |
с ос |
|||
нованиями |
р1, |
р2 , |
Рз, РТ |
основания |
полученной |
СОК |
явля |
|
|
Л = {1, |
0, 0, 2}м. Поскольку |
ются взаимно простыми, то дальше определение позиционных харак теристик числа А осуществляется так же, как и в предыдущем примере.
1.4. РАСШИРЕНИЕ СИСТЕМЫ ОСНОВАНИИ
При вычислениях в системе остаточных' классов довольно часто складывается такая ситуация, когда остатки, соответствующие неко торым основаниям СОК, становятся неопределенными. Однако ос тальные остатки однозначно определяют число. С таким положениеммы уже сталкивались в § 1.2 при модульном делении чисел, пред
21
ставленных в СОК и в § 1.3 при вычислении позиционных' характе ристик n Kj(A). Поэтому одной из основных немодульных операций
в системе остаточных классов является р а с ш и р е н и е с и с т е м ы 0 с н о в а н и и, когда по известным остаткам числа А, соответствую щим некоторым модулям СОК, определяют значения остатков этого же числа для других оснований.
Пусть число А однозначно представлено в СОК с основаниями
Р\.............. рп и общим основанием N: |
|
|
|
|
|
||||
|
|
|
А = |
{ап- • •> |
П;і}д,- |
|
|
|
|
Требуется |
представить это число |
в |
системе |
остаточных классов |
|||||
с основаниями |
р\........ рп, Рп + \.......... Рт, т. е. необходимо |
определить |
|||||||
остатки а п + і, |
а,„. |
формулами |
(1.10) |
и |
(1.12), |
представим |
|||
Воспользовавшись |
|||||||||
число А в следующей форме: |
|
|
|
|
|
|
|||
|
|
Л - *? + « £ * ,+ . . . а 'Г Х - - |
|
|
|||||
Тогда |
ап+і— I Л іРп+І= I ° і |
+ |
+ |
•••+ |
ап |
|
рп+1< |
||
где і= |
1, 2, . .. , т — п. |
а°ѵ |
....... а"-1 |
|
|
|
|
||
Поскольку |
остатки |
вычисляются последователь |
но, то для определения величин ап+г.......ат удобнее воспользо ваться рекуррентным соотношением
где а1п + . = а,; г = 1, 2,..., т — п; j |
= 2, 3,..., л; |
О -24) |
+ |
\Pn+t. |
|
|
|
ап+і= |
ап+1- |
|
|
|
|
|
Данный способ |
расширения |
системы |
основании удобен |
тем, |
||||
что не налагает |
никаких |
ограничений |
на |
значения |
модулей |
|||
р п+і.......рт. К недостаткам |
же следует отнести, во-первых, то, что |
|||||||
остатки аІ при I > л и г < |
я |
вычисляются по различным формулам ■ |
||||||
а во-вторых, использование |
в формуле (1.24) |
констант |
К], |
вели |
чины которых зависят от порядка следования модулей, существенно ограничивает возможности изменения числа оснований и их взаим
ного расположения. |
|
расширения системы оснований. |
|||
Рассмотрим еще один способ |
|||||
Обозначим |
разность |
между числом оснований |
в |
расширенной |
|
и исходной |
СОК через г, а наименьшее общее кратное модулей |
||||
Рп+і....... рт — через |
R. Далее |
определим число |
А |
такое, что |
|
1А |;ѵ = А; IА I/? = 0. |
|
|
|
|
|
Тогда |
|
|
|
|
|
Следовательно: |
|
|
|
< І' 25) |
|
|
|
= |
* * # > } * • |
|
0.26) |
22
Используя рекуррентную формулу (1.13) для вычисления *лг(2 ), получим выражения, определяющие любой из остатков ап+і при і = 1, 2, ..., г:
Ді+1 |
■ £ і - |
Pj |
J - 1 |
|
(1.27) |
|
|
рп+ i |
|
||||
an+i |
|( |
N) *n+llpn+i> |
|
|
||
где a°+i = 0; y '= 1, |
2, ..., |
n. |
|
|
|
|
Если основания |
P\, .. . , |
p n |
не |
являются взаимно |
простыми, то |
|
в формуле (1.27) вместо pj |
следует использовать р |
но |
применять |
|||
Этот способ значительно удобнее предыдущего, |
||||||
его можно лишь в том случае, если N и R не имеют общих делителем. |
||||||
При помощи рассмотренных выше трех модульных |
операций |
(сложения, вычитания и умножения), а также операции вычисления позиционных характеристик и расширения системы оснований (сво дящихся, впрочем, к некоторым последовательностям тех же мо дульных операций) можно определять любые другие операции, нс носящие модульного характера, в том числе умножение дробей с по следующим округлением результата, деление, перевод чисел из СОК в произвольную позиционную систему счисления и т. д.
При изложении последующего материала данной главы будут рассматриваться только системы остаточных классов со взаимно про стыми основаниями, но полученные результаты автоматически рас
пространяются и на СОКН |
при |
замене |
модулей |
рі |
на |
р,_, где |
|||||
і '= |
1, |
2, ... , |
гп. |
|
|
|
|
|
|
|
|
|
Рассмотрим теперь примеры |
расширения |
системы |
оснований. |
|||||||
С.! |
Пример |
1.5. |
Вычислим |
неопределенные |
цифры |
частных |
|||||
и |
С5 для |
примера 1.2, приведенного в |
§1.2. Каждое |
из |
этих ча |
||||||
стных |
должно быть представлено |
в СОКН с основаниями |
4, 5 и 6 |
||||||||
и общим основанием 44=60. Для |
частного С4 не определена цифра, |
||||||||||
соответствующая модулю 5. Поэтому положим N — [4, 6] = |
12; Я = 5; |
||||||||||
Рі = 4; Р2= 6; р3= 5 . |
|
|
|
|
|
|
|
||||
|
Поскольку N |
и R взаимно просты, для определения |
величины |
||||||||
1з = | С4|б воспользуемся формулами (1.27). Модули |
р, = |
4 и р 2= 6, |
|||||||||
входящие в состав СОК с общим основанием N, не являются |
|||||||||||
взаимно простыми. |
Поэтому |
определим |
р х = 4; р г = 3. Из прило |
жения найдем обратные мультипликативные величины;
I ѵ*|. = 1; 1'M s = 4; I V. la =-2.
Далее по формулам (1.14) и (1.27) вычислим
сс° = а, = 3; а“ = 0; а° = | 3 |, = 0;
= К — 3) -1 |з --= 0;
Рі
23
|
I |
Pi |
( —•3)6- 4 |s = |
3; |
a| = |
1(3 — 0)•2[6= |
1; |
|||||||
|
р 1 |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
-WІб = |
I |
12 J |
= 3; |
T. — I 3-11, — 3. |
|
|||||||
Итак, {Ci}M = {3, 3,3}co. |
|
|
|
|
|
|
|
|
|
|
||||
|
Для частного Cs не |
определена |
цифра по |
модулю р = 3. По |
||||||||||
этому положим |
рі = |
4; |
р3 — 5; |
N = 20; р3 = |
R = 6. Поскольку N |
|||||||||
и R имеют общин делитель, то для |
определения величины if, = |
|||||||||||||
= |
I С516 воспользуемся |
формулами |
(1.14) и |
(1.24); |
|
|||||||||
|
“1 = |
7 |
“° = |
0; |
а° = |
0; |
« '= |
| М / 4 |6= 4 |
|
|||||
|
“з = |
2 |
“1 = |
(“з + |
“2^1 I/Jа = |
П + |
|
4-4 |0= |
|
|||||
|
|
= 5. |
|
|
|
|
|
|
|
|
|
|
||
|
Тз — “з |
|
|
|
|
|
|
|
|
|
|
|||
Итак, {С,}Л -{ 1 ,0 ,5 } ,0. |
|
|
|
|
|
|
|
|
|
|
||||
|
Пример 1.6. Пусть |
число А — {1, 0, 0, |
|
|
представлено |
в СОК |
||||||||
с |
основаниями р, = 3, р2 = |
4, |
р 3= |
5 и р4= |
7. |
|
(Д) в |
той же |
||||||
|
Представим |
позиционную |
|
характеристику |
системе остаточных классов. Для этого сначала изменим индексы
оснований |
СОК, положив р, = 5, ра = 7, р, = 3, |
р4 ■==4, N — 5-7 = |
|||||||
=35 |
и R = |
3 - 4 = 12. |
|
|
|
|
|
||
|
В примере 1.3 была вычислена позиционная характеристика |
||||||||
представленная в СОК с общим основанием N : |
|
(Л) = {3,1 }35. |
|
||||||
|
Из приложения найдем: |
|
|
|
|
||||
|
I7sl, |
= |
3; |
I ' M , = |
2; | ‘М , = 1; |
| Ѵт [, — I; |
| ' / 7 | * - 3 . |
|
|
|
Далее |
по |
формулам |
(1.14) и (1.27) |
определим а° = 3; а2 = |
1; |
|||
“з = |
0; “з = |
2; |
| ( - Л 0 «ЦЛ - 2; « J - 1; ^ = |
0; |
| ( - Ю « ||Л - |
0. |
Следовательно, {яд-з (Д)}^ = {2,0}12. Переходя снова к исходной
СОК, получим {**, (Д)}л, = {2, 0,3, 1}42„.
Данный результат легко |
проверить, если вспомнить, что Д = |
- = 100 и, следовательно, |
(Д) = [100/12] = 8. |
1.5. УМНОЖЕНИЕ ДРОБНЫХ ЧИСЕЛ
Известно, что при умножении правильных дробей не возникает переполнения разрядной сетки. Именно поэтому в ЦВМ обычно ис пользуются числа, по абсолютной величине меньшие единицы.
В § |
1.1 рассматривались |
некоторые способы представления |
|
дробей |
в системе остаточных |
классов и, в частности, способ пред |
|
ставления |
дробных чисел с |
фиксированным знаменателем IV; |
|
Щ м = т |
- |
|
24
Для того чтобы эти дроби были правильными при любом А должно выполняться условие: | Д | < N. Если числители А могут изменяться в интервале ( — Lu І 2), то условие правильности дроби примет вид: N шах (£„ А2).
Чаще всего диапазоны изменения положительных и отрицатель ных чисел, представленных в ЦВМ, принимаются одинаковыми. По этому примем N = L ^ = L 2.
Но для однозначного представления числителя А в СОК интер
вал L = Li-j-L2 не должен превышать общее основание AI. |
Поэтому |
М > 2М. |
(1.28) |
Рассмотрим произведение двух дробей AjN и B/N, пусть А и В положительны:
C_j _ A _ J 3 ____ 1 ( Л В \ N = N N - N \ N .)■
Очевидно, что С должно быть целым положительным числом. Поэто му в тех случаях, когда произведение AB не кратно N, примем:
|
С = |
[AB/N] = кд, (AB). |
|
(1.29) |
||
Если для вычисления позиционных характеристик используется |
||||||
один из способов, рассмотренных в § |
1.3, то в качестве знаменате |
|||||
ля /V следует принять |
произведение |
некоторых |
модулей |
задан |
||
ной СОК. |
N = pI ... |
рп. Тогда для выполнения неравенства |
(1.28) |
|||
Пусть |
||||||
достаточно |
положить |
pn+ i= Pm= 2, если ни один |
из остальных мо |
дулей СОК не является четным. В этом случае каждому числу, пред ставленному в СОК, соответствует некоторая правильная дробь. Если же использовать больший по величине модуль рп+1 (или в об щем случае группу модулей р„ +1, .. . , рт), то среди чисел, пред ставленных в СОК, окажутся и неправильные дроби с ненулевыми целыми частями. За счет увеличения М при постоянном N появляет ся возможность легко обнаруживать переполнения при сложениях и вычитаниях, корректировать ошибки округления для некоторых способов умножения дробей и, как будет показано в гл. 2, обнару живать и исправлять ошибки, возникающие в ходе вычислений.
Процесс умножения дробей с фиксированным знаменателем в, любой системе счисления можно разбить на два основных этапа: умножение числителей и округление полученного результата путем деления на знаменатель. В позиционных системах счисления наибо лее сложным этапом является непосредственно умножение, а округ ление чаще всего сводится к простому отбрасыванию младших раз рядов. В системе же остаточных классов, наоборот, легко можно перемножить числители, являющиеся целыми числами, и значительно труднее округлить полученное произведение.
Если заданы два положительных числа {А}.^ и то их
произведение в соответствии с формулой (1.29) запишется в сле дующей форме:
= {"* ІАЩ%-
25
Но прежде чем вычислять позиционную характеристику, необходимо
определить произведение числителей AB. |
Поскольку |
A < N и B<_N, |
то это произведение можно получить, |
используя |
одну модульную |
операцию умножения при условии, что M~>N2.
Хотя на практике такое условие и может иногда выполняться, но чаще всего основание М значительно меньше квадрата знаменате ля. Поэтому приходится искать другие способы формирования про изведения AB и соответствующей ему позиционной характеристики.
Первый метод, предложенный А. Свободой [20], заключается в том, что исходная СОК с основанием М расширяется путем добав
ления |
модулей |
................ Рт+(, |
произведение |
которых |
равно |
|||||
R', так, чтобы общее основание M’= M R ' |
полученной СОК было ие |
|||||||||
менее чем N2. |
|
|
|
|
|
|
|
|
|
|
Расширение системы основании |
выполняется |
для |
обоих сомно |
|||||||
жителей. Далее |
вычисляется произведение {АВ}М и позиционная |
|||||||||
характеристика |
{пЛ, (ЛД)}уИ,/;Ѵ. Определив |
величину |
{кд, (AB)}N |
|||||||
путем |
расширения системы оснований |
и |
отбросив |
символы |
числа |
|||||
ядг (AB), соответствующие модулям рт +и ..., |
р т+[, |
получим иско |
||||||||
мое округленное |
произведение дробей |
[С }^. |
|
|
|
|
|
Для определения остатков, соответствующих каждому из со множителей в СОК с основанием М', требуется п модульных опе раций. Столько же операций требуется и для вычисления пози
ционной характеристики |
(AB)jM,iN, так |
как N = К п. Число |
|||||
операций, необходимых для вычисления величины ^тсд/ |
|
||||||
определяется |
тем, |
насколько |
велики |
модули |
СОК с основанием |
||
M '[N . В частности, |
если среди |
них найдутся |
п модулей', |
произве |
|||
дение которых |
не |
менее, |
чем |
N, то |
можно |
утверждать, |
что для |
последней операции расширения потребуется также не более п
модульных |
операций. |
|
|
|
|
В целом операцию |
умножения |
двух дробей можно |
выполнить |
||
за время, |
пропорциональное величинам: 4/1+ 1, |
если |
расширение |
||
системы оснований для |
каждого из |
сомножителей |
осуществляется |
последовательно. 3/t+l при параллельном выполнении этих операций и 2л + 1, если исходная СОК позволяет сразу получить произведение
{ДД}м.
Произведение С, вычисленное по формуле (1.29), является за ниженным, так как округление всегда производится в меньшую сто рону. Для того чтобы погрешности обоих знаков были равновероят
ны, |
к произведению {AB} м следует прибавить константу, рав |
|
ную |
[IV/2]. |
|
|
Рассмотрим теперь случай, когда один или оба сомножителя яв |
|
ляются |
отрицательными. |
|
|
В § |
1.2 было показано, что умножение целых чисел в СОК осу |
ществляется одинаково при любых знаках сомножителей. К сожале
нию, для дробей |
это несправедливо |
из-за |
операции |
расширения |
системы оснований. |
|
|
|
|
Предположим, что отрицательное число А представлено в СОК |
||||
с основанием М : {А}аі — [М — МІ}уцРасширим |
эту систему, |
|||
добавив модули, соответствующие СОК с основанием R'. В ре |
||||
зультате в новой |
СОК с основанием |
М' = |
M R ' окажется пред |
26
ставленным число {Л4 — | А |]ЛІ,, отнюдь не равное { — | Л |}Л[„ так как I М \м , ф 0. Поэтому результат расширения следует скоррек
тировать, вычитая из него основание М.
В общем случае в процессе расширения системы оснований могут принимать участие не все модули, входящие в исходную СОК. В частности, если в системе остаточных классов представ
лена правильная дробь {/1}^, то в расширении участвуют лишь
модули, соответствующие знаменателю N. Поэтому вновь получен ные при расширении остатки соответствуют величине {ЛГ —
и для коррекции результата следует |
вычесть |
из |
этих |
остатков |
|||
константу |
Заменяя в формуле |
(1.26) Я |
на |
Я' и |
вычитая |
||
из правой части N, получим выражение для расширения |
числи |
||||||
теля отрицательной дроби: |
|
|
|
|
|
||
|
{А}& *= {(— АГ) (** (7і) + 1)}*,. |
|
|
|
(1.30) |
||
Тогда при расширении системы оснований для |
дробей |
с про |
|||||
извольным знаком удобно пользоваться общей формулой: |
|
|
|||||
|
{А}н , = { ( - |
Ю( (it* (А) + |
sign (Л))}*,, |
|
|
(1.31) |
|
|
если |
А ;> U; |
|
|
|
|
|
|
если |
А < 0. |
|
|
|
|
|
Следует отметить, что знак числа А однозначно определяется его позиционной характеристикой. В частности, если А является
числителем правильной дроби {Л}^, то
|
sign ( Л ) - | - * л г (^4)1/?'. |
(1-32) |
Аналогичными формулами можно воспользоваться и для округ |
||
ления произведения |
с произвольным |
знаком при условии, |
что М' > 2N 2. Причем знак произведения можно определять по формуле (1.32) лишь в том случае, если Я' > N.
Нетрудно убедиться в том, что количество модульных операций, необходимых для расширения системы оснований при использовании чисел с произвольным знаком, увеличивается на единицу по сравне нию с вариантом, рассмотренным в § 1.4.
IПоэтому для получения округленного произведения двух дробей
спроизвольными знаками требуется выполнить:
а) 2 (я И- 1) модульных операций, |
если |
М > 2N а; |
||
б) 3(я + 1), если величины |
{/1}^/ |
и |
вычисляются одно |
|
временно; |
|
|
|
|
в) |
4(п+1), если те же |
величины вычисляются последовательно. |
||
К недостаткам данного способа умножения следует отнести не |
||||
обходимость введения добавочных оснований |
(для вариантов б) ив)), |
в результате чего по меньшей мере вдвое увеличиваются аппаратур ные затраты иа создание арифметического устройства.
Поэтому рассмотрим другой способ умножения, не требующий введения добавочных оснований. Так же как и в предыдущем слу
27
чае, сначала предположим, что оба сомножителя положительны. Представим каждый из сомножителей в виде пары чисел:
|
|
А = A \N I -f“ As, |
В — BiNs -j- Bz, |
0 -33) |
|||||||||
где NiNs = N н N- ~ Л С . |
|
|
|
|
|
|
|
|
|||||
Тогда |
|
|
|
|
A\Bs |
|
AsB^ |
AjBs ~[ |
|
||||
|
|
|
|
А \ В ) -)- |
|
|
|||||||
|
|
|
|
N t |
+ |
|
N , |
+ |
N J |
|
|||
|
|
|
|
|
|
|
|
||||||
|
|
|
AiBi |
|
|
1 ГAsBj |
|
|
|||||
|
|
|
|
NsJ +I |
Nt.' |
(1.34) |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Положим |
для |
определенности |
W |
|
> |
ЛГ,. Из |
очевидных нера |
||||||
|
|
4- |
|
2 |
|
следует, |
что: |
|
|||||
венств |
/1 < N, |
В-С N |
и формулы |
(1.33) |
|
||||||||
|
Hi <3 Л^2; |
As <С |
j; |
Д, <С Л4; |
Д2 <С ЛГ2• |
|
|||||||
Из |
возможных |
произведений A,ß, |
AsBi, A tBs |
последнее |
может |
||||||||
щшнпмать наибольшее значение, не превышающее величины (N 2— I)2. |
|||||||||||||
Поэтому, выбирая |
M > ( N 2— I)2, можно |
гарантировать однозначное |
представление этих произведений в заданной СОК.
Для вычисления произведения положительных дробей в соответ
ствии |
с формулой (1.34) необходимо сначала представить |
величины |
||
A t, As, |
В, и В2 в СОК с основанием М. Очевидно, что |
|
||
|
А\ — Гсдг, (-4); As — \ А )уѵ,; |
Bi = |
(В)', Bs —IВ (д^. |
|
Поэтому для определения величин |
{4} w и |
{Ö.} лг сначала |
вычисля |
ются позиционные характеристики в сокращенных СОК с основания ми M/Ni н MlNs соответственно, а далее эти системы расширяются до исходной. Число модульных операций, используемых в каждом
случае, |
равно п. |
{42},u и {В2} Лг можно воспользоваться вы |
||
Для |
получения чисел |
|||
ражениями, |
полученными |
непосредственно из формулы |
(1.33): |
|
|
|
{Аг}м = {А}м — {AIN S) M <’ |
|
|
|
|
^ {А і} лг = {В }м — {B I N S} M . |
|
|
Далее, |
после вычисления произведении •( |
{4, 62}^ |
и{Л2Д,}лі в соответствии с формулой (1.34) определяются позицион
ные характеристики {r-Nli (А Д 2)}/И и |
(4 2S I)}JV и, наконец, про |
изведение ( С j. Полученный результат может отличаться от искомо |
го произведения почти на три единицы младшего разряда из-за оши бок, возникающих при округлении. Однако, если М > 3 ЛГ, то вели чину ошибки Д можно определить из выражения {Д}лі =*
= {лдг (АВ — CW)}AT•
Произведения {АВ}М и {СЫ}щ вычисляются формально, так как нас интересуют не сами эти величины, а их разность, которая может быть однозначно представлена в заданной СОК.
Для получения симметричной погрешности округления к произ ведению АВ следует прибавить величину [N/2].
Если положить Рп+і^4, то для вычисления ошибки требуется п-\-2 модульных операции, а в целом умножение двух положитель
ных дробей можно выполнить за время, соответствующее 5/г+ІІ |
мо- |
- дульным операциям при минимальном объеме арифметического |
уст |
28
ройства, либо Зл+7 операциям, если использовать два преобразова теля из СОК в ОПС.
Если перемножаемые дроби имеют произвольные знаки, то при расширении системы оснований можно воспользоваться формулами, аналогичными (1.31) и (1.32). Правда, вторая формула может ис пользоваться для определения знака лишь у чисел, меньших чем N. В то же время произведение ЛіВ2 может превышать знаменатель дроби. Однако нетрудно убедиться в том, что Д2 и Во всегда поло жительны, и поэтому знак А (или А і) совпадает со знаком произве дения А\Вг. Что касается ошибки Д, то она так же всегда положи тельная независимо от знаков сомножителей А и В, ибо округление при вычислении позиционных характеристик осуществляется в мень шую сторону.
Число модульных операций, использующихся при вычислении произведения двух дробей с произвольными знаками, не превышает 5(п+3) либо 3(л+3) при наличии двух преобразователей из СОК
вОПС.
Втех случаях, когда умножение выполняется с удвоенной точ ностью, т. е. требуется знать число, соответствующее младшим раз
рядам произведения |
Q N 2 |
= |
| AB |дг / N 2, |
можно воспользоваться |
||
выражением |
|
|
|
|
|
|
|
|
{ С } Л - { Д В - ( С |
+ Д)Л7}Л . |
|||
Пример |
1.7. |
Пусть |
задана |
СОК |
с основаниями рі= 3, |
|
Ро=7 и Рз—4; N = 3-7=21; |
Л4 —ЛМ =84. Вычислим произведение |
|||||
дробей AIN — l6l2 i и |
ß/TV = |
l0/21, представленных в данной СОК при |
||||
помощи перехода к расширенной системе оснований: |
||||||
{ + $ |
= {1,2,0}Ц; |
6 |
{ ß }" |
= { 2 , 4 , 2 }|і . |
Добавив модуль Ръ— Ъ и р = П , получим новую СОК с основанием Л4'=4620, причем R '= 5 5 > N .
Представим числители дробей в этой СОК, используя формулы
(1.31) и (1.32): |
|
|
|
|
{А}м' = |
{1. 2, 0, 1, 5}4620; |
|
{Вм ,} = {2- 2- |
1}-іб2о- |
Тогда |
{ЛВ}М, = {1, 1,0, 0, 5}4620; |
|
||
|
|
|||
|
{™/Ѵ(AB)}m ,iN |
= |
{0, 2, 3}220 ; |
|
Sign (тсдг (ДВ)) = I — nM 'I R ( A B ) |д = I —3 |t = |
1 |
|||
|
Г гсдг (AB) |
|
||
^заметим, что |
яM'lR (AB) “ L |
Л' |
Поэтому, используя вы |
|
ражение (1.31), |
получим |
|
|
|
{ * N (AB)}N = { 1,6}21;
{лдг (AB)}jtf, — {1, 6, 0, 2, 3).4бао.
Переходя снова к исходной СОК путем исключения цифр, соот-
29