О-большое
Определение. Пусть Заметим, что равенство в обозначении f = 0(g) следует, скорее, понимать как неравенство <, а О-большое — как некоторую мультипликативную константу. Пример 3. а) Пусть f(n) - произвольный многочлен степени d с положительным старшим коэффициентом. Тогда, как легко показать, f(n)= O(nd). В более общем случае можно показать, что f = O(g), если f (n)/g(n) имеет конечный предел при n→ ∞. В примере 1 можно записать Time(n!) = O((n logn)2). Функции f (n) и Образно говоря, соотношение f (n)=O(nd) показывает, что функция f растет приблизительно как d-я степень аргумента. Например, если d=3, то оно говорит нам, что удвоение аргумента приведет к увеличению функции приблизительно в 8 раз. Соотношение Заметим, что запись В общем случае, когда оценивается число двоичных операций, требующихся для решения какой-либо задачи, сначала надо определить и выписать подробную процедуру решения задачи. Конкретная пошаговая процедура выполнения вычислений называется алгоритмом. Конечно, может существовать много разных алгоритмов, выполняющих одну и ту же работу. Можно воспользоваться тем из них, который попроще в записи, или тем, который быстрее работает, или выбрать какой-то компромисс между простотой и быстродействием. Использованный выше алгоритм умножения n на m далек от самого быстрого из известных. Но вместе с этим он много быстрее метода повторного сложения (m-кратного сложения числа n с собой). Пример 4. Оценить время, требующееся для перевода числа из k бит в десятичную систему счисления. Решение. Пусть п - целое из к бит, записанное в двоичной системе счисления. Алгоритм перевода следующий. Разделим n на 10 = (1010)2. Остаток от деления — который является одним из чисел 0, 1, 10, 11, 100, 101, 110, 111, 1000 или 1001 — даст содержимое d0 разряда единиц. Частное от деления возьмем вместо n, поделим на (1010)2и возьмем остаток от этого деления в качестве dl а частное — в качестве делимого при следующем делении на (1010)2. Этот процесс должен повторяться столько раз, сколько десятичных разрядов содержится в числе n, т.е. Time (перевод n в десятичную систему счисления) = О (log2 n). Теорема (О сравнении операций) Введем понятия: M(n)– сложность операции умножения 2-х n разрядных чисел. D(n)– сложность операции деления с остатком 2n разрядное на n разрядное. S(n)– сложность операции возведения в квадрат n разрядного числа. R(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) где 3S(n) - 3 возведения в квадрат, а 4(n)-четыре сложения. 2)S(n) Замечание. Это верно только для точных значений 3) Для доказательства воспользуемся итерационным методом Ньютона для нахождения обратного. Он заключается в вычислении последовательности итераций x(0), x(1), …, x(i), … по формуле: x(i+1)=2x(i)-Nx(i)2. Данная последовательность действительно сходиться к Поэтому при выборе начального значения x(0) так, что 4) 5)
Метод Карацубы для оценки сложности операции умножения. Суть метода заключается в рекурсивном повторении шага: Пусть А и В – два n-разрядных числа. Разобьем их на два слагаемых (для простоты считаем, что Тогда
Таким образом, для вычисления произведения двух n-разрядных чисел нужно выполнить три умножения n/2-разрядных чисел и некоторое количество сложений, вычитаний и переносов. Поэтому для сложности данного алгоритма умножения справедлива оценка
Откуда по Лемме 2
Пример: умножим два числа 1101 и 1011 с помощью метода Карацубы.
Воспользовавшись тождеством представим четырехзначные числа A и B в виде и
Видно, что достаточно произвести всего три умножения двузначных чисел 1101 × 1011=(102 × 11+1) × (102× 10+11)=(104+102)× 11× 10+102× 10× 1+(102+1)× 1× 11=1113111 (Н.Коблиц., 2001)
Список литературы А.В.Черемушкин Лекции по арифметическим алгоритмам в криптографии. [Книга]. - Москва: МЦНМО, 2002. - стр. 104. Н.Коблиц. КУРС ТЕОРИИ ЧИСЕЛ И КРИПТОГРАФИИ. [Книга]. - Москва: Научное изд-во ТВП, 2001. - стр. 254.
|