Если F(п) = о(г(N)), тогда 2^(ф(п)) = о(2^(г(N)))?
Обратите внимание, что я прошу здесь little-o (см. аналогичный вопрос здесь ) - для big Oh это явно неправильно - для little-o это кажется правильным, но не может доказать это...
EDIT: рад, что я поднял дискуссию :) предположим f, g > 0 для простоты
3 ответа:
По крайней мере, если g(n) сходится к положительной бесконечности для n к положительной бесконечности (если g(n) нет, то легко найти контрпримеры).
Набросок доказательства:
Prerequsites: г(N) сходится к положительной бесконечности при N к положительной бесконечности.
F (n) в o(g (n)) означает:
for every eps > 0 exists a n0 so that for all n > n0 abs(f(n)) < abs(g(n)*eps).
Форма следующая:
2^abs(f(n)) < 2^abs(g(n)*eps) = (2^eps)^g(n) (for n > n0).
Для eps
(2^eps)^n is in o(2^n) (as 2^eps < 2)
Из этого следует, что для каждого eps2 > 0 существует n1, так что для всех n > n1
(2^eps)^n < eps2*(2^n).
Выбор eps2 = EPS vields:
(2^eps)^n < eps*(2^n) for all n > n1 (n1 is dependent on eps)
Потому что g (n) - > pos. бесконечность. для n - > pos. бесконечность. существует n2, так что
g(n) > n1 for all n > n2
Вытекающее оттуда есть
(2^eps)^g(n) < eps*2^g(n) for all n > n2.
Таким образом, для каждого 0 = max (n0,n2), так что
2^abs(f(n)) < 2^abs(g(n)*eps) = (2^eps)^g(n) < eps*2^g(n) for all n > n3.
Для каждого eps3 > 1 также:
2^abs(f(n)) < eps*2^g(n) < eps3*2^g(n)
Таким образом, для каждого eps > 0 существует n3, так что
2^abs(f(n)) < eps*2^g(n) for all n > n3
Поскольку 2^f (n) 0 для всех вещественных x, следует
abs(2^f(n)) < abs(eps*2^g(n)) for all n > n3
Q. e. d.
Если что-то неясно или неправильно, пожалуйста, прокомментируйте.EDIT: некоторые мысли о других g (n):
Подпоследовательность g (n) ограничена, то есть существует некоторый x, так что не существует n0 с abs (g (n))>=x для всех n > n0:
O(g (n)) состоит только из функций, которые являются постоянными 0 после некоторого n или сходятся к 0. Тогда 2^g(n) также имеет ограниченную подпоследовательность, но 2^f (n) является константой 1 после некоторой точки.
Нет n0, поэтому g (n) > 0 для всех n > n0:
2^g(n)
Вот ответ. Результат зависит от свойств сходимости g(n).
Сначала рассмотрим соответствующий предел:
lim(x->inf) log_2 ((2^(f(n))) / (2^(g(n)))) = lim(x->inf) ( log_2(2^(f(n))) - log_2(2^(g(n))) ) = lim(x->inf) ( f(n) - g(n) ) = lim(x->inf) ( g(n) * f(n) / g(n) - g(n) ) = lim(x->inf) ( -g(n) ) = - lim(x->inf) g(n)
... Теперь, чтобы получить это в форме исходного вопроса в вашем посте, если математически правильно переключить предел и журнал (что я думаю, что это так), то у нас будет:
Теперь перейдем к ответу на вопрос. Если это является истинным, тоlim(x->inf) log_2 ((2^(f(n))) / (2^(g(n)))) = log_2 lim(x->inf) ((2^(f(n))) / (2^(g(n)))).
2^(f(n)) = o(2^(g(n))),
Затем в пределе, правая сторона становится
log_2 (0) = - inf
... поэтому в этом сценарии должно быть верно, что
Этот результат, по-видимому, имеет смысл. Рассмотримlim(x->inf) g(n) = inf
f(x) = exp(-x) and g(x) = 1 - exp(-x)
. Ясно, что в этом примереf(x) = o(g(x))
. Однако2^(f(x)) is not o(2^(g(x)))
потому чтоlim(x->inf) (2^exp(-x)) / (2^(1-exp(-x))) = 1/2.
Но учитывая
f(x) = exp(x), g(x) = exp(2x)
, где такжеf(x) = o(g(x))
и гдеlim(x->inf) g(x) = inf
, удовлетворяя приведенному выше условию, имеемlim(x->inf) (2^exp(x)) / (2^exp(2x)) = lim(x->inf) 1 / 2^(exp(x)*(exp(x) - 1)) = 0
Так что
2^(f(x)) = o(2^(g(x)))
.
Простое доказательство на примере,
Если f (n) = O (g (n)),
2^(f (n)) не равно O (2^g (n)))Пусть, f(n) = 2log n и g (n) = log n
(Предположим, что log находится в основании 2)Мы знаем, 2log n
2^(f (n)) = 2^log n^2 = n^2
2^(g (n)) = 2^log n = nМы знаем, что
n^2-это не O(n)
Следовательно, 2^(f (n)) не равно O (2^g (n)))