铃、求和符号与求积符号
求和符号
求和符号长这样:∑,读做 sigma 。
这个符号由三个部分组成:a∑bc
其中 a 和 b 表示条件限制,c 表示求和的内容。
或者,如果你想要严谨的定义:
给定一个数列 {an},其中 n∈N,那么我们就可以将有限和 a1+a2+⋯+ak 写作:
i=1∑kai
若 k=0,定义该和式的值为 0。
比如 i=1∑ni2 的意思就是:对于从 1 到 n 的每个 i,算一下 i2 的值,并把它们全都加起来。
其实就是 12+22+⋯+n2,只不过把中间的 ⋯ 改成了一个简单的符号而已qwq。
用代码表示一下,就是:
int sum=0;
for(int i=1;i<=n;i++)sum+=i*i;
最后算出来的 sum 的值就是这个表达式的值。
再比如,i=1∑ni=2n(n+1),i=1∑ni3=4n2(n+1)2,i=1∑n(4i3⋅⌈in⌉+i23+i114514)=我不会算qwq。
其中条件限制不一定非要是从多少多少到多少多少这种,也可以是:
d∣n∑d2
这种就表示:对于所有满足 d∣n 的 d,算一下 d2 的值,最后加起来。
如果你并不是很熟悉求和符号,那么可以化简几个式子来熟悉一下这个小可爱:
k=1∑n(4k+7)k=1∑n(2k+k)k=1∑nk3kk=1∑nk(k+1)11≤i<j≤n∑i⋅j
求和符号嵌套
求和符号也可以嵌套,比如:
i=1∑nj=1∑maibj
就表示:
int sum=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
sum+=a[i]*b[j];
或者是:
i=1∑n(ai⋅j=1∑ij2)
就表示:
int sum=0;
for(int i=1;i<=n;i++){
int tmp=0;
for(int j=1;j<=i;j++)tmp+=j*j;
sum+=tmp;
}
当然你也可以写出更多的例子qwq。
(其实这会「求和符号」的优势就体现出来了qwq,如果把这种多重嵌套的式子用 ⋯ 写,直接就麻烦到爆炸啦>_<)
交换求和顺序
一个最常见的操作qwq。
其实就是下面四个式子的互相转化:
i=1∑nj=1∑maibj=i=1∑n(ai⋅j=1∑mbj)=j=1∑m(bj⋅i=1∑nai)=(i=1∑nai)⋅(j=1∑mbj)
本质上就是个提取公因式。
交换求和顺序是一个非常有用的操作,有时候交换完求和顺序再化简之后的式子会带来意想不到的惊喜哦qwq!
求积符号
求积符号长这样:∏ 。
求积符号和求和符号基本一样,比如 i=1∏ni=n!,i=1∏nj=1∏n(i+j)=i=1∏nii−1⋅i=n+1∏2ni2n+1−i 之类,就不多说了吧qwq。
一、多项式基本定义
多项式
(这其实是初一上学期学的东西啊.jpg)
一个关于 x 的多项式可以写作:
A(x)=i=0∑naixi
一般来说,我们认为 ai∈R。
多项式的次数被定义为多项式的最高次项的次数,记作 degA。
多项式的加减运算
设 A(x) 和 B(x) 是次数不超过 n 的多项式。
那么多项式的加减法被定义为:
A(x)±B(x)=i=0∑n(ai±bi)xi
显然,计算两个多项式的和/差是 O(n) 的,也至少是 O(n) 的。
没了?没了。
至少,目前为止,只需要用到这么多。
如果需要用到其他的定义,会在文章相应章节中补充qwq。