学习笔记:从 「1」开始的数论!「2020落谷夏令营基础省选」
前置(?)学习笔记:简单数论
基础知识
互质
\(gcd(a, b) = 1\) 又称 \(a ⊥ b\),互质抽象理解为代数意义上的垂直(神奇
范围内数的倍数
在 \([1, n]\) 中,\(d\) 的倍数有 \(\lfloor \frac{n}{d} \rfloor\) 个。
这个比较显然,\(1, d, 2 \times d, ..., k \times d\),最大的 \(k \times d \le n\) ,即 \(k = \lfloor \frac{n}{d} \rfloor\)
整除叠加性质
对于任意 \(x\) 与正整数 \(a, b\),都有:
\(\lfloor \dfrac{\lfloor \dfrac{x}{a} \rfloor }{b} \rfloor = \lfloor \dfrac{x}{ab} \rfloor\)
自己想的奇怪的证明,把数 \(n\) 拆成 \(n = qk + r\) 的形式,其中 \(k\) 为整数, \(0 \le r < q\),那么 \(\lfloor \frac{n}{q} \rfloor = k\)。
拆左边,\(x = ac + d = a(be + f) + d = abe + af + d\)
拆右边,\(x = aby + z\)
\(∵ e, y\) 是整数,\(0 \le z < ab\),且 \(z\) 是唯一的,故只需证明 \(0 \le af + d < ab\),即可得到 \(y = e\)。
由余数的性质,有 \(af + d < af + a < a(f+1) <= ab\)
证毕
数论函数
数论函数
定义域为正整数,值域是复数的子集的函数称为数论函数。
\(\text{OI}\) 中,值域一般也是整数域。
常函数
用 \(1\) 表示不管输入什么,取值恒为 \(1\) 的常函数。
幂函数
- \(\text{Id}_k(n) = n^k\)
- \(\text{Id} = \text{Id}_1\)
积性函数
- 若对于任意互质的正整数 \(a, b\),满足 \(f(ab) = f(a) \times f(b)\),则 \(f\) 为积性函数。
- 若对于任意正整数 \(a,b\),满足 \(f(ab) = f(a) \times f(b)\),则 \(f\) 为完全积性函数。
研究方法
算数基本定理将 \(n\) 分解:\(n=p_1^{c_1}p_2^{c_2}...p_s^{c_s}\) (以后函数的唯一分解都是这个性质),则有
\(f(n) = f(p_1^{c_1})\times f(p_2^{c_2}) \times ...\times f(p_s^{c_s})\)
研究积性函数 \(f\),可以转化为研究 \(f(p^c)\),即 \(f\) 在素数与素数幂的取值。
求值
-
算一个,可以 \(O(\sqrt n)\) 分解质因数,乘起来
-
算出 \([1, n]\) 所有的 \(f\) ,可以欧拉筛,求出每个数最小质因子与最小质因子幂次,利用这个可以线性算。
单位函数
$ε(n) = [n = 1] $
-
\([\text{condition}]\) 表述当条件 \(\text{condition}\) 成立时取值为 \(1\),否则为 \(0\) 的函数。
-
单位函数是完全积性函数*
除数函数
\(σ_k(n)\) 表示 \(n\) 的所有因子的 \(k\) 次方之和,即
- 特别的,约数个数 \(σ_0(n)\) 又称 \(d(n)\),约数和 \(σ_1(n)\) 又称 \(σ(n)\)
- 除数函数都是积性函数(这个比较显然,每个质因子贡献独立,唯一分解后 \(σ_k(n) = \displaystyle\prod_{1 \le i \le s} 1 + p_i^k + p_i^{2k} + ...+p_i^{ck}\))
神奇的式子
\(\displaystyle\sum_{x=1}^n \lfloor \frac{n}{x} \rfloor = \displaystyle\sum_{x=1}^n d(x)\)
两者本质上都是 \((i, j)\) 二元组,满足 \(i \times j \le n\) 的个数。
- 其中第一个式子映射为 \(\lfloor \frac{n}{x} \rfloor \Rightarrow (1, x), (2, x),...,(\lfloor \frac{n}{x} \rfloor ,x)\)
- 第二个式子的映射:\(d(x) \Rightarrow (k, \frac{x}{k})\)(其中 \(k\) 为 \(x\) 的因子)
欧拉函数
欧拉函数(Euler's totient function) \(\varphi(n)\) 表示不超过 \(n\) 且与 \(n\) 互质的正整数的个数。
算数基本定理 \(+\) 容斥原理(总共 \(n\) 个数,我们减掉每个质因子的倍数:\(\frac{n}{p_i}\),减重复了,加上 \(\frac{n}{p_ip_j}\) 如是一直套娃...)可以得到表达式:
- 通过表达式,可得欧拉函数是积性函数
性质
对于任意 \(n\),都有
证明
考虑 \(1 \le i \le n\) 所有产生的 \(\text{gcd}(n, i) = d\),考虑枚举所有的 \(d | n\),等式两边同除 \(d\),\(\text{gcd}(\frac{n}{d}, \frac{i}{d}) = 1\),故对于 \(d\) 而言,对应 \(i\) 的个数有 \(\varphi(\frac{n}{d})\) 个。
我们考虑了所有 \(d\),也就考虑了 \([1, n]\) 的 \(n\) 个整数,故:
算法
\(O(n)\) 欧拉筛 \(\varphi\) 前 \(n\) 项:
phi[1] = 1;
for (int i = 2; i <= n; i++) {
if(!st[i]) primes[++tot] = i, phi[i] = i - 1;
for (int j = 1; i * primes[j] <= n; j++) {
st[i * primes[j]] = true;
if(i % primes[j] == 0) {
phi[i * primes[j]] = phi[i] * primes[j];
break;
}
phi[i * primes[j]] = phi[i] * (primes[j] - 1);
}
}
莫比乌斯函数
莫比乌斯函数(Mobius function)函数 \(\mu(n)\) 定义为:
\(p_1,...,p_s\) 为不同素数,通俗来说,就是 \(n\) 非 \(1\) 的情况,将其唯一分解,如果有一项的 \(c_i > 1\),函数值为 \(0\),否则为 \(-1\) 的 \(s\) (约数个数)次方(即正负迭代)。换句话说,仅当 \(n\) 非平方因子时, \(\mu(n) \not=0\)
- 枚举各种情况,可知 \(\mu\) 为积性函数
性质
证明
\(n = 1\) 时成立。
\(n \not=1\) 时,将 \(n\) 唯一分解,我们只考虑非平方因子的约数,因为只有他 \(\mu\) 存在加和贡献。
该式子前面是组合数选有贡献的 \(d\),后面用到了二项式定理。
算法
\(O(n \log \log n)\) 筛 \(\mu\) 的前 \(n\) 项:
for (int i = 1; i <= n; i++) miu[i] = 1;
for (int i = 2; i <= n; i++) {
if (!st[i]) {
miu[i] = -1;
for (int j = 2 * i; j <= n; j += i) {
st[j] = true;
if ((j / i) % i == 0) miu[j] = 0;
else miu[j] = -miu[j];
}
}
}
狄利克雷卷积
对于三个数论函数 \(f, g, h\),若满足:
则称 \(h\) 为 \(f\) 和 \(g\) 的狄利克雷卷积(Dirichlet Product),数学符号可记为 \(h = f * g\)。
性质
- 单位函数 \(\epsilon\) 是狄利克雷卷积的单位元,对于任意函数都满足 \(f = f * \epsilon = \epsilon * f\),这个展开表达式非常显然。
- 狄利克雷卷积满足交换律和结合律(因为本质是枚举多元组,使其乘积为定值,各项相乘)。
- 若 \(f, g\) 是积性函数,那么 \(f * g\) 也是积性函数(展开表达式可证明)。
计算
- 计算单个 \(h(n)\) ,要枚举约数
- 计算 \(h\) 前 \(n\) 项,可以枚举 \([1, n]\) 每个数的倍数,复杂度是调和级数 \(O(n\log n)\)。
函数关系用狄利克雷卷积表示
很多函数关系性质都可以用狄利克雷卷积的关系来表示。
- 除数函数和幂函数的关系:\(σ_k = 1 * \text{Id}_k\)
- 欧拉函数与幂函数的关系:\(\text{Id} = 1 * \varphi\)
- 莫比乌斯函数与单位函数的关系:\(\epsilon = 1 * \mu\)
应用
在求和式子中,通过以上卷积关系式,等价替换,调换求和顺序,倍数约数反向枚举等技巧,最终神奇地做到降低时间复杂度(太神奇了!)
莫比乌斯变换
\(f\) 是数论函数,若函数 \(g\) 满足:
则称 \(g\) 为 \(f\) 的莫比乌斯变换(Mobius transformation),\(f\) 为 \(g\) 的莫比乌斯逆变换。
- 可以用狄利克雷卷积形式表示,即 \(g = f * 1\)
莫比乌斯反演定理
若 \(g\) 为 \(f\) 的莫比乌斯变换,则满足:
也可以写成狄利克雷卷积形式:\(f = g * \mu\)
证明
用狄利克雷卷积的形式证明更加快捷:
\(∵ g = f * 1, \epsilon = 1 * \mu\)
\(∴ f = f * \epsilon = f * 1 * \mu = g * \mu\)
无平方因子数
求 \(n\) 以内的无平方因子数的个数,即:
尝试时间复杂度更优的方式,用推导欧拉函数表达式类似的方法,可得:
- 莫比乌斯反演可以感性理解为一种整除关系的容斥
数论函数求和
杜教筛
咕咕咕,太难了,不会微积分,复杂度不会分析。
等待更新。
杂项
等待更新。