大问题

时间:2011-05-30 19:35:50

标签: big-theta

我有两个功能:

  • f(n)= 2;
  • g(n)= 10 ^ 100;

我必须证明f(n)= BigTheta(g(n))与否。

我的猜测是f(n)是BigTheta(g(n)),因为两个函数都是常数(这意味着函数是成比例的),但是我的老师坚持认为我错了。

我是对的吗?我有什么方法可以休息吗? 对不起,如果这听起来像一个菜鸟问题!感谢。

2 个答案:

答案 0 :(得分:4)

你是对的。假设你引用问题是正确的并且没有误解,那么如果你的老师说他们不是每个人,那么你的老师就错了。

这是定义:

http://en.wikipedia.org/wiki/Big_O_notation#Family_of_Bachmann.E2.80.93Landau_notations

对于常量|100^10|*k1 <= |2| <= |100^2|*k2k1=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))。是的,你是对的。