写点什么

文心一言 VS chatgpt (11)-- 算法导论 2.3 7 题 3.1 4~5 题

  • 2023-04-18
    北京
  • 本文字数:872 字

    阅读完需:约 3 分钟

四、2 ^ (n+1)=O(2 ^ n)成立吗? 2^(2n)=O(2 ^ n)成立吗?

文心一言:



chatgpt:


第一个式子不成立,第二个式子成立。


  1. 2 ^ (n+1) = O(2 ^ n)


该式不成立。按照大 O 符号的定义,如果存在正常数 c 和 n0,使得 n>n0 时,2^(n+1)<=c*2^n,则该式成立。但实际上,没有任何正常数 c 和 n0 满足该条件。因为当 n 趋近无穷大时,2^(n+1)与 2^n 的比值趋近于 2,即 2^(n+1) = 2 * 2^n。这与大 O 符号的定义矛盾。


  1. 2 ^ (2n) = O(2 ^ n)


该式成立。按照大 O 符号的定义,如果存在正常数 c 和 n0,使得 n>n0 时,2^(2n)<=c*2^n,则该式成立。此时可以取 c=1,n0=1。因为当 n 趋近无穷大时,2^(2n)与 2^n 的比值趋近于无穷小,即 2^(2n) = (2^n)^2。这也符合大 O 符号的定义。


综上所述,第一个式子不成立,第二个式子成立。



文心一言和 chatgpt 的结果都是错误的。实际上是第一个式子成立,第二个式子不成立。

五、证明定理 3.1。定理 3.1 是:对任意两个函数 f(n)和 g(n),我们有 f(n)=θ(g(n)),当且仅当 f(n)=O(g(n)且 f(n)=Ω(g(n))。

文心一言:



chatgpt:


定理 3.1 的证明可以分为两个部分:充分性和必要性。


首先证明充分性,即如果 f(n)=O(g(n))且 f(n)=Ω(g(n)),则有 f(n)=θ(g(n))。根据大 O 符号的定义,存在正数 c 和 n0,使得当 n≥n0 时,有 f(n)≤c*g(n)。同样地,根据Ω符号的定义,存在正数 c'和 n0',使得当 n≥n0'时,有 f(n)≥c'*g(n)。因此,当 n≥max(n0,n0')时,我们有:


c'g(n) ≤ f(n) ≤ cg(n)


这表明 f(n)和 g(n)之间的比值是有界的,即存在正常数 c1 和 c2,使得 c1g(n)≤f(n)≤c2g(n),因此 f(n)=θ(g(n))。


接下来证明必要性,即如果 f(n)=θ(g(n)),则有 f(n)=O(g(n))且 f(n)=Ω(g(n))。根据大 O 符号的定义,存在正数 c1 和 n1,使得当 n≥n1 时,有 f(n)≤c1g(n)。根据θ符号的定义,还存在另外一对正数 c2 和 n2,使得当 n≥n2 时,有 f(n)≥c2g(n)。因此,当 n≥max(n1,n2)时,我们有:


c2g(n) ≤ f(n) ≤ c1g(n)


这表明 f(n)和 g(n)之间的比值是有界的,即存在正常数 c 和 n0,使得当 n≥n0 时,有 f(n)≤c*g(n),因此 f(n)=O(g(n))。同样地,我们也可以找到一对正数 c'和 n0',使得当 n≥n0'时,有 f(n)≥c'*g(n),因此 f(n)=Ω(g(n))。


因此,定理 3.1 得证。



真正证明如下:



发布于: 刚刚阅读数: 5
用户头像

还未添加个人签名 2021-02-15 加入

还未添加个人简介

评论

发布
暂无评论
文心一言 VS chatgpt (11)-- 算法导论2.3 7题 3.1 4~5题_福大大_福大大架构师每日一题_InfoQ写作社区