我理解大哦和theta。问题如下, 证明或反证:如果h(n)是递增函数,则f(n)= theta(g(n)=> h(f(n))= O(h(g(n)))h(n1)当n1> n2时,> h(n2)
所以,在上面的问题中,我被困在了解增加功能的点上。如果我试图找到一些功能来反驳它,比如说,n和2n这是可以接受的吗?因为大哦代表快速增长,而不仅仅是一个常数因素,但没有定义h(n)函数的这种条件(我的意思是,我认为>字面意义上大于这里,是错误的吗?)
另外,即使我发现h(f(n))之类的东西以与h(g(n))相同的速率增长,这意味着它们本质上是theta,它们仍然是大的哦。因为theta的松散束缚很大哦,在这种情况下,我永远不能反驳上述陈述。
如果我的理解在通过序列的某个时刻偏离,请纠正我。谢谢!
答案 0 :(得分:0)
我总是通过重新阅读然后写下Theta(f)和O(f)的定义来开始这样的问题。如果你能找到一个反驳断言的简单例子,你就不必证明什么。我喜欢非常快速增长的h(x)的想法,例如h(x)= 2 ^ x。如果你有例如f(x)= 2x,g(x)= x,h(f(x))= 2 ^(2x),h(g(x))= 2 ^ x和h(f(x))/ h( g(x))= 2 ^ x - 尝试将这些插入到您的定义中,看看会发生什么。请注意,由于f(x)= 2g(x),至少按照我的定义,你有f(x)= Theta(g(x))和g(x)= Theta(f(x))
答案 1 :(得分:0)
通过采用满足给定f(n) = 2n
的{{1}}和g(n) = n
,我找到了一个解决此问题的矛盾示例。
现在,让f(n) = theta(g(n))
,这意味着h(x) = 2^x
和h(f(n)) = 2^2n = 4^n
。
根据定义,这意味着h(g(n)) = 2^n
。因此反驳了。
我从来不知道矛盾的例子足以反驳。我正在尝试一种更正式的方式来证明它并且弄乱了细节。
感谢。