从 0 开始的数学

并非从 0 开始,但反正我是从来没有好好学过蓝书数学这章。
主要最近碰到太多数学题了,不得不恶补一下。

更好的阅读体验

质数

  1. 不超过 N 的质数个数大约为 NlnN
  2. 线性筛法,每次用最小的质因子筛质数,可以用来 O(n) 快速筛诸如欧拉函数、因子个数等。
  3. N=p1c1...pkck

P3383, UVA10140, P10495

约数

  1. N 的正约数集合:{p1b1...pkbk},其中 0bici
  2. N 的正约数个数:i=1k(ci+1)
  3. N 的正约数和:i=1k(j=0ci(pi)j)
  4. int 范围内约数个数最多的数有 1600 个约数

最大公约数

  1. a,bN, 有 ab,gcd(a,b)=gcd(b,ab)=gcd(a,ab)
  2. a,bN, 有 gcd(2a,2b)=2gcd(a,b)
  3. a,bN,b0, 有 gcd(a,b)=gcd(b,amodb)

积性函数

  1. a,b 互质时,有 f(ab)=f(a)×f(b),则称 f 为积性函数
  2. f 是积性函数,且 n=i=1kpici,则 f(n)=i=1kf(pici)

互质与欧拉函数

  1. a,bN,若 gca(a,b)=1,则 a,b 互质

  2. φ(N)=Np|N(11p),证明参考容斥原理

  3. n>11n 中与 n 互质的数的和为 n×φ(n)÷2

  4. a,b 互质,则 φ(a,b)=φ(a)φ(b),即 φ 为积性函数

  5. p 为质数,若 p|np2|n,则 φ(n)=φ(np)×p

  6. p 为质数,若 p|np2n,则 φ(n)=φ(np)×(p1)

  7. d|nφ(d)=n

证明(7):令 f(n)=d|nφ(d),设 n,m 互质,则 f(nm)=d|nmφ(d)=d|nφ(d)×d|mφ(d)=f(n)×f(m)

​ 又 f(pk)=d|pkφ(d)=φ(1)+φ(p)+...+φ(pk)=1+p1+p2p+...+pkpk1=pk

f(n)=i=1kf(pici)=i=1kpici=n

P1463,P2261,P1072,P2158

同余

  1. 对于 a[0,m1],集合 a+km(kZ) 的所有数模 m 同余,该集合称为一个模 m同余类,记为 a¯
  2. m 的同余类共有 m 个,分别为 0¯,1¯,...m1¯,它们构成 m完全剩余系
  3. 1m 中与 m 互质的数共有 φ(m) 个,它们构成 m简化剩余系
  4. 简化剩余系关于模 m 乘法封闭(乘法封闭即 a,bSabS)。

欧拉定理

  1. 若正整数 a,n 互质,则 aφ(n)1(modn)

证明:设 n 的简化剩余系为 {a1¯,a2¯,...,aφ(n)¯},对于 ai,aj,若 a×aia×aj(modn),则可推出 aiaj(modn),矛盾。

​ 所以,当 aiaj 时,aai¯aaj¯ 代表不同的同余类。

​ 根据上文所述的乘法封闭,aai¯ 也在简化剩余系中,所以 {aa1¯,aa2¯,...,aaφ(n)¯} 也是 n 的简化剩余系。

​ 注意到 aφ(n)n 互质,所以 :

aφ(n)a1a2...aφ(n)(aa1)(aa2)...(aaφ(n))a1a2...aφ(n)(modn)

​ 因为 a1a2...aφ(n)n 互质,所以 aφ(n)1(modn)

  1. 由欧拉定理引申出费马小定理:对于任意正整数 a,p 互质且 p 为质数,则 ap11(modp)

证明:由欧拉定理得 aφ(p)1(modp),又因为 p 为质数,所以 φ(p)=p1,所以 ap11(modp)

  1. 费马小定理也可以写成:对于任意整数 a,若 p 是质数,有 apa(modp)
  2. 欧拉定理的推论:若正整数 a,n 互质,则对于任意正整数 b,有 ababmodφ(n)(modn)

证明:设 b=q×φ(n)+r,其中 0r<φ(n),即 r=bmodφ(n)

