一、求和符号的使用
Latex中求和符号是使用$\sum$表示,它用来表示一系列数值的总和。
例如,要表示1到10的整数和:
$$\sum_{i=1}^{10}i$$
其中$\sum$表示求和,下标$i=1$表示从1开始累加的变量,上标10表示到10结束。则上式的结果为:
$$1+2+3+...+10=55$$
如果是求平方和,则可以这样表示:
$$\sum_{i=1}^{10}i^2$$
则上式的结果为:
$$1^2+2^2+3^2+...+10^2=385$$
除了使用整数作为下标外,还可以使用字母作为下标:
$$\sum_{k=1}^{n}f(k)$$
其中$f(k)$表示下标为k的项。
二、多重求和符号
当需要求解多维数组的总和时,就需要使用多重求和符号$\sum\sum$,甚至还可以使用更高维度的求和符号。
例如,一个二维数组$A_{m\times n}$,它的所有元素的和可以写成:
$$\sum_{i=1}^{m}\sum_{j=1}^{n}A_{i,j}$$
其中$i$表示行的编号,$j$表示列的编号。更高维度的求和符号也类似。
三、求和符号的属性
1、求和符号可以交换位置
对于一串求和式子,求和符号可以交换位置,例如:
$$\sum_{i=1}^{n}\sum_{j=1}^{n}a_{i,j}=\sum_{j=1}^{n}\sum_{i=1}^{n}a_{i,j}$$
上式的意思是,先按行求和再按列求和得到的结果,和先按列求和再按行求和的结果相等。
2、求和符号可以分配系数
对于一串求和式子,可以将某个常数提到求和符号外面,例如:
$$\sum_{i=1}^{n}(a_i + b_i) = \sum_{i=1}^{n}a_i + \sum_{i=1}^{n}b_i$$
上式的意思是,将$a_i$和$b_i$的和再求和,得到的结果等于先将$a_i$求和得到的结果加上$b_i$求和得到的结果。
3、求和符号可以去掉常数项
如果一串求和式子的每一项都都同加上一个常数$c$,则可以将这个常数项提到求和符号外,例如:
$$\sum_{i=1}^{n}(a_i + c) = \sum_{i=1}^{n}a_i + nc$$
上式的意思是,求和时,将$a_i$的和再加上$n$个$c$。
四、应用举例
1、利用求和符号求解逆序对问题
对于一个长度为$n$的数组$A$,逆序对指的是满足$i
使用求和符号,可以较为简洁地求解逆序对问题,代码如下:
$$\sum_{i=1}^{n-1}\sum_{j=i+1}^{n}[A_i>A_j]$$
其中$[A_i>A_j]$是一个布尔值,表示$A_i>A_j$时取值为1,否则为0。则上式的结果即为逆序对的数量。
2、离散化问题
对于一组数据,其取值分布可能较广,难以进行统计分析,甚至可能会出现“指数级图像”,无法利用数据进行计算。
离散化是一种将连续型的数据映射到有限的几个数值上的方法。其原理是先将数据排序,然后将每个数据映射到其在排好序后的顺序。
应用求和符号可以轻松地进行离散化,代码如下:
$$ans_i=\sum_{j=1}^{n}[A_j其中$[A_j
3、利用矩阵乘法实现快速矩阵求和
对于一个矩阵$A_{m\times n}$,求解其中所有元素的和可以分别对每行求和,然后再对每行的和求和,即:
$$\sum_{i=1}^{m}\sum_{j=1}^{n}A_{i,j}=\sum_{i=1}^{m}\left(\sum_{j=1}^{n}A_{i,j}\right)$$但是这个过程中,需要将每一行的元素相加。
可以利用矩阵乘法的思路,可以构造一个大小为$1\times n$的矩阵$B$,其中每个元素都是1,然后将矩阵$A$乘上矩阵$B$,得到的矩阵即为每行元素之和,最后将矩阵$B$的元素之和即为矩阵$A$的所有元素之和。
代码如下:
$$ans=\sum_{i=1}^{m}\sum_{j=1}^{n}A_{i,j}=\sum_{i=1}^{m}\left[\sum_{j=1}^{n}A_{i,j}\right]=\sum_{i=1}^{m}\left[\begin{matrix}1&1&\cdots&1\end{matrix}\begin{matrix}A_{i,1}\\A_{i,2}\\\vdots\\A_{i,n}\end{matrix}\right]=\begin{matrix}1&1&\cdots&1\end{matrix}A_{m\times n}$$其中,$A_{m\times n}$与$B_{1\times n}$相乘得到的结果是一个$1\times 1$的矩阵,即$A_{m\times n}$的所有元素之和。