证明大 O 符号语句

Proving big O notation statement

好吧,我有点新,我的数学证明知识和实践是新手,这并不多,因为我只花了几周时间学习算法和设计论文,并且有点学习挑战。我正在努力解决几个实验室问题,我希望如果有人能帮助我解决这个问题,我会建立一点动力并能够在我自己的努力下回答更难的问题。

我有一个定义:令f,g为函数。如果存在 c, n0 > 0 使得对于所有 n > n0, f(n) ≤ c · g(n), 那么 f(n) 是 O(g(n))

必须使用定义来证明这一点。

对于每个函数 f : N→N, f(n) 是 O(f(n)).

现在首先我很困惑,因为 g(n) 不在这个问题中,但它在较难的问题中,所以我知道这不是打字错误。我在想它是相同的功能所以它不应该是大的吗?我很迷茫。另外,如何将其作为证明对我来说也很神秘。我可以这样做作为直接证明吗?

非常感谢任何帮助。

也许您对以下事实感到困惑:您要证明的陈述仅使用一个函数,即f,而您引用的定义涉及两个不同的函数。

话虽如此,您要证明的陈述是从 NN 的每个函数都不会渐近地增长 快于自身 ,这并不奇怪。对于正式证明,让 f : N -> N 成为这样一个函数。

c := 1n0 := 0;设 n 为满足 n > n0 的整数。然后我们得到

f(n) = 1 * f(n) = c * f (n) <= c * f (n)

根据定义,这意味着 f in O(f),这是要证明的陈述。

这是直接证明,通过从定义中显式选择cn0,并证明它们满足定义中的条件。

因为这显然是一道作业题,我想它只是作为一个例子来介绍正式定义以及如何使用它,而不是因为陈述本身很有趣。