技术问询:是否所有函数在渐近分析中都属于ω(0)?
关于ω(0)的技术判定
先明确小欧米伽(ω)记号的严格数学定义:
对于非负函数f(n)和g(n),f(n) ∈ ω(g(n)) 的充要条件是:
对任意常数c > 0,总能找到一个正整数N,当n > N时,f(n) > c·g(n)
针对g(n)=0的情况,分两种函数类型讨论:
- 若f(n)是恒为0的函数:
不管c取多大的正数,c·0始终是0,而f(n)=0永远满足不了f(n) > 0的要求,所以这个函数不属于ω(0)。 - 若f(n)是不恒为0的非负函数(也就是存在某个n使得f(n)>0,且所有n处f(n)≥0,这也是绝大多数我们讨论的运行时间函数的特征):
对任意c>0,c·0=0,只要取N足够大,让n>N时f(n)保持大于0(常规渐近函数都满足这个特性),就能满足f(n) > 0的条件,所以这类函数属于ω(0)。
需要说明的是,渐近记号在实际算法分析里,默认g(n)是不恒为0的函数,因为g(n)=0时完全提供不了任何有用的渐近信息,这也是你查不到相关讨论的原因——它没有实际分析价值。
结论:不是所有函数都属于ω(0),只有不恒为0的非负函数满足,恒为0的函数不满足。
内容的提问来源于stack exchange,提问作者Vricken
相关产品推荐
相关产品推荐

