Алгоритмы, оценка сложности функции

Покажите, что для произвольной константы c > 0 функция g(n) = 1 + c + c^2 + ... + c^n есть

(а) Θ(1), если с < 1;  
(b) Θ(n), если c = 1;  
(c) Θ(c^n), если c > 1.

Другими словами, в сумме убывающей геометрической прогрессии можно оставить лишь первый член; возрастающей - последний, а постоянной - количество членов.

Подскажите, пожалуйста, с чего начать? Есть ли какой-то универсальный метод для всех трех случаев?


Ответы (1 шт):

Автор решения: Aziz Umarov

Ничего сложного нет просто подставьте значения и подсчитайте что получится. Имея g(n) = 1 + c + c^2 + ... + c^n и формулу для суммы членов геометрической прогрессии введите сюда описание изображения

  1. Θ(1), если с < 1;

    Если считать g(n) бесконечной суммой, то можно применить формулу суммы бесконечной убывающей геометрической прогрессии

    введите сюда описание изображения

    откуда имеем следующее,

    g(n) = 1 + c + c^2 + ... + c^n < 1/(1-с) = O(1) не зависит от n.

  2. Θ(n), если c = 1;
    В этом случае подставив c = 1

    g(n) = 1 + c + c^2 + ... + c^n = 1 + 1 + 1 + ... + 1 = 1 + n = O(n)

  3. Θ(c^n), если c > 1.

    Просто подставив в формулу суммы членов геометрической прогрессии

    g(n) = 1 + c + c^2 + ... + c^n = (1-с^n)/(1-с) = (c^n -1)/(c-1) = c^n/(с-1) - const = const*c^n - const = O(с^n), где const = 1/(с-1)

→ Ссылка