Re: [问题] 几题BigO证明还有观念疑问

楼主: micklin (mick doohan)   2010-10-05 19:51:08
※ 引述《Lizstlin (Lizst)》之铭言:
: (因为是第一次在这边PO文, 不大确定能否问这样的问题, 如果不行就麻烦版主删了,
: 不好意思喔 ^^")
: 因为老师上课没讲什么证明范例, 书上也写得少
: 自己找题目写遇到不少瓶颈, 我知道基本观念是
: f(n) = O(n) iff there exist positive constants c and n0 s.t
: f(n) <= c*g(n) for all n which n >= n0
: 那个c 在证明过程中可以随便假设吗?
: 因为总觉得要有一定范围才可以, 像下面的证明我设1就不知道怎么继续下去
: 证明题如下:
: show that n! = O(n^n)
: show that n^(2^n) + 6*2(^n) = θ(2^(2^n))
: show that n^2 * logn = θ(n^2) is incorrect
: 希望有大大不吝指教, 大致上提点我该如何下手, 谢谢 (拜)
: 如果不懂我再来问各位大大 ^^"
: 方才自己试了一下第一题, 不知道这样对不对?
: n! <= c*(n^n)
: 移项得 c* n[n^(n-1) - (n-1)!] >= 0
: 由 [n^(n-1) - (n-1)!] 得 n >= 1, 而 c >= 1
: 所以 n! = O(n^n) for all n which n>=1, and c>=1
: 这样的感觉还是很像c 还有 n0 是推敲出来的 ~"~
n!可以用 Stirling's approximation 来证,
(http://zh.wikipedia.org/zh-tw/%E6%96%AF%E7%89%B9%E9%9D%88%E5%85%AC%E5%BC%8F)
根号里的值大于零, 后面是n^n.
c在过程中不是用假设的,
那句 “s.t f(n)<=c*g(n)”的意思是“使得 f(n)<=c*g(n)成立”
所以只要能找到一个c可以让f(n)<=c*g(n)就可以了, 不是要算出c的最小值什么的.
用你的证明来看, 先证明 n! <=c*(n^n) 是蛮奇怪的....
如果题目是 n!=O(?), 那你不就从n^n^n^n^n开始试到n^n?
作者: Lizstlin (Lizst)   0000-00-00 00:00:00
那么请问除了 Stirling's approximation还有其他方法吗? 因为那个我还没学到~"~ 谢谢^^
作者: manlike ( )   0000-00-00 00:00:00
所以他用计算的方式找到n0和c 错了吗? = ="第一题考试写根据Stirling's Approximation 得f(n)=O(n^2)更正f(n!)=O(n^2), 会得分吗? 杀鸡用牛刀... = ="喔不对~ n! = O(n^2) ...= =""
作者: Lizstlin (Lizst)   0000-00-00 00:00:00
我今天去问助教, 他说OK另外就是 n0 跟 c 只要 >=1 基本上都行不过不是直接设, 是推算出来就是了 ^^"感谢板上大大们不吝指教 ^^

Links booklink

Contact Us: admin [ a t ] ucptt.com