一、 组合数
C(m,n)表示m个中选n个的方案数
C(m,n)=m!n!(m−n)!
1、 和杨辉三角的关系
C(i,0)=C(i,i)=1
C(i,j)=C(i−1,j−1)+C(i−1,j)
这就是杨辉三角:
0 1 2 3 4
0|1
1|1 1
2|1 2 1
3|1 3 3 1
4|1 4 6 4 1
……
二、 逆元
对于a和模数p,若
ax≡1(modp)
,则x是a的逆元。
有什么用?当你要除以a时,你可以用乘x代替。因为除法不能直接进行模运算。
举个例子:
a=2 p=7
则x=4
当我们要算6/2 mod 7
时,可以用6*4 mod 7
来代替。
1、 快速幂求逆元
有一个奇怪的公式:
aφ(p)≡1(modp)
变形得:
a∗aφ(p)−1≡1(modp)
所以 aφ(p)−1 即a的逆元。
当p为质数时,φ(p)=p-1。模数常常是质数。所以 ap−2 就是a的逆元(重复一遍,p为质数时!)
三、 矩阵
加减不说,对应的加在一起好了。
1、 矩阵乘法
一张好图,在这里发现的,方便理解矩阵乘法。(这张图是从0开始的,我们习惯从1开始)
一个
m∗n
的的A矩阵,和一个
n∗p
的B矩阵相乘,将得到一个
m∗p
的矩阵C
C(i,j)=∑k=1pA(i,k)∗B(k,j)
可以简单地理解为,A中i行的元素,与B中j列的元素,对应相乘得到的和。