求证:若f(n)=Ο(g(n))且d(n)=Ο(h(n)),则f(n)+d(n)=O(g(n)+h(n))
没问题,我来帮你把这个证明补全,完全基于大O的正式定义,用常数法推导,绝对够严谨:
首先,先明确大O符号的正式定义:
对于函数f(n)和g(n),如果存在正常数C和n₀,使得对于所有的n ≥ n₀,都有 |f(n)| ≤ C·|g(n)|,那么我们就说f(n) ∈ Ο(g(n))。
接下来,根据已知条件展开:
- 因为f(n) ∈ Ο(g(n)),所以根据定义,存在正常数C₁和n₀₁,当n ≥ n₀₁时,|f(n)| ≤ C₁·|g(n)|;
- 同理,d(n) ∈ Ο(h(n)),所以存在正常数C₂和n₀₂,当n ≥ n₀₂时,|d(n)| ≤ C₂·|h(n)|。
现在我们要证明f(n)+d(n) ∈ Ο(g(n)+h(n)),也就是要找到对应的正常数C和n₀,满足大O的定义。
步骤1:利用三角不等式,对于任意n,有:|f(n) + d(n)| ≤ |f(n)| + |d(n)|
步骤2:取n₀ = max(n₀₁, n₀₂),这样当n ≥ n₀时,上面两个关于f(n)和d(n)的不等式同时成立,代入上式可得:|f(n) + d(n)| ≤ C₁·|g(n)| + C₂·|h(n)|
步骤3:构造常数C = max(C₁, C₂),因为C₁ ≤ C,C₂ ≤ C,所以:C₁·|g(n)| ≤ C·|g(n)|,C₂·|h(n)| ≤ C·|h(n)|
把这两个代入步骤2的式子,得到:|f(n) + d(n)| ≤ C·|g(n)| + C·|h(n)| = C·(|g(n)| + |h(n)|)
到这里我们就找到了符合要求的C和n₀:
- C = max(C₁, C₂)(正常数)
- n₀ = max(n₀₁, n₀₂)(足够大的n的下界)
满足当n ≥ n₀时,|f(n)+d(n)| ≤ C·(|g(n)| + |h(n)|),完全符合大O的定义,所以f(n)+d(n) ∈ Ο(g(n)+h(n))。
你之前推导的O(g(n))+O(h(n))=O(g(n)+h(n))其实是这个结论的一种简洁表述,但上面的过程把它拆解成了最基础的定义推导,用了常数构造的方法,完全符合要求,没有依赖举例。
内容的提问来源于stack exchange,提问作者user6512212

