Позвольте мне лучше объяснить мой комментарий к ответу @ btilly.
Когда g(n)>0
для всех значений n
, оба определения фактически эквивалентны. Вот почему:
Во-первых, всегда верно, что когда выполняется определение 2, определение 1 также выполняется. На самом деле, мы можем выбрать N=0
в этом случае.
Предположим теперь, что определение 1 выполнено для некоторой константы c
и некоторого числа N
. Если N=0
, у нас есть Определение 2. Если N>0
, рассмотрим следующее количество:
c1 := max{f(1)/g(1), ..., f(N)/g(N)}
коэффициенты имеют смысл, потому что мы находимся в случае, когда g(n)
всегда положительно. Кроме того, с
f(n)/g(n) <= c1 (1<=n<=N)
получаем
f(n) <= c1*g(n) (1<=n<=N)
и поскольку f(n) <= c*g(n)
для n>N
, бывает, что
f(n) <= max(c1,c)*g(n) for all n
как требует определение 2.