f(n)/log(n) = O(g(n)) ⇒ g(n) = Θ(f(n))?
Можно ли показать, что f(n)/log(n) = O(g(n)) => g(n) = Θ(f(n))
?
Прямо сейчас я стою здесь:
f(n)/log(n) = O(g(n)) ⇒ f(n)/log(n) ≤ c₁⋅g(n) ⇒ f(n)/(c₁⋅log(n)) ≤ g(n)
g(n) = Θ(f(n)) ⇒ c₂⋅f(n) ≤ g(n) ≤ c₃⋅f(n)
Тогда я говорю: c₂ = 1/(c₁⋅log(n)) ⇒ c₂⋅f(n) ≤ g(n)
Если это правильно, как мне показать верхнюю границу?
2 ответа
Нет, это не близко к правде. Есть две проблемы. Во-первых, отношение Theta включает как верхнюю, так и нижнюю границы, но (как вы заметили) вы только предполагаете, что g дает верхнюю границу для f. Так, например, попробуйте f(n) = 0 и g(n) = n: предположение верно, но вывод неверен. Во-вторых, коэффициент log(n) не является постоянным фактором, который также помешает вам установить тесную связь между f и g; например, см. комментарий от @templatetypedef.
Как было сказано ранее, вы можете опровергнуть предположение с помощью (общего) примера:
Позволять f(n) = g(n) ⋅ log(n)
, затем f(n)/log(n) ∈ O(g(n))
держит, но очевидно g(n) ∉ Θ(f(n))
,
То, что вы можете показать, это:
f(n)/h(n) ∈ Θ(g(n)) ⇒ g(n) ∈ Θ(f(n)/h(n)) ⇒ g(n) ∈ O(f(n))