Рассматривается способ частичной замены операции деления на операцию умножения.
Операция деления одного числа на другое может быть частично заменена более быстрой операцией перемножения, что для случая вычислительного процесса должно дать выигрыш по времени.
Рассмотрим это на примере трехзначного числа (знаменателя), пусть необходимо получить мантиссу дроби 1/221 .
Первые 2 ненулевых числа мантиссы получаем (сразу отметим, что 3 числа - еще лучше), используя простое деление:
Теперь будем только умножать. За первый сомножитель берем остаток 55. Вторым сомножителем будет частное, удлиняющееся после каждого умножения и которое образует в конечном итоге искомую мантиссу.
Вся мантисса (ненулевая часть) образуется из начального состояния сомножителей: 55*45. На число 55 будет умножаться всегда одна цифра из правого сомножителя («45», и которое - число - будет возрастать). Результат произведения будет записываться правее перемножаемой цифры (правого сомножителя - мантиссы) на m разрядов, где m равно количеству чисел «первоначальной» мантиссы, включая нули; в данном случае m=4 (величина 0,0045).
Умножаем 55 на 4, затем на 5:
Теперь складываем оба нижних числа (сумма = 2475), «поднимаем» цифру 2 к 45 и передаем ей «право» на перемножение. Затем, после суммирования, перемножаться (с «55») будет следующая цифра и т.д.
и т.д.
Правый сомножитель будет искомой мантиссой (ненулевая часть).
Данный алгоритм можно описать так:
Здесь остаток от деления: «55» является сам коэффициентом у искомой величины 1/221. И чем меньший коэффициент (остаток) мы возьмем, тем справа будут добавляться меньшие числа (в отличие от больших коэффициентов, могущих создать справа большую величину, влияющую на перемножаемую цифру).
В общем случае получение деления чисел будет следующим:
Пусть необходимо разделить число A на В. Задача заключается в нахождении мантиссы числа 1/B и затем перемножение мантиссы на число А.
Необходимо произвести деление для получения только 3 первых ненулевых цифры
(3-я цифра - для меньшего влияния очередного произведения на перемножаемую цифру). Пусть получим остаток Y от последнего 3-го этапа деления:
где число C1-3 = с3*100 + с2*10 + с1 , c3>0.
Первым сомножителем будет остаток Y. Вторым - число C1-3.
Список литературы
- Бронштейн И.Н., Семендяев К.А. Справочник по математике. - М.: Наука, 1986.
Библиографическая ссылка
Санжак В.Л. ОБ ОДНОМ СПОСОБЕ УСКОРЕНИЯ МЕДЛЕННЫХ ОПЕРАЦИЙ, ЗАКЛЮЧАЮЩЕМСЯ В ЧАСТИЧНОЙ ЗАМЕНЕ ДЕЛЕНИЯ УМНОЖЕНИЕМ // Успехи современного естествознания. – 2011. – № 1. – С. 81-81;URL: https://natural-sciences.ru/ru/article/view?id=15638 (дата обращения: 24.11.2024).