大 O 符号 g(n) ∈ O(f(n)) =⇒ (g(n))^2 ∈ O((f(n))^2)

时间:2021-07-27 12:06:35

标签: big-o

我的问题是,这是真的吗。

g(n) ∈ O(f(n)) =⇒ (g(n))^2 ∈ O((f(n))^2)

从长远来看它应该是正确的,但我有一个例子 (log n )^ 2 仍然在或小于 O(sqrt n)

有没有办法在没有图表的情况下证明这一点。

THX

1 个答案:

答案 0 :(得分:3)

很直观的是,如果一个函数 g 的速度小于或等于另一个函数 f,则 g 的平方小于或等于 {{ 的平方1}}。

正式:

  • 声明 #1f 意味着,对于常数 g(n) ∈ O(f(n)) 的至少一个选择,您可以找到一个常数 k > 0,使得不等式 a 对所有 0 ≤ g(n) ≤ k f(n) 成立。
  • 声明#2n > a 意味着,对于常数 g(n)^2 ∈ O(f(n)^2) 的至少一个选择,您可以找到一个常数 k > 0,使得不等式 a 对所有 0 ≤ g(n)^2 ≤ k f(n)^2 成立。

既然我们想证明 n > a 蕴涵 g(n) ∈ O(f(n)),我们想从语句 #1 开始到达语句 #2。

让我们取两个常量 g(n)^2 ∈ O(f(n)^2)k,使得语句 #1 得到满足。

首先,请注意:

  • a 对所有 0 ≤ k f(n) 成立(来自假设);
  • n > a 对所有 0 ≤ f(n) 保持(自 n > a 起)。 [结果 #1]

还要注意:

  • k > 0 对所有 g(n) ≤ k f(n) 成立(来自假设);
  • n > a 对所有 g(n)^2 ≤ (k f(n))^2 成立(因为,根据假设和结果 #1,n > ag(n) 对于所有 f(n) 都是非负的,所以我们可以保留 n > a 符号);
  • 对所有 g(n)^2 ≤ k^2 f(n)^2 保持。 [结果 #2]

从结果 #1 和 #2 来看,语句 #2 得到满足。

Q.E.D.