​ 那么 ab=aq×φ(n)+r=(aφ(n))q×ar1q×ararabmodφ(n)(modn)

  1. 由欧拉定理的推论,对于乘方算式,可以将底数对 p 取模,指数对 φ(p) 取模
  2. a,n 不一定互质且 b>φ(n) 时,有 ababmodφ(n)+φ(n)(modn),可以通过寻找 ab(modn) 的指数循环节来证明。

拓展欧几里得

  1. 裴蜀定理(Bézout 定理):对于 a,bZ,存在一对整数 x,y,满足 ax+by=gcd(a,b)

证明:当 b=0 时,显然有 x=1,y=0

​ 当 b>0 时,有 gcd(a,b)=gcd(b,amodb)。存在 x,yZ 使得 b×x+(amodb)×y=gcd(b,amodb)

​ 变型得,ay+b(xaby),令 x=y,y=xaby,可得 ax+by=gcd(b,amodb)=gcd(a,b)

​ 对欧几里得算法的过程采用数学归纳法即可证明裴蜀定理。

  1. dgcd(a,b),根据上述过程可以求出 ax+by=d 的一组特解 x0,y0

  2. 对于方程 ax+by=c,它有解的充要条件是 d|c,满足该条件则原方程的一组特解为 cdx0,cdy0

  3. 由于 a(x+kbd)+b(ykad)=ax+by,所以 ax+by=c 的通解可表示为:

    x=cdx0+kbd,y=cdy0kad(kZ)

线性同余方程

长相类似 a×xb(modm),其等价于 a×xbmy 倍,于是可以得到 ax+ym=b

根据拓展欧几里得,该方程有解当且仅当 gcd(a,m)|b,有解时直接拓展欧几里得做即可。

乘法逆元

若整数 b,m 互质,且 b|a,则存在整数 x 满足 a÷ba×x(modm)x 即为 b 的模 m 乘法逆元,记为 b1(modm)

可以用费马小定理证明 x=bm2,可以用于解决除法取模。

中国剩余定理

m1,m2,...,mn两两互质的整数,m=i=1nmiMi=m÷mitiMiti1(modmi) 的一个解。对于任意 n 个整数 a1,a2,...,an 组成的方程组:

{xa1(modm1)xa2(modm2)xan(modmn)

有整数解 x=i=1naiMiti

拓展中国剩余定理

m1,m2,...,mn 不两两互质时,便无法使用中国剩余定理,好在我们可以借助数学归纳法求解。

设已经求出前 k1 个方程的一个解 x,记 m=lcm(m1,m2,,mk1),则前 k1 个方程的通解为 x+im(iZ)

那么对于第 k 个方程,我们求出整数 t 使得 x+tmak(modmk),变形得 tmakx(modmk),可以使用拓展欧几里得求解。

求解出 t 后,则 x=x+tm 为前 k 个方程的通解,一直做到第 n 个方程即可。

高次同余方程

喵?

P10496,P1082,P4777

矩阵乘法

  1. 对于 n×m 矩阵 A,BC=A±Bi[1,n],j[1,m],Ci,j=Ai,j±Bi,j,即对应位置相加减
  2. 对于 n×m 矩阵 Am×p 矩阵 BC=A×Bn×p 矩阵,其中 i[1,n],j[1,p],有 Ci,j=k=1mAi,k×Bk,j
  3. 矩阵乘法满足结合律,分配律,但不满足交换律
  4. 矩阵乘法加速递推问题的特点:
    · 可以抽象出一个长度为 n 的向量,该向量在每个单位时间发生一次变化
    · 变化的形式为线性递推
    · 该递推式在每个时间本身保持不变
    · 向量变化时间很长,但向量长度 n 不大
  5. 对于矩阵乘法加速递推问题,若状态矩阵中的第 x 个数对下个状态的 y 产生影响,则把转移矩阵的 (x,y) 赋值为适当的系数
  6. 矩阵乘法加速递推的时间复杂度是 O(n3logT)

P1939,P10498

posted @   比翼の鼠  阅读(16)  评论(0编辑  收藏  举报
//雪花飘落效果
评论
收藏
关注
推荐
深色
回顶
收起
点击右上角即可分享
微信分享提示