o(1)代表什么?
我试图实现二次筛,我注意到我需要选择一个平滑边界B来使用这个算法。 我在网上发现B也代表exp((1/2 + o(1))(log n log log n)^(1/2)),但现在我的问题是o(1)。 你能告诉我o(1)代表什么?
让我们从你的答案开始:
f(n)为o(1)的定义是limn→∞f(n)= 0。 这意味着对于所有ε> 0,存在Nε,取决于ε,使得对于所有n≥Nε,我们有| f(n)|≤ε。
或者用简单的英语:
符号o(1)表示“收敛到0的函数”。
这是一个很好的资源:http://bigocheatsheet.com
查看渐近增长部分的符号
答案也可以在这个重复的帖子中找到:Big-O和Little-O Notation之间的区别
本质上,f∈O(g)表示
对于常数k> 0的至少一个选择,可以找到一个常数a,使得所有x> a的不等式f(x)<kg(x)成立。
请注意,O(g)是此条件成立的所有函数的集合。
基本上,f∈o(g)表示
对于常数k> 0的每一个选择,可以找到一个常数a,使得所有x> a的不等式f(x)<kg(x)成立。
O(1)表示需要一定的时间,不受输入大小的影响。 o(1)(略有不同!)表示它所表示的函数收敛于0.我不会过多担心平滑边界,首先使用非常简单的平滑公式编写其他更复杂的算法。 (前100,000个素数或前n个素数,其中n = c * log(数字))一旦算法的其余部分工作(也许优化了?),那么仔细选择平滑边界实际上会产生显着效果。 你在这个问题中给出的那个冗长复杂的公式是二次筛选算法本身的近似(渐近)运行时间,我很确定它与选择平滑边界无关。
链接地址: http://www.djcxy.com/p/39889.html上一篇: What does o(1) stand for?
下一篇: o notation example