Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
abramov_s_a_lekcii_o_slozhnosti_algoritmov.doc
Скачиваний:
136
Добавлен:
11.05.2015
Размер:
2.74 Mб
Скачать

Глава 5. Битовая сложность

редкий пример, когда низкие временные затраты сочетаются с малым расходом памяти.

Алгоритм Уоршелла построения замыкания ориентированного графа имеет битовую временную сложность 2n3 + n, где n = \ V \ чис­ло вершин графа. Пространственная сложность этого алгоритма ограничена константой.

При рассмотрении |V|, |E| в качестве двух параметров размера входа сказанное сохраняет силу, так как затраты алгоритма Уоршелла не зависят от числа ребер заданного входного графа.

Задачи

                  1. Исследовать битовую сложность вычисления величины 1 + + 2 + ... +n последовательными сложениями. Размером входа считать битовую длину m целого числа n.

                  1. Для временной битовой сложности «сверхнаивного» умноже­ния (пример 19.1) при использовании параметров mъ m2 верна оценка сверху O(2тах{m1'm2}тах{m1,m2}), а оценка Q(.2max{m^m}max{m1,m2}) неверна.

Указание. Неверна оценка П(2тах{mьm2}тах{m1,m2}): она противоречила бы оценке O(2m2m{), так как для любого N > 0 существуют m1,m2>N такие, что m1 = 2m2.

                  1. Определение чисел Фибоначчи, данное в § 10, позволяет вы­числить Fn, выполнив n — 1 сложение. Битовая сложность этого алго­ритма допускает оценку O{n2) при рассмотрении n в качестве разме­ра входа.

                  1. Обосновать использованный в доказательстве предложения 21.1 переход от оценки T*^(.mъm2) = O{{mг - m2 + 1)(m2 + 1)) к T^* (mъ m2) = O{{mг -m2 + 1)m2).

                  1. Можно ли усилить предложение 21.2, заменив приведенные там оценки O(logalogb), O(log2a) на e(logalogb), 6(log2a)?

                  1. Рассмотрим m = А(n) в качестве размера входа алгоритма вы­числения факториала (пример 20.1). Верна ли для соответствующей временной битовой сложности оценка O(2mm)?

                  1. К числу, первоначально равному нулю, прибавляется шаг за шагом по единице до получения значения 2n - 1, n ^ 0. При этих сло­жениях потребуется 2n - n - 1 переносов единицы в старший разряд.

                  1. Пусть p — простое, a и b — произвольные целые, k — нату­ральное. Тогда (a + b)pk=apk +bpk (mod p).

                  1. Задачи

155

106. а) Аддитивная группа кольца Zk является циклической, в ка­ честве образующей этой группы может выступать любой класс, со­ держащий число I, взаимно простое с к.

б) Пусть р—простое, тогда мультипликативная группа поля Zp, т. е. группа всех ненулевых элементов по умножению, является цик­лической.

107. Если число р—простое, а к—неотрицательное целое, мень­ шее р, то (£)=0 (mod р).

Указание. Предварительно показать, что р не делит /с!.

108. Индукцией по а доказать малую теорему Ферма.

Указание. Использовать равенство ар = (1 + (а - 1))р и предыдущую за­дачу.

109. Имеет место следующая китайская теорема об остатках: пусть кък2,...,кп—взаимно простые натуральные числа (моду­ ли); тогда для любых Ъъ Ъ2,..., Ъп е Z найдется /eN такое, что / = = b; (mod ki), i = 1, 2,..., п. (Задача восстановления числа по остаткам обсуждалась в древних китайских математических трактатах.) Дать конструктивное доказательство этой теоремы, т. е. доказательство, содержащее в себе алгоритм построения подходящего / (каждый такой алгоритм может быть назван китайским алгоритмом).

Указание. Пусть k = k1k2...kn и g; = fc/fc;, i = l,2,...,n. При всех i = l,2, ... ..., п числа fc; и g; взаимно просты, поэтому расширенным алгоритмом Евкли-

п

да можно определить h{ так, что h;g; = 1 (mod fc;) и положить /= Xi ^j^jSj.

110. Исходя из того, что значение полинома /(х) в точке х = а равно по теореме Безу остатку от деления /(х) на х-а, установить параллелизм между интерполяционной формулой Лагранжа и форму­ лой для значения /, данной в указании к задаче 109.

111. Битовая сложность китайского алгоритма, эскизно обрисован­ ного в указании к задаче 109 и основывающегося на расширенном алгоритме Евклида, наивном делении и наивном умножении, допус­ кает оценку 0(log2fc), если в качестве размера входа рассмотреть к, и оценку 0{т2), если в качестве размера входа рассмотреть битовую длину т числа к.

Указание. По поводу сложности вычисления g см. пример 20.2; сложность этапа вычисления всех g; допускает оценку ОI J] log g log кЛ и т. д.

156

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]