Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 求解重复问题的替换法_Algorithm_Substitution_Recurrence_Induction - Fatal编程技术网

Algorithm 求解重复问题的替换法

Algorithm 求解重复问题的替换法,algorithm,substitution,recurrence,induction,Algorithm,Substitution,Recurrence,Induction,首先,很抱歉问了这么一个基本的问题 但我在理解解决复发问题的替换方法时遇到了困难。我将介绍Algo.s-CLRS。因为我找不到足够的例子,歧义是主要的问题。特别是归纳步骤。在教科书中,我们必须证明f(n)意味着f(n+1),但在CLRS中,这一步骤缺失,或者可能我没有得到例子。请逐步说明如何证明O(n^2)是递推函数T(n)=T(n-1)+n的解 我想了解的是替换法的一般步骤。如果你能对强大的数学归纳法有所了解,并提供到替代方法材料的链接,这也会很有帮助。在替代方法中,只需将T(k)的任何出现替

首先,很抱歉问了这么一个基本的问题

但我在理解解决复发问题的替换方法时遇到了困难。我将介绍Algo.s-CLRS。因为我找不到足够的例子,歧义是主要的问题。特别是归纳步骤。在教科书中,我们必须证明f(n)意味着f(n+1),但在CLRS中,这一步骤缺失,或者可能我没有得到例子。请逐步说明如何证明O(n^2)是递推函数T(n)=T(n-1)+n的解


我想了解的是替换法的一般步骤。如果你能对强大的数学归纳法有所了解,并提供到替代方法材料的链接,这也会很有帮助。

在替代方法中,只需将
T(k)
的任何出现替换为
T(k-1)+k
,然后迭代执行即可

T(n) = T(n-1) + n = 
= (T(n-2) + (n-1)) + n = 
= T(n-3) + (n-2) + (n-1) + n = 
= ...  =
= 1 + 2 + ... + n-1 +  n
从中,可以得到T(n)在
O(n^2)

请注意,替代方法通常用于获得关于复杂性的直觉,以正式证明它-您可能需要不同的工具-例如

正式的证据将是这样的:

Claim: T(n) <= n^2
Base: T(1) = 1 <= 1^2
Hypothesis: the claim is true for each `k < n` for some `n`.
T(n) = T(n-1) + n <= (hypothesis) (n-1)^2 + n = n^2-2n + 1 < n^2 (for n > 1)
索赔:T(n)