计算下列程序中x=x+1的语句频度
for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
for(k=1;k<=j;k++)
x=x+1;
【解答】x=x+1的语句频度为:
T(n)=1+(1+2)+(1+2+3)+……+(1+2+……+n)=n(n+1)(n+2)/6
证明步骤:
先看S(n)=1+2+3+……+n=n(n+1)/2=(n^2)/2+n/2
现在就是求S(1)+S(2)+S(3)+……+S(n)
则原式=(1^2+2^2+3^3+……+n^2)/2+(1+2+3+……+n)/2
∵1^2+2^2+3^2+……+n^2=n(n+1)(2n+1)/6
1+2+3+……+n=n(n+1)/2
两者相加为上答案 n(n+1)(n+2)/6
常识标注:
证明:1^2+2^2+3^2+4^2+.......n^2=?
解:利用恒等式(n+1)^3=n^3+3n^2+3n+1,可以得到:
(n+1)^3-n^3=3n^2+3n+1,
n^3-(n-1)^3=3(n-1)^2+3(n-1)+1
..............................
3^3-2^3=3*(2^2)+3*2+1
2^3-1^3=3*(1^2)+3*1+1.
把这n个等式两端分别相加,得:
(n+1)^3-1=3(1^2+2^2+3^2+....+n^2)+3(1+2+3+...+n)+n,
由于1+2+3+...+n=(n+1)n/2,
代人上式得:
n^3+3n^2+3n=3(1^2+2^2+3^2+....+n^2)+3(n+1)n/2+n
整理后得:
1^2+2^2+3^2+....+n^2=n(n+1)(2n+1)/6
******************************************************************************//分割线
1^3+2^3+******+n^3=n^2(n+1)^2/4
类似的利用恒等式
(n+1)^4=n^4+4n^3+6n^2+4n+1
得
(n+1)^4-n^4=4n^3+6n^2+4n+1
n^4-(n-1)^4=4(n-1)^3+6(n-1)^2+4(n-1)+1
...........
2^4-1^4=4+6+4+1
n个等式两边相加得
(n+1)^-1^4=4(1^3+2^3+ ....+n^3)+6*(1^2+2^2+ ....+n^2)+4(1+2+3+...+n)+n
代入1^2+2^2+3^2+....+n^2=n(n+1)(2n+1)/6 及1+2+3+...+n=(n+1)n/2
整理得
4(1^3+2^3+ ....+n^3)=(n+1)^4-1-n(n+1)(2n+1)-2n(n+1)-n
4(1^3+2^3+ ....+n^3)=n^4+4n^3+6n^2+4n+1-1-2n^3-3n^2-n-2n^2-2n-n
4(1^3+2^3+ ....+n^3)=n^4+2n^3+n^2
(1^3+2^3+ ....+n^3)=n^2(n^2+2n+1)/4
=n^2(n+1)^2/4