Значение большого О в показателе степени - PullRequest
3 голосов
/ 26 декабря 2011

Что означает это выражение f ( n ) = 2 O ( n ) в значении, в точная формальная манера?

1 Ответ

4 голосов
/ 27 декабря 2011

Оператор f(n) = 2^O(n) эквивалентен

log_2(f(n)) = O(n)

(фактически, любой логарифм подойдет), так что это означает, что существует некоторая константа C > 0 такая, что

log_2(f(n)) <= C*n  <=> f(n) <= 2^(C*n)

для всего достаточно большого n.Теперь a b * c = (a b ) c , так что еще один способ выразить это, скажем,

f(n) = O(b^n)

длянекоторые b > 0.Это b может быть 1.5, или 4, или 1000000000000, так что это не говорит вам слишком много.Все, что он дает вам, это то, что f экспоненциально, поэтому он асимптотически лучше, чем O(n!), но он не говорит вам, довольно ли это плохо, плохо, действительно плохо или действительно катастрофически плохо.

...