此在大多数场合下,省略低阶项和函数对表达式的值的影响将是可以忽略不计的。
T(n)=1,000,000n^2;,假定U(n)=n^3;一旦n增长到大于1,000,000,后者就会一直超越前者。
这样,大O符号就记下剩余的部分,写作:T(n)∈O(n^2)
似乎明白了......
所以那个老师的意思大概是:
f(n)=O(g(n))表示if存在适当的常数c>0和n0>0,使得f(n)<=c*g(n),f(n)>0,并且那个n充分大。n>=n0,因为f(n)大小被g(n)大小影响,所以f(n)以g(n)为上界。举个例子:2n^2=O(n^3),表示去掉左边的首项系数和低阶项,剩下的小于等于n^3。
这个符号有意思的是这个等号并不对称,上面的等号其实表示属于的意思。
f(n)属于g(n)构成的函数集,f(n)=O(g(n))没错的。
O(g(n)=f(n)是一个函数集,f(n)是函数集,没毛病。
集合内的函数被记做f(n)......O(g(n)=f(n),倒过来似乎...也没毛病。
“我觉得这个妙不可言c和n0.”
......然所以和上面同样的定义,卧槽,粗暴。0<=f(n)<=c*g(n),O(g(n))=f(n),所以意思是f(n)属于O(g(n))。
“但我们还是照样写等号,这样写没问题。但有些论文里也有∈表示等号。但我们以后还是用这个符号。”
......好的,您说的对。
这种一条道走到死的心态我很欣赏。
“我们还有一些大O符号的精妙用法。”
“......?”
等等,把它当做宏来使用????
“如果大家听不懂可以像我提问,否则我就当大家全都听得懂,然后全速前进。”
“.....?”我哪里都不太懂,但我怕我问了你会用看傻逼的眼神看我。算了,说的我似乎能提问一样。
这个老师果然很受,他还在紧张,每说话一会就要喘口气深呼吸。果然还是太年轻,没有老的从容。
“....”这人怎么内心那么活跃?
大O符号出现在等号右边:f(n)=n^3+O(n^2)这里表示了一个误差界限?大概说的是假设h(n)=O(n^2),所以f(n)=n^3+h(n),O(n^2)是低阶项,表示f(n)=n^3最多再加上h(n)这个误差,但这和宏有个毛线关系啊摔!没有实际运用例子就很懵逼。
大O符号出现在等号左边:
等号表示的不是同一个意思。
n^2+O(n)=O(n^2)表示左边所有的都是右边的。反之,就不是。是不对称的....
“以上就是大O符号,有问题吗?”
....我哪里敢有问题?