我有两个函数:F 1 (n)= 2n + 20和F 2 (n)= n + 1。我必须证明哪一个更好。
我们的讲师解决了类似的问题。鉴于F 1 (n)= n 2 且F 2 (n)= 2n + 20,他做了:
F 2 (n)/ F 1 (n)=(2 / n)+(20 / n 2 )
他说它总是不到22,因此2n + 20更好。
我的疑问是如何解决这些功能之间的比较。我已经完成了之前在这里提出的所有问题并且没有完全理解它。
如果给出( 2 + bn + c)= O(n 2 ),请帮助选择常数c 1 , c 2 ,n 0 ,以便
c 1 g(n)≤f(n)≤c 2 g(n)。
答案 0 :(得分:0)
如其中一条评论所述,首先需要定义更好的复杂性。
当且仅当C(n)
(或使用Landau符号K(n)
)时,您的讲师可能意味着复杂性C(n) << K(n)
更好而不是C(n) = o(K(n))
为n -> +Inf
。
如果您想比较两个复杂性F1(n)
和F2(n)
,一种方法是检查商F2(n)/F1(n)
是否收敛,如果是,则收敛到哪个值。 F2(n) ~ n
和F1(n) ~ n^2
时,F2(n)/F1(n)
会向0
收敛,因此F1(n)
会向F2(n)
主导无穷大。根据之前采用的语言惯例,你会说F1(n)
更好。
请注意,“ it(F2(n)/F1(n)
)总是小于22,并告知2n + 20更好” <渐近分析的正确方法如果是统治关系(o(.)
或同等地<<
)(我怀疑你的讲师是否对上面定义的F1(n)
和F2(n)
说了。)。
在上一个问题中 - 您能否定义f(n)
和g(n)
?