Как правильно найти порядок роста для этой функции?

StackOverflow https://stackoverflow.com/questions/1417152

  •  06-07-2019
  •  | 
  •  

Вопрос

2 ^ n + 6n ^ 2 + 3n

Я полагаю, что это просто O (2 ^ n), используя член высшего порядка, но каков формальный подход к доказательству этого?

Это было полезно?

Решение

Вы можете доказать, что 2 ^ n + n ^ 2 + n = O (2 ^ n) , используя пределы на бесконечности. В частности, f (n) равно O (g (n)) , если lim (n- > inf.) F (n) / g (n) конечно.

lim (n->inf.) ((2^n + n^2 + n) / 2^n)

Поскольку у вас есть inf / inf, неопределенная форма , вы можете использовать правило L'Hopital и различайте числитель и знаменатель, пока не получите что-то Вы можете работать с:

lim (n->inf.) ((ln(2)*2^n + 2n + 1) / (ln(2)*2^n))
lim (n->inf.) ((ln(2)*ln(2)*2^n + 2) / (ln(2)*ln(2)*2^n))
lim (n->inf.) ((ln(2)*ln(2)*ln(2)*2^n) / (ln(2)*ln(2)*ln(2)*2^n))

Ограничение равно 1, поэтому 2 ^ n + n ^ 2 + n действительно O (2 ^ n) .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top