和式整理

一、和式的基本概念

∑ k ∈ K c a k = c ∑ k ∈ K a k ( 分 配 律 ) \sum_{k \in K} ca_k = c \sum_{k \in K} a_k (分配律) kKcak=ckKak()

∑ k ∈ K ( a k + b k ) = ∑ k ∈ K a k + ∑ k ∈ K b k ( 结 合 律 ) \sum_{k \in K} (a_k + b_k) = \sum_{k \in K} a_k + \sum_{k \in K} b_k (结合律) kK(ak+bk)=kKak+kKbk()

∑ k ∈ K a k = ∑ p ( k ) ∈ K a p ( k ) ( 交 换 律 ) \sum_{k \in K} a_k = \sum_{p(k) \in K} a_{p(k)} (交换律) kKak=p(k)Kap(k)()

二、扰动法

​ 把某一项分出去或者加一项的运算叫扰动法,如果后面的和式可以构成用 s n s_n sn 表示的形式,就可以简化和式,利用扰动法,我们常常可以用封闭形式来计算一个和式。
对 于 s n = ∑ 0 ≤ k ≤ n a k 对于s_n = \sum_{0 \leq k \leq n} a_k sn=0knak
利用扰动法可以写成:

s n + a n + 1 = ∑ 0 ≤ k ≤ n + 1 a k = a 0 + ∑ 1 ≤ k ≤ n + 1 a k = a 0 + ∑ 1 ≤ k + 1 ≤ n + 1 a k + 1 = a 0 + ∑ 0 ≤ k ≤ n a k + 1 s_n + a_{n+1} = \sum_{0 \leq k \leq n + 1} a_k \\ = a_0 + \sum_{1 \leq k \leq n + 1} a_k \\ = a_0 + \sum_{1 \leq k + 1 \leq n + 1} a_{k + 1} \\ = a_0 + \sum_{0 \leq k \leq n} a_{k + 1} sn+an+1=0kn+1ak=a0+1kn+1ak=a0+1k+1n+1ak+1=a0+0knak+1
现在我们可以对最后的那个和式进行处理,并尝试用sn将它表示出来。如果取得成功,我们就得到一个方程,它的解就是我们所求的和式。

例如,用这个方法可以求一般的几何级数的和
s n = ∑ 0 ≤ k ≤ n a x k s_n = \sum_{0 \leq k \leq n} ax^{k} sn=0knaxk
利用扰动法可以写成
s n + a x x + 1 = a x 0 + ∑ 0 ≤ k ≤ n a x k + 1 = a x 0 + x ∗ s n s_n + ax^{x + 1} = ax^0 + \sum_{0 \leq k \leq n} ax^{k + 1} \\=ax^0 + x*s_n sn+axx+1=ax0+0knaxk+1=ax0+xsn

由这个可以得到
s n = a − a x n + 1 1 − x , x ≠ 1 s_n = \frac{a - ax^{n + 1}}{1 - x}, x \neq 1 sn=1xaaxn+1,x=1
三、多重和式
∑ j ∑ k 表 示 先 对 k 求 和 再 对 j 求 和 \sum_{j}\sum_{k}表示先对k求和再对j求和 jkkj

∑ 1 ≤ j , k ≤ n a j b k = ∑ 1 ≤ j ≤ n a j ∑ 1 ≤ k ≤ n b k = ∑ 1 ≤ k ≤ n b k ∑ 1 ≤ j ≤ n a j \sum_{1 \leq j,k \leq n}a_jb_k = \sum_{1 \leq j \leq n} a_j \sum_{1 \leq k \leq n} b_k = \sum_{1 \leq k \leq n} b_k \sum_{1 \leq j \leq n} a_j 1j,knajbk=1jnaj1knbk=1knbk1jnaj

​ 艾弗森约定 :[条件] ,满足条件为 1 1 1,否则为 0 0 0

​ 在和式计算中有时需要用艾弗森约定将和式的下标转换成另外一种比较简单计算的形式

​ 下面给出几个比较简单的转换区间
[ 1 ≤ j , k ≤ n ] = [ 1 ≤ j ≤ n ] [ 1 ≤ k ≤ n ] [1 \leq j,k \leq n] = [1 \leq j \leq n][1 \leq k \leq n] [1j,kn]=[1jn][1kn]

[ 1 ≤ j ≤ n ] [ j ≤ k ≤ n ] = [ 1 ≤ j ≤ k ≤ n ] = [ 1 ≤ k ≤ n ] [ 1 ≤ j ≤ k ] [1 \leq j \leq n][j \leq k \leq n] = [1 \leq j \leq k \leq n] = [1 \leq k \leq n] [1 \leq j \leq k] [1jn][jkn]=[1jkn]=[1kn][1jk]

