首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

若f(n) = O(n),g(n) = O(n),证明f(g(n)) = O(n)

要证明 f(g(n)) = O(n),我们需要证明存在一个正常数 c 和一个正整数 N,使得对于所有的 n>N,都有 f(g(n)) ≤ c*n 成立。

根据 f(n) = O(n) 的定义,存在正常数 c1 和正整数 N1,使得对于所有的 n>N1,都有 f(n) ≤ c1*n 成立。

同样地,根据 g(n) = O(n) 的定义,存在正常数 c2 和正整数 N2,使得对于所有的 n>N2,都有 g(n) ≤ c2*n 成立。

我们可以选择 c = c1 * c2,并且选择 N = max(N1, N2)。

对于所有的 n>N,我们有:

f(g(n)) ≤ c1 * g(n) (根据 f(n) = O(n)) ≤ c1 * (c2 * n) (根据 g(n) = O(n)) = (c1 * c2) * n = c * n

因此,我们证明了 f(g(n)) = O(n)。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 算法的时间复杂度和空间复杂度-总结[通俗易懂]

    通常,对于一个给定的算法,我们要做 两项分析。第一是从数学上证明算法的正确性,这一步主要用到形式化证明的方法及相关推理模式,如循环不变式、数学归纳法等。而在证明算法是正确的基础上,第二部就是分析算法的时间复杂度。算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否。因此,作为程序员,掌握基本的算法时间复杂度分析方法是很有必要的。 算法执行时间需通过依据该算法编制的程序在计算机上运行时所消耗的时间来度量。而度量一个程序的执行时间通常有两种方法。

    02

    USING INDUCTION TO DESIGN 使用归纳法设计算法【全文翻译】

    这篇文章在进行组合算法设计和教学过程中展示了一种基于数学归纳法的方法,尽管这种方法并不能涵盖设计算法时的所有可能方法,但它包含了大部分已知的技术方法。同时这种方法也提供了一个极好的并且也是直观的结构,从而在解释算法设计的时候显得更有深度。这种方法的核心是通过对数学定理证明过程中和设计组合算法过程中的两种智力过程进行类比。尽管我们承认这两种过程是为不同的目的服务的并且取得的是不同类型的结果,但是这两者要比看上去的更加相似。这种说法可以通过一系列的算法例子得到验证,在这些算法中都可以采用这种方法进行设计和解释。我们相信通过学习这种方法,学生能够对算法产生更多的热情,也能更深入更好的理解算法。

    02

    Iterative Shrinkage Thresholding Algorithm

    对于一个基本的线性逆问题: y = A x + w (1) {y}={A} {x}+{w}\tag{1} y=Ax+w(1) 其中 A ∈ R M × N A\in \mathbb{R}^{M\times N} A∈RM×N, y ∈ R M × 1 y\in \mathbb{R}^{M\times 1} y∈RM×1, w w w是未知噪声。(1)式可用最小二乘法来求解: x ^ L S = arg ⁡ mi ⁡ x n ∥ A x − y ∥ 2 2 (2) \hat{ {x}}_{L S}=\underset{ {x}}{\arg \operatorname{mi}} n\|{A} {x}-{y}\|_{2}^{2}\tag{2} x^LS​=xargmi​n∥Ax−y∥22​(2) 当 M = N M=N M=N 且 A A A 非奇异时,最小二乘法的解等价于 A − 1 y A^{-1}y A−1y。然而,在很多情况下, A A A 是病态的(ill-conditioned)。最小二乘是一种无偏估计方法,如果系统是病态的,则会导致其估计方差很大,因此最小二乘法不适用于求解病态方程。

    01

    梯度下降法原理与仿真分析||系列(1)

    梯度下降法(Gradient Descent)也称为最速下降法(Steepest Descent),是法国数学家奥古斯丁·路易·柯西 (Augustin Louis Cauchy) 于1847年提出来,它是最优化方法中最经典和最简单的一阶方法之一。梯度下降法由于其较低的复杂度和简单的操作而在很多领域得到广泛研究和应用,如机器学习。由梯度下降法衍生了许多其他算法,如次梯度下降法,近端梯度下降法,随机梯度下降法,回溯梯度发,动量加速梯度法等等。本文只介绍最基础的梯度下降法原理和理论分析,与此同时,通过仿真来说明梯度下降法的优势和缺陷。其他重要的梯度下降衍生方法会持续更新,敬请关注。

    02

    《斯坦福算法博弈论二十讲》学习笔记(持续更新)

    纳什均衡是否可以由一种算法或者一个策略型参与者自己很快计算出来呢?部分简单的博弈中,可以使用线性规划、迭代学习等算法求解纳什均衡。这些算法的结果使得我们相信纳什均衡对于零和博弈有很好的预测能力。 但是在非零和双人博弈中,并不存在能计算纳什均衡的快速算法。计算双人博弈的纳什均衡是一个少有的、自然的且展现出中等计算困难度的问题。 只有存在有效算法快速求解均衡,均衡对于博弈的预测能力才具有意义。博弈中也可能存在多个纳什均衡,均衡的不唯一性也削弱了均衡的预测能力。对于计算机从业者来说,严格均衡的不可计算性使得我们开始研究计算可行的均衡概念,例如相关均衡、粗糙相关均衡。

    01
    领券