我试图向我的朋友解释为什么 7n - 2 = O(N)。我想根据big O的定义这样做。
根据大O的定义, f(n)= O(g(n))如果:
我们可以找到实数值 C 和整数值 n0> = 1 ,以便:
在这种情况下,以下说明是否正确?
7n - 2< = C 。 Ñ
-2< = C 。 n - 7n
-2< = n( C - 7)
-2 /( C - 7)< = n
如果我们在数学上考虑 C = 7 , -2 /( C - 7 )等于负无穷大,所以
这意味着对于 n> =(负无穷大)的所有值,以下成立:
现在我们必须选择 n0 ,这样对于所有 n&gt; = n0 和 n0&gt; = 1 ,以下内容成立:< / p>
因为对于 n&gt; =(负无穷大)的所有值,不等式成立,我们可以简单地取 n0 = 1 。
答案 0 :(得分:1)
你在这里走在正确的轨道上。但是,从根本上说,你使用的逻辑不起作用。如果你试图证明存在n 0 和c使得所有n≥n 0 的f(n)≤cg(n),那么你可以'首先假设f(n)≤cg(n),因为这最终是你要证明的!
相反,看看你是否可以从初始表达式(7n - 2)开始并将其按到cn上限的东西。这是一种方法:从7n - 2≤7n开始,我们可以(通过检查)选择n 0 = 0和c = 7来查看所有n≥n的7n - 2≤cn <子> 0 子>
对于一个更有趣的案例,让我们试试7n + 2:
7n + 2
≤7n+ 2n(对于所有n≥1)
= 9n
因此通过检查,我们可以选择c = 9和n 0 = 1,并且对于所有n≥n 0 我们有7n +2≤cn,所以7n + 2 = O(n)。
请注意,在这个数学中没有任何一点我们假设最终的不等式,这意味着我们永远不必冒着被零除错误的风险。