Файл: Основы теории алгоритмов учеб. пособие.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 24.10.2024

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

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

 

 

 

 

 

 

-

юз -

 

 

 

 

 

 

 

 

Здесь ЧЬ-ЧГ

реализуется поеледав ат ельностью (4 .1 8 ).

После

 

 

каждой итерации проводим сложение с соответствующим словом

 

 

числа

»ii L+i.

,

С учетом

сказанного

и принимая за

начальное

 

 

условие

L-+-f ■= (Кк+ч =>0

,

произведение длишшх чисел мо­

 

жет быть получено из системы

 

 

 

 

 

 

 

 

 

 

П

 

2

и^

 

) 2 ч”

'

" +

и 2 ^

"

 

-

 

(

,

зи

(Зля j=«k

имеем

irVo-K) = 0

 

>

 

 

(4.19)

 

 

 

флЯ с*к

и j - k ,

 

2 ,f

име«м

f l ( i 4(j)

*“О )

 

 

 

 

 

( Ъ 2 -* Х 'Ч 2 * )+ (> < Щ )2 - < Ъ )Н

 

 

 

+

 

 

 

+

П

2 Ч

 

( ^ (для^ J4

,

P -

(

iп

+

i

о -

o

,

 

В (4.19) для каждого фиксированного

 

i = к

,

к '( .........

 

2, I

параметр

j

принимает

значения

=

,

 

, . . . , 2 , 1 .

 

 

Реализация системы

(4.19) дает

 

 

 

 

 

 

 

 

 

,

 

3

КН

T

 

-

Z

n

 

s

2

-

S

" .

 

 

 

f

 

 

Округляя полуденное произведение по старшему разряду слова Пк-Н ц присваивая знак произведения S П( младшим оловам оиотемой

ПГ Р в - Р г ' + « ^ 5

Sri,

—*■

S c ^ ) l

,

 

(4.20)

где | - k + f , k , . . . , 2 , 1 }

С * 7 0 # и - О

 

р к +ч - 2 “(к" * ° }

р о - О ,

 

;

получим

к

 

 

 

'

O f у ) -

Z .C fy2j j^ ” ■

 

Данное произведе!ие будет получено о абсолютной ошибкой

Л < 0,5 - 2"

к

н

.

Для получения полного произведения о абсолютной погреш­ ностью < 0 .5 -2 -ки итерации системы (4,19) оледует повторить !< раз. Однако это чиояо можно значительно уменьшить, ес­

ли отброоить чнотичные произведения слов


 

 

 

 

- 104 -

 

 

 

 

 

 

 

Тогда в (4.19)

 

i =* к , к - Ь •«- > 2 , ( ;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

I

В этом случае число обращений к итерациям системы

(4 .I9'1

к ц е т

равно

.

 

 

 

 

 

 

 

 

i

 

4

 

( к + 5 ) Н -

 

 

 

 

 

 

 

|

 

 

С.

 

 

 

 

 

 

 

5

Абсолютная погрешность такого произведения увеличится

 

счет' отброшенных частичных произведений на величину

 

 

 

! г - < ы ' ”[ 2 к - я ,

 

 

 

 

 

 

 

\

 

 

 

д 5 .<2 - ав , + 2 - с “ ‘ ” " 2[ к - з1 .

 

 

 

Ввиду малости второго слагаемого можно считать,

что

 

 

 

i

 

 

 

Л < 0 .5 - 2 ~ кп

 

 

 

 

 

 

 

 

Из системы (4.19) можно получить множество алгоритмов

|

Умножения с различными показателями

А

, Например,

отбрасы-f

вая

И -разрядные члены частичных произведший,меньшие,

чем

:

2 ~ кп , можно получить алгоритм с

абсолютной погрешностью

j

I

 

А < 2 - * и[ 2 М .

 

 

 

.

 

j

V

Если здесь частичные произведения

Ч,. 'f j

,

гд е ^ к -(И );

получать с

округлением, то ошибка такого

алгоритма

 

 

 

 

!

 

д

< 2 ~ * t1( i . s k - i ) .

А . л с

о-ки

 

 

i

Если

 

 

 

 

до

 

:

строить алгоритм о ошибками от Д < U . b d

 

 

2 “K"C2k -0

 

* Т0 МОЖНО получить

 

 

 

 

 

 

 

 

 

 

L - 2 ( 2 k - l )

 

 

 

 

 

 

 

алгоритмов

с различными показателями

эффективности

Л .

 

 

 

Для чисел,

 

представленных в памяти машины в

обратных

i

или в

дополнительных кодах, Для получения

З ч

применяем так­

же систему итераций (4 .1 9 ). Однако при округлении

З ч

. по л у ­

ченного в дополнительных кодах, в системе

(4.20)

будет отсутст-


 

 

 

 

 

- 105

-

 

 

воватьоперация

Sfl<

SCVY)| ,т.к.младшие оловав ячейках

памятихранятояоположительнымзнаком.

 

 

Для* обратного

кода представления чисел

округление

Осуществляется по последовательности

 

 

A s

+ С + Р |

-

P |- i + W Y )'j-,

 

<4-21)

где

4,

+

к

2,

, < .

. .0; , , е

Цтус

д 0> ; и

к

Рк*4 “

2 ”^**^

|

С-*11,(4, • ••, Н,«сим ¥ ¥ < 0 ;

( « ■ * % . « - О . )

 

-ре - О ,

 

 

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

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

Ниже рассмотрим вопрос изменения структуры алгоритма. | Каждая итерационная последовательность характеризуется | набором вполне определенных операций. Для их реализации на ма-; шине выбираются различные коды, которые могут изменяться по | своему содержанию или дополняться новыми, в зависимости от то­

го , какие показатели эффективности желательно получить. Рассмотрим построение ряда алгоритмов с различной эффек­

тивностью на примере проотнх операций в прямом ж дополнительных

кодах представления чисел в ЗУ.

I

Для прямого кода представления чисел,

вводя специальные

команда оложения шедших и старших слов, можно соответственно реализовать выражения (4.4) ж (4 .5 ). При этом для сложения дву*

слов понадобится 3 команды!


- 106 - ......... -

 

 

■ Yi-* X

 

 

 

 

 

 

 

 

<zy® V;

 

 

 

 

 

 

 

 

< 1 > - ( ¥ + Т ) «

,

 

 

 

i

где

I - сумматор, X E ') -

содержимое сумматора, —»

-

епе4

штор первоыдки из ЗУ в сумматор или из

сушатора в

ЗУ,

©

- j

сод специального сложения.

 

 

 

 

 

 

 

 

Выражение (4.6) мохво реализовать программой

 

 

 

|

 

.

n 3 W * Y ) i

 

 

 

 

"

j

 

 

<Х>©0

 

 

 

^де

п .

< Z > - ( V » Y ) i ,

 

 

 

{

115

- код операций присвоения знака числа v* + ж ) <

 

содержимому сумматора.

 

 

а я к

 

 

 

j

!

Однако для улучшения показателей

алгоритма

:

выражение (4.6) можно реализовать о помощью одной опециаль-

i

, . , Ю1ВД1

c „ 5 W t y ) i |

 

 

 

 

 

 

где

С П З -

код операции сложения числа оо значением переноса

И присвоения знака результату числа,

находящегося до этого н а i

сумматоре.

 

 

 

 

 

 

 

 

 

Выражение (4.8) также может быть реализовано программой

 

 

0 * + Y ) t - * Z

 

 

 

 

 

Т

 

 

ГВ < Ч ?+Т ) ,

 

 

 

 

 

!

 

 

< Z > - K ¥ + Y ) i

 

 

 

 

