算法导论 3-4 证明与反驳

(渐进记号的性质)假设f(n)和g(n)为渐近正函数。证明或反驳下面的每个猜测。

a. f(n)=O(g(n))蕴含g(n)=O(f(n))。

b. f(n)+g(n)=θ(min(f(n), g(n))。

c. f(n)=O(g(n))蕴含lg(f(n))=O(lg(g(n))),其中对所有足够大的n,有{\color{Red} lg(g(n))\geq 1}{\color{Red} f(n)\geq 1}

d. f(n)=O(g(n))蕴含{\color{Red} 2^{f(n)}=O(2^{g(n)})}

e. f(n)={\color{Red} O((f(n))^{2})}

f. f(n)=O(g(n))蕴含g(n)=Ω(f(n))。

g. f(n)={\color{Red} \Theta (f(n/2))}

h. f(n)+o(f(n))={\color{Red} \Theta (f(n))}

 

解答:

a. f(n)=O(g(n))蕴含g(n)=O(f(n))。 错误。

举例 n = O(n^{2})n^{2}\neq O(n) 。

b. f(n)+g(n)=θ(min(f(n), g(n))。错误。

举例f(n)=ng(n)=n^{2}n+n^{2}\neq \Theta (n)

c. f(n)=O(g(n))蕴含lg(f(n))=O(lg(g(n))),其中对所有足够大的n,有lg(g(n))\geq 1f(n)\geq 1。正确。

根据O定义:

O(g(n)) = { f(n): 存在正常量c和n_{0},使得对所有n\geq n_{0},有0\leq f(n)\leq cg(n) }

由不等式f(n)\leq cg(n)可得

lg(f(n))\leq lg(cg(n))=lg(c)+lg(g(n))=O(lg(g(n)))

d. f(n)=O(g(n))蕴含2^{f(n)}=O(2^{g(n)})。正确。

根据O定义:

O(g(n)) = { f(n): 存在正常量c和n_{0},使得对所有n\geq n_{0},有0\leq f(n)\leq cg(n) }

由不等式f(n)\leq cg(n)可得

2^{f(n)}\leq 2^{cg(n)}=(2^{g(n)})^{c}

e. f(n)=O((f(n))^{2})。错误。

举反例,取f(n)=\frac{1}{n},则(f(n))^{2}=(\frac{1}{n})^{2}。已知n>0时,\frac{1}{n}>(\frac{1}{n})^{2}。所以命题e不成立。

f. f(n)=O(g(n))蕴含g(n)=Ω(f(n))。

从O的定义来分析该问题,O定义如下:

O(g(n)) = { f(n): 存在正常量c和n_{0},使得对所有n\geq n_{0},有0\leq f(n)\leq cg(n) }

Ω(g(n)) = { f(n): 存在正常量c和n_{0},使得对所有n\geq n_{0},有0\leq cg(n)\leqslant f(n) }

g. f(n)=\Theta (f(n/2))。错误。

举反例。取f(n)=2^{n},则f(n/2)=2^{n/2}=\sqrt{2^{n}}=\sqrt{f(n)},由于f(n)\neq \Theta (\sqrt{f(n)}),所以命题不成立。

h. f(n)+o(f(n))=\Theta (f(n))。正确。

 

 

根据o的定义,我们可以得到

存在正常量c和n_{0},使得对于所有n\geq n_{0},有f(n)+o(f(n))\leq f(n)+cf(n)=(1+c)f(n)

另外,由于o(f(n))\geq 0,可得f(n)+o(f(n))\geq 0 。

因此我们可以得到

f(n)\leq f(n)+o(f(n))\leq (1+c)f(n),因此符合θ函数的定义。故命题成立。

 

 

 

 

 

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值