求一时间复杂度的证明题```

zflc107 2011-04-06 06:56:18
证明如果f(n)=O(n^k),则存在自然数l,c,满足对于所有的自然数n,有f(n)<=n^l+c

谢谢。。
...全文
143 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
飞天御剑流 2011-04-06
  • 打赏
  • 举报
回复
1楼的证明方法有问题的,按照大O的定义,f(n)=O(g(n))即f(n)<=g(n),由于f(n)=O(n^k),应为f(n)<=an^k,不能在an^k凭空加个常数b,这是不成立的,如果b小于0就有问题了。证明方法可以如下:

無_1024 2011-04-06
  • 打赏
  • 举报
回复
哎 很久不看 忘记了
GoonYangXiaofang 2011-04-06
  • 打赏
  • 举报
回复
f(n) = O(n^k)
所以 f(n) <= a * n ^ k + b (a, b 为常数)

要证存在自然数 l, c,满足 所有的自然数 n
使得:a * n ^ k + b <= n ^ l + c = n ^ l + c1 + c - c1 = n ^ l + c1 + c2 (c = c1 + c2)

即证存在自然数 l, c1, c2,满足 所有的自然数
使得:a * n ^ k <= n ^ l + c1 且 b <= c2

假设 l = k + 1
当 n < a 时,只要 c1 >= (a - n) * n ^ k, a * n ^ k <= n ^ l + c1 成立
当 n >= a 时,a * n ^ k <= n ^ l + c1 成立

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