【问题标题】:How to find constants c1, c2 and n0 in a theta proof?如何在 theta 证明中找到常数 c1、c2 和 n0?
【发布时间】:2014-03-19 23:05:09
【问题描述】:

假设我想知道一个函数是否是 theta 组 n^3 的一部分。 经过一些代数步骤后,我设法得到以下函数:

c1 <= 4 / n - 4/n^2.5 + 4/n^4 <= c2

在那一步我应该找到常量n0c1c2。我是谁 ask 告诉我我应该猜出它们,而不需要对零点进行精确分析。

但是我怎么能猜到它们呢?您将如何以结构化的方式查找这些常量,当 处理像上面这样的复杂功能?

编辑

如果函数已经包含一个上限,那么很容易找到一个上限,例如

c1 <= 10 - 1/n^2 <= c2

在这种情况下,上限 c2 将是 10。 但是这种情况下c1n0怎么处理呢?

【问题讨论】:

    标签: performance algorithm optimization big-o complexity-theory


    【解决方案1】:

    对于大-theta 证明,您不需要可能的最佳常数。你可以做出“荒谬”的选择,比如 c1 = 0.001 和 c2 = 1000 和 n0 = 1000000,只要你能完成证明,一切都会好起来的。 (我的一位教授喜欢在讲课时这样做。)

    如果出于某种原因您想要紧常数,那么您需要学习如何在一个区间内最小化/最大化函数。微积分在这里很有用。请注意,可以在例如 c1 的紧度和 n0 的紧度之间进行权衡。在您的第二个示例中,由于 1/n^2 正在减少,我们需要 c1

    【讨论】:

      猜你喜欢
      • 2022-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-11
      • 2012-06-18
      相关资源
      最近更新 更多