Дано следующее рекурсивное уравнение
мы хотим применить основную теорему и отметить, что
Теперь мы проверим первые два случая для , то есть
- или
- .
Два случая не удовлетворены. Таким образом, мы должны проверить третий случай, то есть
- .
Я думаю, что третье условие также не выполняется. Но почему? И что было бы хорошим объяснением того, почему основная теорема не может быть применена в этом случае?
Ответы:
Три случая основной теоремы, на которые вы ссылаетесь, доказаны во введении к алгоритмам Томасом Х. Корменом, Чарльзом Э. Лейзерсоном, Рональдом Л. Ривестом и Клиффордом Стейном (2-е издание, 2001).
Правильно замечено, что рассматриваемая повторяемость находится между случаем 2 и случаем 3. То есть растет быстрее, чем n, но медленнее, чем n 1 + ε для любого ε > 0 .е( n ) = n logN N N1 + ε ε > 0
Однако теорема может быть обобщена, чтобы охватить это повторение. Рассматривать
Случай 2А. Рассмотрим для некоторого k ≥ 0 .е(n)=Θ(nlogbalogkbn) k≥0
Этот случай сводится к случаю 2 , когда . Интуитивно ясно , что вдоль каждой ветви дерева повторения F ( х ) добавляется thetas ; ( лог б п ) раз. Эскиз более формального доказательства можно найти ниже. Окончательный результат в том , чтоk=0 f(x) Θ(logbn)
.
В введении к алгоритмам это утверждение остается в качестве упражнения.
Применяя это утверждение к рассматриваемой рекурсии, мы, наконец, получаем
Более подробную информацию об основной теореме можно найти на превосходной (imho) странице Википедии .
Поскольку @sdcvvc указывает в комментариях, чтобы доказать, что случай 3 здесь не применим, можно использовать правило Л'Оспиталя, которое гласит, что для любых функцийF(х)иг(х)дифференцируема в окрестностис. Применяя это кF(п)=пвойтипиг(п)=п1+εможно показатьчтожурналп∉thetas(п1+ε).
Набросок доказательства основной теоремы для случая 2А.
Это воспроизведение частей доказательства из введения в алгоритмы с необходимыми модификациями .
Сначала докажем следующую лемму.
Лемма А:
Рассмотрим функцию , где ч ( п ) = п войти б в журнал K б н . Тогда g ( n ) = n log b a log k + 1 b n .
Доказательство: подставляя в выражение для g ( n ), можно получить g ( n ) = n log b a log k b nч ( н ) грамм( н )
QED
источник
Теорема Акра-Бацци является строгим обобщением основной теоремы. В качестве бонуса его доказательство - метель интегралов, которые заставят вашу голову вращаться ;-)
источник