如何证明n² ∈ O(n³)?Big O符号求证疑问
嘿,很高兴你已经搞定了3n² + 4 ∈ O(n²)这类证明,其实n² ∈ O(n³)的证明流程和你熟悉的完全是一个路子——核心都是死死扣住大O的正式定义来走。我给你一步步拆解清楚:
第一步:先锚定大O的严格定义
咱们先把定义摆出来,避免走偏:
对于两个非负函数
f(n)和g(n),如果存在正的常数C和非负整数n₀,使得对于所有的n ≥ n₀,都满足f(n) ≤ C * g(n),那么我们就说f(n) ∈ O(g(n))。
这个定义是所有大O证明的核心,不管函数形式怎么变,都得围着它转。
第二步:代入目标函数,转化成不等式问题
我们要证明的是 n² ∈ O(n³),对应定义里的:
f(n) = n²(我们要分析的函数)g(n) = n³(作为参照的高阶函数)
所以现在的问题就变成:找一组符合要求的C>0和n₀≥0,让当n ≥ n₀时,n² ≤ C * n³恒成立。
第三步:化简不等式,找合适的常数
咱们对不等式做个简单变形(注意n是正整数,n≥1时n²是正数,两边除以它不等号方向不变):n² ≤ C * n³ → 两边除以n²得到:1 ≤ C * n
现在问题就简化多了:只要找到C和n₀,让n ≥ n₀时C*n ≥1就行。这里选常数非常灵活,举两个例子:
- 选
C=1:那不等式变成n ≥1,所以取n₀=1。这时候只要n≥1,1*n ≥1,也就是n² ≤1*n³(因为n³ =n*n²,n≥1时nn²≥1n²),完全成立。 - 选
C=0.5:不等式变成0.5n ≥1→n≥2,取n₀=2。当n≥2时,0.5n≥1,所以n² ≤0.5n³也成立。
第四步:验证一下,确保没毛病
拿C=1、n₀=1来验证几个值:
- n=1时:
n²=1,1*n³=1,1≤1成立; - n=5时:
n²=25,1*n³=125,25≤125成立; - n=100时:
n²=10000,1*n³=1000000,10000≤1000000显然成立。
和你之前证明的对比
其实和你搞定3n²+4 ∈ O(n²)的逻辑完全一致:
- 先明确大O的核心定义;
- 代入函数转化为不等式问题;
- 化简不等式,找到符合要求的C和n₀;
- 验证不等式在n≥n₀时恒成立。
唯一的区别是,之前的例子是“带低次项的同阶函数”证明属于同阶大O,而这次是“低阶函数”证明属于高阶函数的大O,但本质都是利用「当n足够大时,高阶项的增长会完全覆盖低阶项」这个特性,只不过这次的项的大小对比更直接而已。
内容的提问来源于stack exchange,提问作者dcboy
相关产品推荐
相关产品推荐

