Посмотрите на шаге 4
T(n) = 2(2(2(2(2T(n-5) + 1) + 1) + 1) + 1) +1 ----- 4
T(n) = 2(2(2(2(2T(n-5))))) + 16 + 8 + 4 + 2 +1 =
T(n) = 2^4* 2T(n-5) + 2^4 + 2^3 + 2^2 + 2^1 + 2^0 =
T(n) = 2^4* 2T(n-5) + 2^5 -1 =
Точно так же, если вы делаете то же самое, и развивать еще один раз, когда вы получаете:
T(n) = 2^5 *2T(n-6) + 2^5 + 2^5-1
T(n) = 2^5 * 2T(n-6) + 2^6-1
В настоящее время мы можем понять, что если мы не будем развивать его до основания T (1), получаем:
T(n) = .... = 2^(n) -1
Обратите внимание, что этот метод дает интуицию только для решения проблемы и ИТ НЕ ДОКАЗАТЕЛЬСТВО.
Чтобы формально доказать утверждение, вы можете использовать индукцию, и утверждают гипотезу T(n) = 2^n -1
:
Основание: T(1) = 1 = 2^1 -1
Индукционная гипотеза: Для всех k<n
, T(k) = 2^k-1
Доказательство:
T(n) = 2T(n-1) +1 =(i.h.) 2* (2^(n-1) -1) + 1 = 2^n -2 + 1 = 2^n - 1
Примечание: Основное предложение T (1) на самом деле C
, и аналогично T(n) = 2T(n-1)+C
для некоторой константы, а не 1
, но я использую 1 для простоты. Логика вообще не изменяет при изменении ее на C
.
В отличие от форумов, мы не используем «Спасибо», «Любая помощь оценена» или подписи на [so]. См. «[Должны ли« Привет »,« спасибо », теги и приветствия удалены из сообщений?] (Http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be –
Хорошо, будем помнить! – Dee
Ваши комментарии «в противном случае его T (n) = O (1)» не имеет смысла в асимптотической структуре. –