What comes after, tiny fra|

落花月朦胧

园龄:3年6个月粉丝:14关注:10

从头开始学数论(2)

从头开始学数论(2)

前置芝士

欧拉函数

欧拉函数相关

积性函数

对于互质的 a,b 和一个函数, 如果有 f(a×b)=f(a)×f(b) 就称这个函数是一个积性函数

完全积性函数

对于任意的 a,b 和一个函数, 如果有 f(a×b)=f(a)×f(b) 就称这个函数是一个完全积性函数

常见函数

  1. ϵ(x)={1x=10x1 ,它是完全积性函数。
  2. Idk(x)=xk ,它是完全积性函数( k 省略时默认为 1 )。
  3. σk(x)=d|ndk ,它是积性函数( k 省略时默认为 1 )。
  4. μ(x)={1x=1(1)kx=ki=1pi (pi)0otherwise

从Dirichlet卷积到莫比乌斯函数

Dirichlet卷积

定义

定义 2 个数论函数 f,p,如果有 h(x)=d|xf(d)p(xd),就称函数 h 是函数 f 和函数 p 的卷积,记为 h=fp。可以读作 fp
这里的 "" 是卷积的符号。

卷积也可以这样表示 h(n)=(fg)(n)=xy=nf(x)p(y)

性质

  1. 交换律: fp=pf

证明:

fp=d|nf(d)p(nd)=d|nf(nd)p(d)=pf

  1. 结合律: (fp)h=f(ph)

证明:
((fp)h)(a)=x×y×z=a(f(x)×p(y))×h(z)=x×y×z=af(x)×(p(y)×h(z))=((fp)h)(a)

  1. 分配律: f(x+p)=fx+fp

证明

显然

  1. ϵf=fϵ=f

证明:

显然

  1. 如果 fg 都是积性函数那么 fg都是积性函数。

证明:
h=fgf,g 都是积性函数。
a,b 互质。
于是有 h(a)=d1|af(d1)g(ad1), h(b)=d2|bf(d2)g(bd2)
乘起来可以得到
h(a)×h(b)=d1|af(d1)g(ad1)×d2|bf(d2)g(bd2)                    =d1|a,d2|bf(d1×d2)g(abd1×d2)

因为 ab 互质, 所以d1×d2 是唯一的,所以原式可以化为 d1|a,d2|bf(d)g(abd) 就是 h(ab)(fg)(a)×(fg)(b)=(fg)(ab)

逆元

定义

如果数论函数f有, f(1)0, 若 fg=ϵ, 就称
gfdirichlet 逆元,记作 f1

组合数学的美

LUCAS定理

没有什么好说的。

Cmn=Cm mod pn mod p×Cm/pn/p

代码用递归实现

inline i64 lucas(i64 n, i64 m) {
return m == 0 ? 1 :
(c(n % p, m % p) * lucas(n / p, m / p) % p);
}

二项式定理

(a+b)1=1a+1b(a+b)2=1a2+2ab+1b2(a+b)3=1a3+3a2b+3ab2+1b3

提出系数得到

1,11,2,11,3,3,1

显而易见,杨辉三角。

由此得到二项式定理:(a+b)n=i=1nCni×ai×bni

通过组合数学的角度思考。
在展开 (x+y)×(x+y)×(x+y)(x+y) 的过程中,要么选 x 要么选 y, 所以 xi×yni的系数为 Cni

递推求错放数量

fi 是满足 ai 不在第 i 位的排列方案。

a. 假设第 n 个数不在第 n 位, 假设放在第 k 位,一共有 n 位, 所以有 n1 种方案。
b. 考虑第 k 位的数,它有两种情况:

  1. 把这个数放到第 n 位去,于是这两个数就安排好了, 现在还有 n2 个数需要错排,方案数就是 fn2
  2. 把这个数不放到第 n 位去,于是只有第 n 位安排好了,还有 n1 个数需要错排,方案数就是 fn1

对于 a,b 操作是先有 a 再有 b,满足乘法原理

对于 b 的两个操作则是两种情况,只能选一种, 满足加法原理,所以错排的递推式如下:

fi=(i1)×(fi1+fi2)

容斥原理

<- 文氏图 / 韦恩图 / veen 图

一些关于集合的基本知识

并集: AB=D, 两个集合的公共部分
交集: AB=A+BD, 两个集合所有的部分减去它们重叠的部分。

显然, 对于上图 G=A+B+CABBCAC+ABC

容斥原理公式

从上面求 G 部分的公式可以看出, 容斥原理就是加多了就减,减多了就加的思想。最后求所有部分的并。

使用数学语言描绘一下就是

|i=1nSi|=i|Si|i<j|SiSj|+i<j<k|SiSjSk|+(1)m1ai<ai+1|i=1mSai|++(1)n1|S1Sn|

嗯,有点复杂,可以更简洁一些。

|i=1nSi|=m=1n(1)m1ai<ai+1|i=1mSai|

本文作者:Falling-flowers 的 blog

本文链接:https://www.cnblogs.com/falling-flowers/p/15874365.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   落花月朦胧  阅读(122)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起