比如利用上面的,下面的和式就可以写成:
∑ j = 1 n ∑ k = j n a j , k = ∑ 1 ≤ j ≤ k ≤ n a j , k = ∑ k = 1 n ∑ j = 1 k a j , k \sum_{j = 1}^{n}\sum_{k = j}^{n} a_{j, k} = \sum_{1 \leq j \leq k \leq n} a_{j, k} = \sum_{k = 1} ^ n \sum_{j = 1} ^ k a_{j, k} j=1nk=jnaj,k=1jknaj,k=k=1nj=1kaj,k

举个例子,例如 n 2 n^2 n2个乘积 a j a k a_ja_k ajak 组成的阵列
[ a 1 a 1 a 1 a 2 a 1 a 3 . . . a 1 a n a 2 a 1 a 2 a 2 a 2 a 3 . . . a 2 a n a 3 a 1 a 3 a 2 a 3 a 3 . . . a 3 a n ⋮ ⋮ ⋮ ⋱ ⋮ a n a 1 a n a 2 a n a 3 . . . a n a n ] (3) \left[ \begin{matrix} a_1a_1 & a_1a_2 & a_1a_3 & ... & a_1a_n \\ a_2a_1 & a_2a_2 & a_2a_3 & ... & a_2a_n \\ a_3a_1 & a_3a_2 & a_3a_3 & ... & a_3a_n \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ a_na_1 & a_na_2 & a_na_3 & ... & a_na_n \end{matrix} \right] \tag{3} a1a1a2a1a3a1ana1a1a2a2a2a3a2ana2a1a3a2a3a3a3ana3............a1ana2ana3ananan(3)
比如我们对主对角线以及主对角线的上边部分求和
可 以 令 s = ∑ 1 ≤ j ≤ k ≤ n a j a k 可以令s = \sum_{1 \leq j \leq k \leq n} a_ja_k s=1jknajak
可以知道上半部分值的和下半部分值的和其实是一样的, 所以
s = ∑ 1 ≤ j ≤ k ≤ n a j a k = ∑ 1 ≤ k ≤ j ≤ n a k a j s = \sum_{1 \leq j \leq k \leq n} a_ja_k = \sum_{1 \leq k \leq j \leq n} a_ka_j s=1jknajak=1kjnakaj
你会发现这两个和式子除了 k k k j j j 调换,其他的没有任何区别

又因为
[ 1 ≤ j ≤ k ≤ n ] + [ 1 ≤ k ≤ j ≤ n ] = [ 1 ≤ j , k ≤ n ] + [ 1 ≤ j = k ≤ n ] [1 \leq j \leq k \leq n] + [1 \leq k \leq j \leq n] =[1 \leq j, k \leq n] + [1 \leq j = k \leq n] [1jkn]+[1kjn]=[1j,kn]+[1j=kn]
所以
2 s = ∑ 1 ≤ j , k ≤ n a j a k + ∑ 1 ≤ j = k ≤ n a j a k = ( ∑ j = 1 n a j ) ( ∑ k = 1 n a k ) + ∑ 1 ≤ j = k ≤ n a j a k = ( ∑ j = 1 n a j ) 2 + ∑ j = 1 n a k 2 2s = \sum_{1 \leq j, k \leq n} a_ja_k + \sum_{1 \leq j = k \leq n} a_ja_k \\=(\sum_{j = 1}^na_j)(\sum_{k = 1}^na_k) + \sum_{1 \leq j = k \leq n} a_ja_k \\=(\sum_{j = 1}^na_j)^2 + \sum_{j = 1}^na_k^2 2s=1j,knajak+1j=knajak=(j=1naj)(k=1nak)+1j=knajak=(j=1naj)2+j=1nak2
你会发现后面两个一个是 1 − n 1-n 1n 的和,一个是 1 − n 1-n 1n 的平方和,可以直接得到答案,会使得运算的时间复杂度降低很多

而且除 2 2 2 就可以得到 s s s 的答案

然后自己可以尝试下面的和式
s = ∑ 1 ≤ j < k ≤ n ( a k − a j ) ( b k − b j ) s = \sum_{1 \leq j < k \leq n} (a_k - a_j)(b_k - b_j) s=1j<kn(akaj)(bkbj)
最后应该可以划成
s = n ∑ 1 ≤ k ≤ n a k b k − ( ∑ k = 1 n a k ) ( ∑ k = 1 n b k ) s = n\sum_{1 \leq k \leq n} a_kb_k - (\sum_{k = 1}^na_k)(\sum_{k = 1}^nb_k) s=n1knakbk(k=1nak)(k=1nbk)
这样就可以从两层 for 循环得到答案变成一层

同时还有一个概念

用 Hn 表示 1 + 1 2 + 1 3 + . . . + 1 n 1 + {1\over 2} + {1\over 3} +... + {1\over n} 1+21+31+...+n1 的值,有
∑ 0 ≤ k < n H k = n H k − n \sum_{0 \leq k < n} H_k = nH_k - n 0k<nHk=nHkn

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值