我需要将给定的级数表达式简化为代数表达式,而无需求和。
然后我必须用大O表示法表达代数表达式的表现。
我主要对第一部分感到困惑。我不太确定如何将系列表达式解释为代数表达式。一个解释会很好!谢谢。
算法:
for ( j = 0; j < n; j++ )
{
for ( k = j; k < n; k++ )
{
}
}
will result in a number of iterations of given by the expression:
= n + (n-1) + (n-2) + (n-3) + ........ + (n - n)
答案 0 :(得分:0)
对于j=0
,有n
个k
值。
对于j=1
,有n-1
个k
值。
对于j=2
,有n-2
个k
值。
...
对于j=n-2
,有n-(n-2)
个k
值。
对于j=n-1
,有n-(n-1)
个k
值。
因此,内部循环将具有:
n + (n-1) + ... + (n-(n-2)) + (n-(n-1))
迭代。
尽管数学家使用了许多技术,但是并没有将表达式转换为封闭形式(即,转换为具有固定操作数+
的代数表达式的通用方法), -
,*
,/
(表示此数字不取决于参数n
)。
因此,您基本上必须事先了解一些知名的转换,并尽其所能将它们结合起来。
在上面的示例中,我们可以做的是将表达式重写为:
sum_{j=0}{n-1} (n - j)
然后像这样操作它:
sum_{j=0}^{n-1} (n - j) = Σ(n-j) ; 0 ≤ j ≤ n-1
= Σn - Σj ; regroup
= n*n - (n-1)n/2 ; see below
= n(n+1)/2 ; n is common factor
在这里,众所周知的公式是我用来替换Σj
的公式,您会在许多地方找到它的解释。第一次替换Σn = n*n
是微不足道的,因为我们将n
自身添加了n
次。