如何求解算法衍生的三重求和表达式?
没问题,咱们一步步拆解这个三重求和,搞清楚每一步的逻辑~首先明确:这里的$c$是和$i,j,k$都无关的常数(如果$c$是变量解法会不同,但从表达式来看应该是常数)。
嵌套求和的核心规则是从内到外逐层计算,就像剥洋葱一样,咱们从最内层的$k$求和开始入手。
第一步:计算最内层的$\sum_{k=1}^{n/2}c$
常数求和的本质就是「常数 × 求和的项数」。这里$k$从1到$n/2$,一共$\frac{n}{2}$个项(默认$n$是偶数,保证项数为整数;如果$n$是奇数,通常会写成$\lfloor \frac{n}{2} \rfloor$,计算逻辑一致,只是把$\frac{n}{2}$换成向下取整后的数值即可)。
所以最内层的结果是:
$$\sum_{k=1}^{n/2}c = c \times \frac{n}{2}$$
第二步:代入中间层的$\sum_{j=1}{i2}\left( c \times \frac{n}{2} \right)$
把第一步的结果代入中间层后,$c \times \frac{n}{2}$是和$j$无关的常数,同样套用「常数 × 项数」的规则。这里$j$从1到$i2$,一共$i2$个项。
中间层的结果是:
$$\sum_{j=1}{i2}\left( c \times \frac{n}{2} \right) = c \times \frac{n}{2} \times i^2$$
第三步:代入最外层的$\sum_{i=1}^{n}\left( c \times \frac{n}{2} \times i^2 \right)$
把第二步的结果代入最外层,先把和$i$无关的常数$c \times \frac{n}{2}$提取到求和符号外面,剩下的就是整数平方和的经典求和:$\sum_{i=1}{n}i2$。
我们有现成的平方和公式:
$$\sum_{i=1}{n}i2 = \frac{n(n+1)(2n+1)}{6}$$
把公式代入后,最外层的计算就是:
$$\sum_{i=1}^{n}\left( c \times \frac{n}{2} \times i^2 \right) = c \times \frac{n}{2} \times \frac{n(n+1)(2n+1)}{6}$$
第四步:合并化简得到最终结果
把上面的式子整理约分:
$$c \times \frac{n}{2} \times \frac{n(n+1)(2n+1)}{6} = c \times \frac{n^2(n+1)(2n+1)}{12}$$
所以最终的结果就是:
$$\sum_{i=1}{n}\sum_{j=1}{i2}\sum_{k=1}{n/2}c = \frac{c n^2 (n+1)(2n+1)}{12}$$
内容的提问来源于stack exchange,提问作者J. Doe

