关于大证明的问题

时间:2011-04-19 10:39:59

标签: algorithm big-o

我有以下问题:

以下陈述是真还是假?

所有记录到基础2

log2n是O(log(n))

的成员

我的尝试:

  • log2n - clogn< = 0
  • log2 + logn - clogn< = 0
  • 1 + logn(1-c)< = 0

现在纠正我,如果我错了,但我必须找到n(变量)和c(常数)的值,这些值要么证明也要反驳......

通常这似乎是真的:

选择

n0 = 2, c = 3 -> TRUE 
n1 = 3, c = 3 -> TRUE 
n2 = 4, c = 3 -> TRUE

因此,该陈述似乎是正确的,logn随着n的增加而增加。但也有上述陈述永远不会成立的价值观:

e.g。

无论n的值是否增加,选择c = 1的计算结果都大于零。

所以我对这是真是假感到困惑....

1 个答案:

答案 0 :(得分:2)

您可以使用以下事实:产品的对数是因子的对数之和:

log(2n) = log(2)+log(n) = O(log(n))