2015-01-29 5 views
-4

Я должен доказать, что 92675 * 2^n = 0 (2^n) и использовать математическое определение 0 (f (n)). Я пришел к следующему ответу, не уверен, что это правильный способ приблизиться к нему.Докажите, что 928675 * 2^n = 0 (2^n) Большая сложность записи

Ответ: Поскольку 92875 является константой, мы можем заменить ее на K и F (n) = K + 2n, поэтому O (f (n) = O (K + 2n), а так как K является константой, его можно отделить от формулы, и поэтому мы остаемся с O (f (n) = O (2n)

Может кто-то пожалуйста, подтвердите если это правильно или нет заранее спасибо

Edit:? Просто понял, что я написал + вместо * и забыл пару^знаков

Ответ: Поскольку 92675 является константой, мы можем заменить ее на K и F (n) = K * 2^n, поэтому O (f (n) = O (K * 2^n), а так как K - постоянная, то она может (2)

+0

Да, вы правы. Константа «928675» не повлияет на ситуацию, когда n станет большим. – QtRoS

+0

Не могли бы вы проверить правильность ответа с помощью редактирования @QtRoS –

+0

http://stackoverflow.com/questions/28178877/big-o-algebra-simplification-issue/28180125#28180125 ** Определение/Правила ** 2. – luk32

ответ

2

Вы должны точно указать это предложение (O(f(n))=O(K*2^n)). Вы не можете использовать его, чтобы проявить себя.

Определение f(x) is O(g(x)) является то, что для некоторых постоянных действительных чисел k и x_0, |f(x)| <= |k*g(x)| для x>=x_0.

Вот почему, если f(x) = k*g(x) можно сказать, что f(x) is O(g(x)) (|k*g(x)| <= |k*g(x)| для любого x). В частности, это справедливо и для g(x)=2^x и k=928675.