Предположим, у нас есть две функции f(n) = 22n+1 и g(n)=22n. Я хочу сравнить их темпы роста этих двух функций, используя два разных метода.
Метод первый: возьмите соотношение
Определим t(n) = f(n)/g(n). Затем
t(n) = f(n) / g(n)
= 22n+1 / 22n
= 22n + 1 - 2n
= 22н
Итак, предположим, что f(n) растет намного быстрее, чем g(n).
Метод второй: используйте логарифмы
Как и раньше, пусть t(n) = f(n)/g(n). Теперь возьмем логарифмическую базу два с обеих сторон:
lg t(n) = lg (f(n) / g(n))
= lg (22n+1 / 22n)
= lg 22n+1 - lg 22n)
= 2n+1 - 2n
Теперь возьмем основание бревна два с обеих сторон:
lg lg t(n) = (n + 1) lg 2 / n lg 2
= (n + 1) / n
Игнорируя постоянный член, мы получаем lg lg t(n) = 1, что является константой, поэтому f(n) и g(n) должны иметь одинаковую скорость роста.
Почему я получаю неправильный ответ, используя второй метод?
a/b=(log a)/(log b)
, что в целом неверно. - person Reinstate Monica   schedule 01.11.2013