从头开始学数论(2)

从头开始学数论(2)

前置芝士

欧拉函数

欧拉函数相关

积性函数

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

完全积性函数

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

常见函数

  1. \(ϵ(x) = \begin{cases} 1 & x=1 \\ 0 & x \not= 1 \end{cases}\) ,它是完全积性函数。
  2. \(Id_k(x)=x^k\) ,它是完全积性函数( \(k\) 省略时默认为 \(1\) )。
  3. \(σ_k(x) = \underset{d|n}{\sum}d^k\) ,它是积性函数( \(k\) 省略时默认为 \(1\) )。
  4. \(μ(x) = \begin{cases} 1 & x=1 \\ (-1)^k & x=\underset{i=1}{\overset{k}{\prod}} p_i \ (p_i为互异质数) \\ 0 & otherwise \end{cases}\)

从Dirichlet卷积到莫比乌斯函数

Dirichlet卷积

定义

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

卷积也可以这样表示 \(h(n)=(f*g)(n)=\sum_{xy=n}f(x)p(y)\)

性质

  1. 交换律: \(f*p=p*f\)

证明:

\(f*p=\sum_{d|n}f(d)p(\frac{n}{d}) = \sum_{d|n}f(\frac{n}{d})p(d)=p*f\)

  1. 结合律: \((f*p)*h=f*(p*h)\)

证明:
\(((f*p)*h)(a)=\sum_{x\times y\times z=a}(f(x)\times p(y))\times h(z)\\ = \sum_{x\times y\times z=a}f(x)\times (p(y)\times h(z))\\ =((f*p)*h)(a)\)

  1. 分配律: \(f*(x+p)=f*x+f*p\)

证明

显然

  1. \(ϵ*f=f*ϵ=f\)

证明:

显然

  1. 如果 \(f\)\(g\) 都是积性函数那么 \(f*g\)都是积性函数。

证明:
\(h = f * g\)\(f, g\) 都是积性函数。
\(a, b\) 互质。
于是有 \(h(a)=\sum_{d_1|a}f(d_1)g(\frac{a}{d_1})\), \(h(b)=\sum_{d_2|b}f(d_2)g(\frac{b}{d_2})\)
乘起来可以得到
\(h(a)\times h(b)=\sum_{d_1|a}f(d_1)g(\frac{a}{d_1})\times \sum_{d_2|b}f(d_2)g(\frac{b}{d_2})\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\sum_{d_1|a,d_2|b}f(d_1\times d_2)g(\frac{ab}{d_1\times d_2})\)

因为 \(a,b\) 互质, 所以\(d_1\times d_2\) 是唯一的,所以原式可以化为 \(\sum_{d_1|a,d_2|b}f(d)g(\frac{ab}{d})\) 就是 \(h(ab)\)\((f*g)(a)\times (f*g)(b) = (f*g)(ab)\)

逆元

定义

如果数论函数\(f\)有, \(f(1)\neq 0\), 若 \(f*g=ϵ\), 就称
\(g\)\(f\)\(dirichlet\) 逆元,记作 \(f^{-1}\)

组合数学的美

LUCAS定理

没有什么好说的。

\[C^n_m=C^{n\ mod \ p}_{m\ mod \ p}\times C^{n/p}_{m/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 = 1a^2 + 2ab + 1b^2\\ (a + b) ^ 3 = 1a^3 + 3a^2b + 3ab^2+1b^3 \]

提出系数得到

\[1, 1\\ 1, 2, 1\\ 1, 3, 3, 1 \]

显而易见,杨辉三角。

由此得到二项式定理:\((a+b)^n=\sum_{i=1}^n C_n^i\times a^i \times b^{n-i}\)

通过组合数学的角度思考。
在展开 \((x+y)\times(x+y)\times(x+y)\dots(x+y)\) 的过程中,要么选 \(x\) 要么选 \(y\), 所以 \(x^i\times y^{n-i}\)的系数为 \(C_n^i\)

递推求错放数量

\(f_i\) 是满足 \(a_i\) 不在第 \(i\) 位的排列方案。

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

  1. 把这个数放到第 \(n\) 位去,于是这两个数就安排好了, 现在还有 \(n - 2\) 个数需要错排,方案数就是 \(f_{n-2}\)
  2. 把这个数不放到第 \(n\) 位去,于是只有第 \(n\) 位安排好了,还有 \(n - 1\) 个数需要错排,方案数就是 \(f_{n-1}\)

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

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

\[f_i=(i-1)\times (f_{i-1} + f_{i-2}) \]

容斥原理

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

一些关于集合的基本知识

并集: \(A\cup B=D\), 两个集合的公共部分
交集: \(A\cap B = A + B - D\), 两个集合所有的部分减去它们重叠的部分。

显然, 对于上图 \(G =A + B + C - A\cup B - B\cup C - A\cup C + A\cup B\cup C\)

容斥原理公式

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

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

\[|\cup_{i=1}^{n}S_i| = \sum_{i}|S_i| - \sum_{i<j}|S_i\cap S_j| + \sum_{i<j<k}|S_i\cap S_j\cap S_k|-\dots +(-1)^{m-1}\sum{a_i<a_{i+1}}|\cap_{i=1}^m S_{a_i}|+\dots +(-1)^{n-1}|S_1\cap \dots \cap S_n| \]

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

\[|\cup_{i=1}^{n}S_i| = \sum_{m=1}^n(-1)^{m-1}\sum{a_i<a_{i+1}|\cap_{i=1}^mS_{a_i}|} \]

posted @ 2022-02-09 16:03  落花月朦胧  阅读(121)  评论(0编辑  收藏  举报