
- •Оглавление
- •Позиционные системы с произвольным основанием.
- •Сложность алгоритма(пример -подсчета достаточного количества операций).
- •Сложность арифметических операций.
- •Оценки функции сложности.
- •Арифметические операции с целыми числами и их сложность Двоичные операции.
- •Теорема (о сравнении операций)
- •Список литературы
Теорема (о сравнении операций)
Введем понятия:
M(n)– сложность операции умножения 2-х n разрядных чисел.
D(n)– сложность операции деления с остатком 2n разрядное на n разрядное.
S(n)– сложность операции возведения в квадрат n разрядного числа.
R(n)–
сложность операции обращение n
разрядного числа(под обратным к n
разрядному числу N
понимается дробь, полученная из
отбрасыванием лишних знаков так,
чтобы получилось n
разрядное число ).
Теорема. Пусть функции сложности удовлетворяют следующим условиям:
a)f(n)≥n; и b)kf(n)≤f(kn)
Тогда, если M(n),D(n),S(n),R(n) удовлетворяют а) и б), то M(n)≈D(n)≈S(n)≈R(n).
Доказательство:
1)M(n)
S(n),
так как в силу тождества
справедлива
оценка M(n)≤3S(n)+4(n),
где 3S(n) - 3
возведения в квадрат, а 4(n)-четыре
сложения.
M(n)
=O(S(n))
Делению на два соответствует операция
сдвига.
2)S(n)
R(n),
т.к. в силу равенства
получаем оценку: S(n)≤3R(n)+2n,
где 3R(n)
- 3 обращения в квадрат, а 2n
- два сложения.
Замечание. Это верно только для точных значений , для приблизительных значений и дополнительной оценки смотреть специальную литературу.
3)
:
Для доказательства воспользуемся
итерационным методом Ньютона для
нахождения обратного. Он заключается
в вычислении последовательности итераций
x(0),x(1),…,x(i),…
по формуле: x(i+1)=2x(i)-Nx(i)2
. Данная последовательность
действительно сходиться к
,
т.к. если x(i)=
(1-δ),
то
Поэтому при выборе начального значения
x(0) так, что
<
(а
это легко сделать по двум значащим
разрядам N),мы получаем
последовательность, в которой каждый
раз число правильно вычисленных знаков
после запятой удваивается. Благодаря
этому мы можем теперь просто заменить
нулями те знаки, которым нельзя доверять
при данной итерации, и, постоянно
удваивая число правильных знаков, через
log n
шагов получим нужное количество знаков.
Отсюда вытекает оценка:
(по лемме1)
.
4)
: из равенства
5)
–
очевидно
По свойству транзитивности, получаем,
что включение является замкнутым.
.
Метод Карацубы для оценки сложности операции умножения.
Суть метода заключается в рекурсивном повторении шага :
Пусть А и В – два n-разрядных числа.
Разобьем их на два слагаемых (для простоты
считаем, что
)
Тогда
Таким образом, для вычисления произведения двух n-разрядных чисел нужно выполнить три умножения n/2-разрядных чисел и некоторое количество сложений, вычитаний и переносов. Поэтому для сложности данного алгоритма умножения справедлива оценка
Откуда по Лемме 2
где
Пример: умножим два числа 1101 и 1011 с помощью метода Карацубы.
Воспользовавшись тождеством
представим четырехзначные числа A
и B в виде
и
,
где
–
двузначные числа. Тогда
.
Видно, что достаточно произвести всего
три умножения двузначных чисел
,
,
,
на каждое из которых затратили не
больше четырех элементарных умножений,
т.е. всего затратим 12 умножений вместо
16 (и некоторое количество сложений). В
данном случае: a1=11,
a0=1, b1=10,
b0=11, откуда
11011011=(10211+1)(10210+11)=(104+102)1110+102101+(102+1)111=1113111
(Н.Коблиц., 2001)