Algorithm 当证明大O、大ω和大θ时,我们如何识别C和n0?

Algorithm 当证明大O、大ω和大θ时,我们如何识别C和n0?,algorithm,big-o,bounds,Algorithm,Big O,Bounds,就像问题所说的,对于给定的界,我们如何精确地找到c和n0 例如,当我不得不解决这个问题时。。。 证明5n^2+2n+1=O(n^2) 我能够看到2n并说“这永远不会大于2n^2”,对于1,我也能够说“这永远不会大于n^2”。 考虑到这一点,我可以选择C=8和n0=1 然而,当我遇到一个问题,比如。。 用大O符号的基本定义证明n^3=O(2^n) 我完全不知道该做什么,因为我唯一要处理的就是n^3。如何识别这些类型问题的C和n0 您需要在每个特定情况下找到一个参数,没有算法可以找到证明 在你的例子

就像问题所说的,对于给定的界,我们如何精确地找到c和n0

例如,当我不得不解决这个问题时。。。 证明5n^2+2n+1=O(n^2)

我能够看到2n并说“这永远不会大于2n^2”,对于1,我也能够说“这永远不会大于n^2”。 考虑到这一点,我可以选择C=8和n0=1

然而,当我遇到一个问题,比如。。 用大O符号的基本定义证明n^3=O(2^n)


我完全不知道该做什么,因为我唯一要处理的就是n^3。如何识别这些类型问题的C和n0

您需要在每个特定情况下找到一个参数,没有算法可以找到证明

在你的例子中,我们可以使用n^3在o(2^n)中是偶数,这显然意味着它在o(2^n)中。要看前者,考虑n->无穷大(n ^ 3/2 ^ n)的极限。
使用三次,你会发现极限为0。

我认为我们有一个纯算法问题的堆栈。你不需要找到C和n0,你只需要找到有效的。对于显式表达式,没有
n0
,只有递归关系。要加上这个答案,一旦你看到极限值趋向于0,你就可以求解这两个函数的截距,并将其用作n0c=1和n0=0。在这种情况下,你可以将C设置为1(但任何大于0的都可以)。对于C=1,n0需要更大:例如,n0=10可以工作。10^3 = 1000 < 2^10 = 1024. 但找到一个特定的值并不是很重要。限制为0的事实保证了n0的存在(这是我们需要知道的全部)。我明白了,我现在有了更好的理解,谢谢!