Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Приемы, используемые для минимизации вычислений




Одним из критериев, характеризующим качество составленной программы, является объем выполняемых ею вычислений для достижения требуемого результата. Чем он меньше, тем, как правило, быстрее будет работать программа. Существуют разные приемы, применение которых позволяет сократить объем вычислений за счет уменьшения в первую очередь количества вызовов функций, затем – количества операций типа умножения, и, наконец, – количества операций типа сложения. Вот некоторые из них, рассмотренные отдельно, хотя, как правило, они используются в сочетании.

Вынесение общих множителей за скобки. Например, вместо оператора

Z:=Sin(X)*Y-Sin(X)*Sqr(Y)*Y+Sqr(X)*X+X;

лучше использовать оператор

Z:=Sin(X)*Y*(1-Sqr(Y))+X*(Sqr(X)+1);

Использование схемы Горнера для полиномов. Например, полином

преобразованный по схеме Горнера, примет вид

((((2X-5)X+2)X+7)X-4)X+6

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

((((2*X-5)*X+2)*X+7)*X-4)*X+6,

а по первому –

2*IntPower(X,5)-5*IntPower(X,4)+2*IntPower(X,3)+7*IntPower(X,2)-4* X+6

где помимо такого же числа операций умножения требуется выполнить четыре обращения к функции возведения в степень.

Другой пример, где также применима схема Горнера:

1+2!+3!+4!+5! = 1+2(1+3(1+4(1+5)))

Использование дополнительных переменных. Например, при вычислении значения функции целесообразно предварительно вычислить и , а исходную формулу преобразовать к виду . В этом случае в программе будут использованы три оператора присваивания:

A:=X-Y;

B:=Sqr(A);

Z:=A*(1+A*B)/(1+B);


Поделиться:

Дата добавления: 2015-04-15; просмотров: 121; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты