我有两个功能:
我必须证明f(n)= BigTheta(g(n))与否。
我的猜测是f(n)是BigTheta(g(n)),因为两个函数都是常数(这意味着函数是成比例的),但是我的老师坚持认为我错了。
我是对的吗?我有什么方法可以休息吗? 对不起,如果这听起来像一个菜鸟问题!感谢。
答案 0 :(得分:4)
你是对的。假设你引用问题是正确的并且没有误解,那么如果你的老师说他们不是每个人,那么你的老师就错了。
这是定义:
http://en.wikipedia.org/wiki/Big_O_notation#Family_of_Bachmann.E2.80.93Landau_notations
对于常量|100^10|*k1 <= |2| <= |100^2|*k2
和k1=1/100^10
,显然k2=1
(所有x大于任何合适的截止值x_cutoff
)
虽然不知道考试问题的实际文本,以及您编写(或圈选)的确切文本,但我们在互联网上无法知道对问题没有某种误读。你还应该注意,即使你的答案是对的,你的理由仍然是错的。
对于记录,不仅f(x)
集合BigTheta(g(x))
,g(x)
集合BigTheta(f(x))
。我认为一个等价的定义是这两个函数的比例被限制为x -> infinity
(接下来将维基百科的定义除以|g(x)|
以使|f(x)|/|g(x)| < constant
超过某些函数截止点),这可能是一个更容易思考的定义(并且更明显地要证明)。这也意味着BigTheta是一种对称的关系。
你现在有了合适的工具来问“为什么你认为我错了?”然后用数学来确定你们两个是对的;任何误解都应该出现在数学中,如果没有,你就会证明你的观点。
答案 1 :(得分:0)
f(n) <= g(n) * 1
2 <= 10^100 for all n >= 0
因此f(n) = O(g(n))
。
f(n) >= g(n) * 2/(10^100)
2 >= 10^100 * 2/(10^100) = 2 for all n >= 0
所以f(n) = Ω(g(n))
。
f(n)=O(g(n))
和f(n)=Ω(g(n))
都暗示f(n) = Θ(g(n))
。是的,你是对的。