!

или одной командой

 

 

 

 

 

 

J

 

 

Г В

е п О

^

,

 

 

 

[

где ПЗСП _ код операции присвоения знака олову памяти числа,!

находящегося

до зтого на оумматоре.

1

1

Для дополнительных кодов представления чисел в

памяти |

машины можно

составить

алгоритм:

!

для

I - к ’

 

-* £

j

 

 

 

< 2! > ©

!

j

 

 

C d S i t

 

| <РгУ| ( I f +'4f) l ;


 

 

- 107

 

для

t « M , k - 2 , . . . , 3 , 2

 

i

 

< r > ® V i

 

 

 

 

!

 

Сй8 П - *

 

для

U ]

l < P a > | ^ ( ^ + Y ) i ;

,

i

 

 

 

'

 

< I > + ^

 

 

 

< I > - * 0 * + 4 f ) lf

 

где

©

~ код операции оложения без переполнения;

j

-

код операции перенооаС а цифровыхв и разрядов в регистр

Рз , а значения р*н в младший разряд /L {

!ЦРа>| - код операции запиои содержимого Рг по модулю в

 

память машины,

 

 

 

 

 

 

I

Применяя специальный код записи < £ >

 

по модулю в па­

мять машины о последующим обнулением цифровых разрядов

X

 

и перенос значения

Р н в младший разряд

£

(код|<£>{

),

получим алгоритм для t = к

 

 

 

 

 

 

 

 

*Ри -* £

'

 

 

 

 

!

 

 

 

 

 

(4,22)

 

для

3,2.1*

1

 

 

 

 

 

 

 

< I > @

 

 

 

 

 

 

для’

(,«= \

 

 

 

 

 

 

 

 

 

< 2 > - » W + y ) < .

 

 

 

 

 

 

Если ввести

специальные коды оложения младших и отар- 1

тих частей о одновременным сложением значения

Р(,ч

,

кото-f

рпй будем хранить в специальном разряде [48,

67] ,

то для

j

L=k, ы , . . . , 5 , 2

имеем