Повторение T(n) = T(n^(1/2)) + 1

Я смотрел на это возвращение и хотел проверить, правильно ли я подходил.

T(n) = T(n^(1/2)) + 1
= T(n^(1/4)) + 1 + 1
= T(n^(1/8)) + 1 + 1 + 1
...
= 1 + 1 + 1 + ... + 1 (a total of rad n times)
= n^(1/2)

Таким образом, ответ пришел бы к тета-оценке п ^(1/2)

2 ответа

Решение

подсказка: предположим, что n = 22м или m = log2 log2 n, и вы знаете, что 22m-1 * 22m-1 = 22м, поэтому, если вы определите S (m) = T (n), то ваш S будет:

S (m) = S (m-1) +1 → S (m) = Θ(m) → S (m) = T (n) = Θ(log2 log2 n)

продлить его для общего случая.

В такой рекурсии, как T (n) = T (n / 2) + 1, вы уменьшите высоту дерева в 2 раза на каждой итерации, что приводит к Θ(logn), но в этом случае вы уменьшите входное число на степень двух (не два раза) так что будет Θ(log log n).

Вот как вы можете найти ответ без каких-либо подсказок, просто используя математику.

Начните раскручивать рекурсию: введите описание изображения здесь,

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

Решая это, вы получаете введите описание изображения здесь,

Так что рекурсия продолжится log(log(n)) раз, и это ваше время сложность.

PS Немного сложнее было повторение здесь.

Другие вопросы по тегам