
title: 关于和式的一些基础
tags:
- 数学
categories:
- 总结
mathjax: true
date: 2020-11-08 23:20:23
全文见
这里.shzaiz.github.io知乎不支持$$的TeX. 真屑.
印象中, 我对于求和记号的探索好像是一点一点摸索出来的. 也没有人教我一些和式变换的技巧. 对于我而言, 一些我本应该会的东西到现在才会.
<!--more-->
求和记号基础
印象中, 我对于求和记号的探索好像是一点一点摸索出来的. 也没有人教我一些和式变换的技巧. 对于我而言, 我认为和式对于新手而言是十分重要的. 那么今天, 总结一些和式常见的变换技巧以及相关知识点.
求和记号一般只是一个工具. 更加优秀想法就是直观理解这个求和记号表达的意思.
这是求和记号,最最基本的用法是这样子:
表示下界, 表示上界, 从开始取数, 一直取到, 全部加起来。
也就是for(int x = i; x<=n;x++) ans+=k;.
有时候这个只有下边有东西. 这样子的话, 我们需要对于所有满足条件的东西求和. 比如这个:
假设是图中的一条边.就是说对于所有的从到的边. 其中都是变量, 在后面的和式中可能会被替换. 具体是什么东西, 那就要看具体情况了.
总结:求和记号的常见两种方式是
- 表示ans值:
for(int i = k; i<=n;i++) ans+=f(i);. - 表示ans值:
for(cond(i)) ans+= f(i);.
一些基础的求和方法
上面大致笼统的说了一下求和. 看不太明白也没关系.下面我们来据一些例子加深一下理解. 这些例子不会太难, 都是文化课的例子. 先稍微感受一下.
例子0. 一些公式
公式1. .
相关证明既可以待定系数做, 也可以用立方和公式做, 也可以猜想. 在这里就不在详细说了. 相关证明方法见这里. 个人推荐证明上述方法2.
公式2.
经过上述方法的讯熏陶, 我们发现需要证明二次的东西, 需用三次的展开. 那么证明三次的, 就需要用四次的展开. 这里写出. 并且仿照刚刚的步骤. 对于上面的式子求和, 接下来可以推出:
例子1. 倒序相加法
对于这个方法, 最具有典型性的就是等差数列的求和了. 等差数列, 就是从第二项起, 每一项与它的前一项的差等于同一个常数的一种数列. 这个常数叫做等差数列的公差, 公差常用字母表示. 这个就是大家熟知的“等差数列的和=(首项+末项)×项数÷2”.
形式化的, 用刚刚的求和记号写出来就是:.
例子2. 错位相减法
对于这个方法, 最具有典型性的等比数列求和了. 通过乘上一个, 我们就可以轻松的消去中间一大堆东西. 从而得到求和公式为.
运用求和的例子
在OI中, 我们有许多地方可以用到求和和求和的性质.
前缀和
简单来说,前缀和是一个数组的某项下标之前(包括此项元素)的所有数组元素的和.形式化的说, 一维的前缀和可以这样用:

所以, 当式子中出现的时候, 就可以想到用一维的前缀和进行优化. 相比暴力每次的复杂度, 这里可以轻松的降低到.(预处理需要).
如果换做更高维度的前缀和, 比如二维前缀和, 求得一个元素的值有什么变化?
定义在可预见的范围内加了一维度.
这里的前缀和数组就相当于从到的子数组的和.
如果要求任意子矩阵的和的话, 我们可以用这个图示:

代码是b[x2][y2]+b[x1-1][y1-1]-b[x1-1][y2]-b[x2][y1-1].
差分
差分的结果反映了离散量之间的一种变化.
引入:给出n个数, 再给出Q个询问, 每个询问给出l, r, x, 要求你在l到r上每一个值都加上x, 而只给你O(n)的时间范围, 怎么办?
概念: 简而言之, 区间加变化少的是前后之间的差值. 所以我们认为.
比如我们要把第到加上一个数字, 那么就加上, 减掉. 查询的话找到前缀和就是原数列.
二维形式的差分.

如果我们从左到右, 从上到下的遍历, 当要求红色部分, (0,0)到(i,j)处的前缀和时, 我们黄色部分和蓝色部分已经是已知的了.而它们重叠的部分就是绿色部分, 所以把黄色和蓝色部分的结果加起来, 再减去绿色部分, 最后加上(i,j)处的值就是(i, j)位置的前缀和了.
因此sum[i][j]=a[i][j]+sum[i-1][j]+sum[i][j-1]-sum[i-1][j-1].

我们要求紫色部分的值,我们已知的是黄色部分的值,但它多了两个蓝色部分的值,而两个蓝色部分有重叠了个绿色部分
所以要求的区间内的值就是sum[x2][y2]-sum[x2][y1-1]-sum[x1-1][y2]+sum[x1-1][x1-1].
换一种视角看求和记号
当求和下标变得非常复杂的时候, 我们就发现以前的方法几乎没有什么方法来帮助我们. 现在, 我们来思考几种方法让我们重新看清楚一些求和公式的真面目.
视角1. 模拟出奇迹
对于一些奇怪的求和公式, 我们可以先写几项展展看. 看一下会出什么样的结果. 注意留意相同的部分.
例子1.
假设这里面有三项吧. 那就是. 思考一下暴力展开的结果. 把同类项的放在一起考虑. 可以发现, 答案就是
例子2.
下标变得复杂起来了. 不过应对这种下标, 我们可以认为这是在一个数列里面进行求和.
这是我在这个视角下的证明过程:

稍微变一下,就不难得到右侧的式子.
例子3.

这个也不难得到.
例子4.

这个可以直观理解. 拆开之后发现左边这个也可以得到.
例子5.
如果暴力拆解一下会发现, 由于对称性, 后面的式子一定是前面式子的.
例子6.
运用前缀和的思想, 可以轻松想到这个问题的答案.
视角2. 变换看的方式
(aka. 歪一歪头获得80智商)
例子7.


这个方法在用树状数组维护的时候会用到.
例子8. 给定两个长度为的数列,。共有m次询问,每次询问给出两个正整数, ,从到的区间设为 要求输出
的值.
考虑已经知道两个小区间的值. 左边区间的答案是 , 右边区间的答案是. 如何合并?
考虑一下平面上的点对. 可以发现合起来是 枚举左边的+枚举右边的+枚举跨中间的. 也就是说是这样的一个情形.

视角3. 升维打击
在这里, 我们可以把这些参量看作屏幕上的的点对.
例子9. 优化

的过程.注意多组数据,T<=300000,n<=10000000.
推导回来再放, 其中这一步就用到了刚刚说的升维打击.
本文介绍了和式的基础及其在数学中的应用,包括等差数列和等比数列的求和方法,如倒序相加法和错位相减法。此外,还探讨了前缀和、差分的概念以及在解决区间求和问题中的应用。通过不同的视角,如模拟展开、变换思考和升维打击,解析复杂的求和公式,展示了求和在解决实际问题中的智慧和灵活性。
2834

被折叠的 条评论
为什么被折叠?



