Сравнение сложностей
У меня есть три вопроса для обзора экзамена:
- Если
f(n) = 2n - 3
дать две разные функцииg(n)
а такжеh(n)
(такg(n)
не равноh(n)
) такой чтоf(n) = O(g(n))
а такжеf(n) = O(h(n))
- Теперь сделайте то же самое снова с функциями
g'(n)
а такжеh'(n)
, но на этот раз функция должна иметь видg'(n) = Ɵ(f(n))
а такжеf(n) = o(h'(n))
- Это возможно для функции
f(n) = O(g(n))
а такжеf(n) = Ω(g(n))
?
Я знаю, что функция O(n)
другого, если он меньше или равен другой функции. Поэтому я думаю, что 1. может быть g(n) = 2n²-3
а также h(n) = 2n²-10
,
Я также знаю, что функция Ɵ(n)
другой, если она в основном равна другой функции (мы можем игнорировать константы), и o(n)
если это только меньше, чем функция, поэтому для 2. Я думаю, что вы могли бы иметь g'(n) = 2n-15
а также h'(n) = 2n
,
К 3.: Функция может быть одновременно O(n)
а также Ω(n)
так как O(n)
а также Ω(n)
позволяет функции быть такой же, как данная функция, так что вы можете иметь функцию g(n)
это равно f(n)
и удовлетворяет правилам как O
а также Ω
,
Может кто-нибудь сказать мне, если это правильно?
1 ответ
Ваши ответы в основном правильные. Но я хотел бы добавить несколько моментов:
Дано f(n) = 2n - 3
С
g(n) = 2n²-3
а такжеh(n) = 2n²-10
f(n)
вO(g(n))
И вO(h(n))
, Но ваши g (n) и h (n) в основном одинаковы, по крайней мере, они оба вΘ(n²)
, Существует много других функций, которые также будут работать. Напримерf(n) ∈ O(n) ⇒ g(n) = n
f(n) ∈ O(nk) ⇒ g(n) = nk ∀ k ≥ 1
f(n) ∈ O(2ⁿ) ⇒ g(n) = 2ⁿ
g'(n) = 2n-15
сводится кg'(n) = n
, если мы думаем в сложностях, и это правильно. На самом деле, это единственный возможный ответ.
Ноf(n) ∈ o(h'(n))
не держится заh'(n) = 2n
, Little-o означает, чтоlimn → ∞ | f (n) / g (n) | = 0 ⇔ f (n) ∈ o (g (n))
Так что вы можете выбрать
h'(n) = n²
или более общийh'(n) = nk ∀ k > 1
или жеh'(n) = cⁿ
для постоянногоc > 1
,- Да, это возможно, и вы можете принять это также в качестве определения для
Θ(g(n))
:f (n) ∈ Θ (g (n)) ⇔f (n) ∈ O (g (n)) и f(n) ∈ Ω(g(n))