Решить повторение: T (n) = T (n - 1) + T (n - 2) + 3 - PullRequest
0 голосов
/ 07 марта 2019

T (1) = T (2) = 1, а для n> 2 T (n) = T (n - 1) + T (n - 2) + 3.

Что Iveсделано до сих пор:

T(n-1) = T(n-2) + T(n-3) + 3 + 3
T(n-2) = T(n-3) + T(n-4) + 3 + 3 + 3
T(n) = T(n-2) + 2T(n-3) + T(n-4) + 3 + 3 + 3 + 3 + 3
T(n) = T(1) + 2T(2) + T(n-4) + 3(n + 2)

Я не уверен, правильно ли это, и если да, то как мне избавиться от T (n-4).

1 Ответ

3 голосов
/ 07 марта 2019

Эти типы повторений сложны, и метод повторного расширения, к сожалению, ни к чему не приведет. Наблюдение за деревом рекурсии даст вам только верхнюю границу, которая часто не жесткая.

Два метода, которые я могу предложить:


1. Подстановка + стандартная теорема

Произведите следующую подстановку переменных:

enter image description here

Это в правильной форме для метода Акра-Бацци , с параметрами:

enter image description here


2. Формула Фибоначчи

Ряд Фибоначчи имеет явную формулу, которую можно получить, угадав решение вида Fn = a^n. Используя это как аналогию, замените аналогичное выражение для T(n):

enter image description here

Уравнение постоянных и экспоненциальных членов:

enter image description here

Возьмите положительный корень, потому что отрицательный корень имеет абсолютное значение меньше 1 и, следовательно, будет уменьшаться до нуля с увеличением n:

enter image description here

Что соответствует (1) .

...