算法导论 第三章 函数的增长,3.1练习个人解答(Sor)

原创 2015年11月20日 20:36:56

3.1-1 假设f(n)与g(n)都是渐近非负函数。使用Θ

记号的基本定义来证明max(f(n),g(n)) = Θ(f(n)+g(n))。

证:不妨假设max(f(n),g(n)) = f(n),则0 ≤ g(n)/f(n) ≤ 1

设有正常量c1,c2,n0,使得所有对n ≥ n0, 有

0 ≤ c1*f(n) ≤ f(n) + g(n) ≤ c2*f(n)

 

解得 c1 ≤ 1 + g(n)/f(n), c2 ≥ 1 + g(n)/f(n)

可取 c1 = 1, c2 = 2 , 此时 n0 ≥ 1 即可

 

3.1-2 证明: 对于任意实常量a和b,其中b>0,有(n+a)^b = Θ(n^b)

证:(n+a)^b的最高次数项为 n^b,根据直觉可得出结论,下面给出具体过程

a,b为任意实常量,设f(n) = (n+a)^b

设有正常量c1,c2,n0,使得所有对n ≥ n0,有

0 ≤ c1*f(n) ≤ n^b ≤ c2*f(n),

c1 ≤ [n/(n+a)]^b, c2 ≥ [n/(n+a)]^b

可取c1 = [1/(1+a)]^b, c2 = 2, n0 ≥ 1即成立

 

3.1-3 解释为什么“算法A的运行时间至少是O(n^2)”这一表述是无意义的

自己想不太清楚,网上大家解释也欠妥,下面的话都是根据算法导论教师手册上来的:

假设运行时间为T(n),

T(n) ≥ O(n^2) 意味着 对于某个f(n) = O(n^2)有

T(n) ≥ f(n)。然而因为g(n) = 0 ∈ O(n^2),这意味着

T(n) ≥ 0, 但是运行时间总是非负的,所以这句话并没有告诉我们有用的信息。(英语不好,献丑了)

 

3.1-4 2^(n+1) = O(2^n) 成立吗? 2^2n = O(2^n)成立吗?

要使2^(n+1) = O(2^n)成立,我们需要找到正常量 c,n0,使得0 ≤ 2^(n+1) ≤ c*2^n,这非常容易,我们取c = 2,n0 ≥1即可。

所以前者成立。

 

要使2^2n = O(2^n)成立,同理,假设有正常量c,n0

使得 0 ≤ 2^2n ≤ c*2^n

=> 2^n ≤ c

不可能找到这样的c,所以后者不成立

 

3.1-5 证明定理3.1

 

证:

充分性

f(n) = Θ(g(n)),意味存在正常量c1,c2,n0,使得对所有n ≥ n0有

0 ≤ c1f(n) ≤ g(n) ≤ c2f(n)

读者可以轻易地分离出

0 ≤ c1f(n) ≤ g(n),即f(n) = O(n)

0 ≤ g(n) ≤ c2f(n) , 即f(n) = Ω(n)

充分性成立;

必要性:

与充分性证明类似,此处不再赘述

 

3.1-6 证明:一个算法的运行时间为Θ(g(n))当且仅当其最坏的运行时间为O(g(n)),且其最好情况为Ω(g(n))

Θ符号渐近给出一个算法运行时间的上下界,而O,Ω都是渐近的给出上界和下界,个人感觉是定理3.1的阐述,所以不赘述了。

 

3.1-7 证明:o(g(n)) ∩ ω(g(n)) 为 ∅

一个不严谨的证明如下:

f(n) = o(g(n)) 类似于  {x|x < b}

f(n) = ω(g(n)) 类似于 {x|x > b}

o(g(n)) ∩ ω(g(n))类似于{x|x>b 且 x < b} = ∅

 

3.1-8可以将我们的表示法扩展到有两个参数n和m的情形,其中n和m的值可以以不同的速率,互相独立地趋于无穷。对给定的函数g(n,m),O(g(n,m))为函数集

O(g(n,m))={ f(n,m): 存在正整数c,n0和m0,使对所有n>=n0或m>=m0,有0<=f(n,m)<=cg(n,m) }。

给出对应的Ω(g(n,m))和Θ(g(n,m))的定义。

想想还是略吧。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Introduction to Algorithms 算法导论 第3章 函数的增长 学习笔记及习题解答

3.1 渐近记号 表示算法的渐近运行时间的记号是用定义域为自然数集N = {0, 1, 2, ...}的函数来定义的。这些记号用来表示最坏情况运行时间T(n)。 Θ记号     Θ(g(n)...
  • cppgp
  • cppgp
  • 2012-01-05 17:51
  • 1899

算法导论(第三版) 第三章思考题

http://www.cnblogs.com/Jiajun/archive/2013/05/06/3063574.html 3-1 a. P(n)=∑i=0daini=n...

《算法导论》系列课后思考题之-第三章《函数的增长》(上)

练习 3.1-1 设f(n)与g(n)都是渐进非负函数。利用Θ记号的基本定义来证明max(f(n), g(n)) =Θ(f(n) + g(n))。 证明:    若证明成立,则存在n>=n0,...

第三章 函数的增长 3.1 渐进记号

3.1-1 假设f(n)与g(n)都是渐进非负函数。使用θ记号的基本定义来证明max(f(n),g(n))=θ(f(n)+g(n))。解:c1(f(n)+g(n))<max(f(n),g(n))<c2...

算法导论(第三版) 第三章练习题

http://www.cnblogs.com/Jiajun/archive/2013/05/06/3063574.html 3.1-1 分情况讨论 当f(n)≥g(n)时,max...

算法导论 第三章 函数的增长 3.2习题个人解答

3.2-1 证明:若f(n)和g(n)是单调递增的函数,则f(n)+g(n)也是单调递增的,此外,若f(n)和g(n)是非负的,则f(n)*g(n)也是单调递增的.   证: 1.取任意实数m>n,总...

算法导论课后习题解析 第三章

算法导论课后习题解析 第三章 3.1-1 分情况讨论 当f(n)≥g(n)f(n)≥g(n)时,max(f(n),g(n))=f(n)max(f(n),g(n))=f(n),存在...

算法导论 第三章 函数的增长

渐近记号 (1)渐近上界记号O(大写O) 含义:渐近地给出了一个函数在常量因子内的上界: O(g(n))={f(n):存在正常量c和n0,使得对所有n>=n0,有0<=f(n)<=cg(n)}...

算法导论_第三章_函数的增长

函数的增长 1.渐进记号 Θ 定义: 对于一个给定的函数g() 用Θ(g(n))来表示以下函数的集合 Θ(g(n))={f(n):存在正常量c1、c2和N,使得对所有的n>=N,有0 注:这里我们通常...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)