我现在正在学习算法课程,所以我可以回答其中一些问题,我可以在回家查看笔记时回答其余的问题。
例如我有一个声明:n^2logn = O(n^2)。如果我错了,请纠正我,但这表明 n^2 是 n^2logn 的 bigO。这意味着 n^2 的增长速度比 n^2logn 快。
你是对的。
现在我们将如何证明这一点?我假设我需要使用我曾尝试使用但陷入过程中的归纳证明。我可以将此语句重写为 n^2logn <= n^2 吗?
是否可以使用归纳法来反驳某些东西?例如,反证 n!=O(n^n)。或者通过简单地证明任意值可以说大于 2 不满足该陈述来反驳该陈述是否有效?
我会在几个小时内回复你。
最后为了清楚起见,bigTheta 指出方程在正确增长时是等价的?
这意味着它们仅相差一个常数。换句话说,如果你将它乘以一个常数,它总是低于它所绑定的函数,如果你将它乘以另一个常数,它总是高于它所绑定的函数。
编辑:
要测试大 O,您需要在数学上证明表示算法增长的函数小于或等于常数乘以大 O 函数。
Big Omega 显示算法大于或等于 big Omega 函数。
Big Theta 可以通过两种方式证明:
证明大 O 和大 Omega。
假设算法为 f(n),大 Theta 函数为 g(n)。为了证明大 theta,您必须证明当 n 接近无穷大时 f(n)/g(n) 的极限是某个常数,即它既不是 0 也不是无穷大。
我希望这会有所帮助。如果您有更多问题,请告诉我,我很乐意为您提供帮助。