2016-04-06 3 views
-1

Я могу это доказать, но я понятия не понимаю, почему 3^n находится в O (10^n). Я ошибаюсь?Big-Oh: Является ли f (n) = 3^n в O (g (n)) = 10^n?

+0

'3^n' находится в' O (10^n) ', потому что он не растет асимптотически быстрее, чем' 10^n'. Конечно, это не слишком сложно. '3^n' также находится в' O (3^n) ', что является плотной границей. – Paulpro

+0

'h (n) = 1' и' i (n) = n' также оба находятся в 'O (10^n)' – Paulpro

ответ

0

Концептуально, чем больше основание экспонента, тем быстрее рост функции.

Big-O дает нам верхнюю границу; то есть заданы две функции f(n) и g(n), если для всех значений n выше определенного порогового значения (за исключением некоторых мелких деталей, таких как константное кратное), g(n) доминирует над f(n), то можно сказать, что f(n) = O(g(n)).

Теперь, для любого n >= 0, должно быть ясно, что 10^n по крайней мере невелик (но большую часть времени намного больше), чем 3^n.

Обратите внимание, что это не особенно полезно сказать, что 3^n = O(10^n). Это не связано с какими-либо средствами; темпы роста этих двух функций резко различаются. Более эффективная граница для 3^n сама по себе —, то есть 3^n = O(3^n).

+0

Да, это именно то, что я понял, потому что граница не является «жесткой», I запутался, если он вообще считался o (g (n))! Я просто хотел подтвердить, что все равно будет правильным, даже если это не полезно. – TimelordViktorious

+0

Да, это действительно правильно, но не полезно. Мы могли бы также сказать, что «1 = O (10^n)». Хотя это верно, это действительно не полезно; функция порядка 1 имеет постоянную рабочую среду, а функция порядка '10^n' имеет экспоненциально худшее время исполнения. – Purag

+1

@ MH1993 Обратите внимание, что вы должны быть осторожны при написании с помощью 'o' (little-oh) vs' O' (big-oh). Они означают две разные вещи: 'o' означает, что определенная граница не является жесткой,' O' означает, что она может быть или не быть. '' '' '' '' '' '' '<='. – Paulpro

Смежные вопросы