Решение уравнения с использованием обобщения основной теоремы

Прошу помощи в объяснении того, как работает доказательство. Я видел примеры этого, но не могу понять.

Докажите следующее

Решение уравнения

T(n) = aT(n/b) + Θ(nk logp n), где a ≥ 1, b > 1, p ≥ 0

  • T(n) = O(nlogb a), если a > bk

  • T(n) = O(nk logp+1 n), если a = bk

  • T(n) = O(nk logp (n)) если a ‹ bk

Вот скриншот вопроса в лучшем формате

Это обобщение основной теоремы.


person Nyan Wolf    schedule 29.11.2016    source источник
comment
Вы спрашиваете; предоставить доказательство основной теоремы?? Это хорошо и действительно решенная проблема - стр. 76 en.wikipedia.org/wiki/Introduction_to_Algorithms   -  person thespinkus    schedule 29.11.2016
comment
Вопрос требует доказать данную теорему. Я не знаком с такой теоремой и был бы признателен за объяснение того, как подойти к доказательству и почему такое доказательство приемлемо. Я уже просмотрел другие ответы, но мне трудно понять концепции, лежащие в основе доказательства.   -  person Nyan Wolf    schedule 29.11.2016
comment
Совет: возьмите «Введение в алгоритмы» из библиотеки и перейдите на стр. 76. Это очень хороший текст. Очень доказательство.   -  person thespinkus    schedule 29.11.2016
comment
Я читал его, но мне трудно его понять.   -  person Nyan Wolf    schedule 29.11.2016
comment
Да, книга немного запутана.   -  person fractal    schedule 29.11.2016
comment
Может быть, если вы хотите объяснения, опишите, какие существующие опубликованные доказательства вас беспокоят.   -  person thespinkus    schedule 29.11.2016
comment
В книге показано обобщенное объяснение O (n). Теперь я ищу, как применить подобное доказательство к O (n ^ k log ^ p n).   -  person Nyan Wolf    schedule 29.11.2016


Ответы (1)


Для некоторого x =log(n)/log(b) имеем n=bx. Разделите уравнение на ax

T(bx)/ax = T(bx-1)/ax-1 + Θ((bk/a)x·xp·logp b)

Сумма членов mp·qm для m ‹ x равна

  • ограничен константой при q ‹ 1
  • растет как xp+1 для q = 1
  • доминирует последний член xp·qx для q > 1

Признание q=bk/a и подстановка обратно дает результат

  • для a ‹ bk: T(bx)=O(ax) или T(n)=O(nлогба)
  • для a = bk: T(bx)=O(xp+1·ax) , или T(n)=O(nlogba·logp+1n )
  • для a > bk: T(bx)=O(xp·bkx), или T(n)=O(nk·logpn)
person Lutz Lehmann    schedule 29.11.2016