русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Деление с остатком. Метод итераций.


Дата добавления: 2014-11-28; просмотров: 856; Нарушение авторских прав


Рассмотрим задачу деления числа на число с остатком. Представим b в виде ( выбирается так, чтобы минимизировать отношение ). В качестве приближенного частного можно взять . Остаток от деления удовлетворяет соотношениям . Если отношение , то получаем следующий итеративный процесс деления.

1. Положим r=a, v=0

2. Вычислим , v=v+u, r=r-bu. Перейдем на шаг 3.

3. Если , то перейдем на шаг 4, иначе вернемся на шаг 2.

4. Если r<0, то положим v=v–sign(b), и r=r+|b|. Алгоритм работу закончил, частное равно v, а остаток r.

Число итераций алгоритма равно , где .

Выбор осуществляется так, чтобы можно легко проводить деление на шаге 2. Например, можно положить . В этом случае (если используем «обычную» позиционную систему счисления, в сокращенной системе счисления ) Операция деления на шаге 2 может выполняться процедурой DivCnst с последующим отбрасыванием n-1 разряда. Для величины справедливы неравенства (или в «сокращенной» системе счисления ). Число итераций алгоритма определяется величиной старшего разряда делителя. Чем она больше, тем меньше количество итераций. Для увеличения используют ускоряющий множитель. Перед делением делимое и делитель умножают на число (в сокращенной системе на число ). В результате, гарантировано, что старший разряд, нового делимого не меньше p/2. А число итераций алгоритма пропорционально m-n+1. Таким образом, общая трудоемкость алгоритма деления методом «итераций» пропорциональна .

В случае малого p, можно положить . При таком выборе гарантируется неравенство (для сокращенной системы ). Единственное ограничение, величина должна убираться в ячейку памяти.

Приведем программу деления Div числа A на B с остатком (длина числа B больше 1) без уточнения остатка (шаг 4).

procedure Div(A,B,Part,Rest);

Begin



Rest.last:=A.last;SetEmpty(Part);

t:=B.last;n:=0;

while t^.next B.last do {t:=t^.next;n:=n+1}

beta:=t^.info+p*t^.next^.info;

Repeat

DivCnst(U,Rest,beta);i:=1;

while (i<n)and(u.last<>nil) do {i:=i+1;Del(U,U.last)}

Add(S,Part,U);{список Part можно удалить}

Part.last:=S.last;

Mult(S,B,U);Sub(S1,Rest,S);{списки S,Rest можно удалить}

Rest.last:=S1.last;

until U.last=nil; );{список U можно удалить}

end;



<== предыдущая лекция | следующая лекция ==>
Умножение «столбиком» | Вычисление линейных рекуррентных соотношений


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.955 сек.