Большой вопрос - алгоритмический анализ

75
8

Я пересматриваю экзамен, и я нашел эту проблему в Интернете и задавался вопросом, как я буду ее решать.


(с базовыми 2 журналами)
Докажите, что log (2 n ) является членом O (log n ).



Я дал ему уйти, но не уверен, прав я, потому что ответа не было. Не могли бы вы помочь?


Вот моя попытка:


log 2 n - c log n & le; 0
log 2 + log n - c log n & le; 0
1 + (1- c ) log n & le; 0
(Затем я разделяю на log n .)



Пример: n = 8 и c = 10 оценивается меньше нуля. Поэтому он истина.


Мои вопросы:


    Я делаю это правильно?


    Можно ли еще упростить мой ответ?


спросил(а) 2020-03-25T18:49:38+03:00 2 месяца назад
1
Решение
106

lg(2n) = lg(2) + lg(n).

lg (2) является константой. См. Wikipedia, Логарифмические тождества.

ответил(а) 2020-03-25T18:57:36.796054+03:00 2 месяца назад
83

Долгий ответ:


                log(2n)       log(2) + log(n)       log(2)
lim n->infinity ------- = lim --------------- = lim ------ + 1 = 0 + 1 = 1
log(n) log(n) log(n)

Поскольку соотношение двух функций в пределе существует (т.е. ограничено), они имеют одинаковую асимптотическую сложность.


Таким же образом, чтобы доказать, что O (n 2 ) не O (n), вы бы сделали


lim n->infinity (n^2 / n) = lim n    which tends to infinity

Выполнение этого для O (n) по сравнению с O (log n) требует больше работы, потому что


lim n->infinity (n / log n)

нужно как-то обработать. Трюк заключается в том, что вместо этого вы можете использовать производные, так как производные в пределе также должны быть асимптотически связаны (в противном случае их интегралы не являются, т.е. Исходными функциями). Возьмем производную от n, которая равна 1, а число log n, которое является n -1 после чего


lim n->infinity (1 / (1 / n)) = lim n    which tends to infinity

ответил(а) 2020-03-25T18:49:38+03:00 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема