正睿19暑期B班DAY7 数论
洛谷今日份:宜打chunithm(您虹了),sdvx(您暴了)
今日又是课件非常丰富份,本文仅作批注
首先要理解群,环,域的概念(这个会再提一次)
几个代数结构
群 是一个集合加上一个运算
环 定义了两种运算的非空集合,满足加法分配律和乘法结合律、分配律
幺环 有单位元的环
域 设F是一个有单位元e1(≠0)的交换环(满足乘法交换律的幺环)。如果F中每个非零元都可逆,称F是一个域。
也可以理解为能够做四则运算,对于四则运算得到的结果还在域内(封闭)的幺环
质因子分解
素性测试
- 试除法
- Miller-Rabin
板子等到血书要到了再补,没有就补一个自己的小菜板
- AKS算法 右转某度百科
质因子分解
- 试除法,复杂度 O(\(\sqrt n\)),太慢了。
- Pollard’s Rho,期望复杂度 O(\(^{4}\sqrt{n} log n\)),又名启发式分解。
数论
GCD & ExGCD
我相信你们已经完全会了
类欧几里得算法
解决类似于这样的问题
把它移项一下之后递归,具体见课件
关于课件里有几个名词问了一下数竞玩家:
hjmmm:环是什么?
念去去:环是一个定义了两种运算的群,满足加法分配律和乘法结合律、分配律。就是说在环这个范围内,+运算和×运算都是可以进行的。环具体是什么要具体问题具体分析。如果是mod5的,那么就是0-4。
hjmmm:明白辽。。emm那群是什么
念去去:就是进行某一种运算的范围。对于不同运算规则,群是可能不相同的。比如同余运算的群一般是整数
hjmmm:明白辽。。emm什么叫模合数的环?它和模质数的有什么区别?
念去去:膜质数简单,膜质数可以用更多的定理。Lucas定理 威尔逊定理之类的。对于有的概率运算 膜合数的结果和膜质数的不一样。这个我也不太清楚了。。。
hjmmm:好的 感谢vq
中国剩余定理 CRT&ExCRT
这里放一下r爷举的ExCRT的栗子
\(x = 3 (mod 12), x = 7 (mod 8)\)
\(x = 3 (mod 4)\)
\(x = 4k + 3 \ mod(lcm(12, 8))\)
\(k = 0 (mod 3), k = 1 (mod 2)\)
把k解出来之后 把两个方程合并成一个mod(lcm(p1, p2))的方程
费马小定理
p 是质数,则 \(a^p ≡ a (mod p)\)
欧拉定理
p > 1,a, p 互质,则 \(a^{ϕ(p)} ≡ 1 (mod p)\)
- 缩系:和x互质的所有数的集合
扩展欧拉定理
$p > 1,n ≥ ϕ(p) 存在 a^n ≡ a^{n \ mod\ ϕ(p)+ϕ(p)} (mod p)
离散对数问题
BSGS
求\(A^x ≡ B (mod C)\)
ExBSGS
A, B, C一起除以gcd(A, C)
原根相关
循环群:指群可以由一个元素生成:\(G = x, x^2, x^3 ...\)。
阶:满足 \(x^d = 1\)的最小正整数 d。记为 ord(x)。
$x^m = 1 $当且仅当 \(ord(x)|m\)。
模素数 p 的剩余类构成一个有限域。
模 m 意义下与 m 互质的元素组成缩系,大小为 ϕ(m)。
原根:能生成缩系的元素,即 \(x^i\) 两两不同\((0 ≤ i < ϕ(m))\)的 x。原根不一定存在。事实上,当且仅当 \(m = 2, 4, p^k,2∗p^k\) 时,模 m 缩系的原根存在。p 是任意奇质数。
Fact: 设 a 的阶是 m,\(d|m\),则 \(a^d\) 的阶是 \(\frac{m}{d}\) 。
Fact: 设 a 的阶是 m,b 的阶是 n,则必存在一个数,阶是 \(lcm(n, m)\)
Fact: n 个元素的循环群的生成元个数为 ϕ(n)。
好,相信看到这里你已经懵了
宛转表达:这个时候我们需要拉一个数竞党让他来证一遍
直接说明:咕咕咕
二次剩余
\((\frac{a}{p})\)表示 a 是模 p 域下的二次剩余,-1 表示是二次非剩余
p.s. LeTaX打法:(\frac{a}{p})
计算:\((\frac{a}{p}) = a^{\frac{p - 1}{2}} (mod \ p)\)
二次互反律:\((\frac{p}{q})(\frac{q}{p})=(-1)^{\frac{(p-1)(q - 1)}{4}}\)
二次剩余计算方法:原根法 / Cipolla算法
Cippolla:
rand一个a使得\(a^2 - n\)是二次非剩余
设\(w = \sqrt{a^2 - n}\),\(x + yw\)形成一个域(\(x + yw\)是mod P域的扩域)
二次剩余解为\((a + w)^{\frac{p + 1}{2}}\)
关于证明,注:mod P下有性质 \((a + b)^P = a^P + b^P (mod P)\)
关于证明\((a + w)^{\frac{p + 1}{2}}\)不含\(w\)项,注:\((a^2 - w) = \frac{n}{y^2}\)
-
跳跳棋
注意按照规则,一个状态只有三种转移(向里跳,中间棋子向左跳或向右跳)
这样的话我们把第一种情况作为父亲,后两种作为儿子
然后对于(a, b, c),如果有\(b - a > c - b\)
那么(a, b, c)到父亲的距离就是\(\lfloor \frac{b - a}{c - b} \rfloor\)
-
Power Tower
\(a_{l}^{a_{l + 1}^{...^{a_{r}}}}\)这个东西直接暴力就好啦
只要下面变成1了就不用乘了
-
Chinese Leftover Ⅱ
\(a_1 + (a_2 - a_1) * p_1 * inv(p_1, p_2) (mod p_1p_2)\)
\(F(i , j) = F(i - 1, j) + (a_2 - a_1) * inv(p1, p2) mod \ p2 * p1\)
感觉别的题ppt写的很清楚啊
数论函数
从这里开始,一定要手推!一定要手推!一定要手推!
hjmmm:陪域是什么qvq
"数论函数:定义域为正整数集,陪域为复数域的函数。"
念去去:值域是陪域的一部分,值域是定义域映射到的陪域的那部分。
hjmmm:那陪域有什么用
念去去:人家没告诉你映射,比如说从整数集映到复数集,这个“复数集”就是陪域,相当于把我们高中习惯的叫法更严谨了。
hjmmm:所以陪域只要包含值域,是什么都行咯?
念去去:最起码。。。最起码作业帮是这个意思。所以陪域这个东西在这里就有点鸡肋了。。。
两个数论函数的迪利克雷卷积:(符号为*)
满足:
交换律:f ∗ g = g ∗ f
结合律:(f ∗ g) ∗ h = f ∗ (g ∗ h)
分配律:f ∗ (g + h) = f ∗ g + f ∗ h
单位元:
若 f**, g 是积性函数则 f ∗ g 也是积性函数。
一些性质:
- 若 g = f ∗ 1,则 f = g ∗ µ
这个主要是用到\(\sum_{d | n} \mu(d) = \sum_{S \subset T} (-1)^{|S|} = \sum_{i = 0}^{n} \tbinom{n}{i}(-1)^i = (1-1)^n = 0\)
所以\(\sum_{d | n} \mu(d) = [n = 1]\)
同时\(\mu * 1 = \epsilon\)(为了方便各位,\(\epsilon\)的LaTeX是\epsilon)
\(\epsilon\)函数是单位元,有f ∗ ϵ = f
于是我们收获:
- \(σ_k = Id_k ∗ 1,Id_k = σ_k ∗ µ\)
注:\(σ_k\)(n)表示n的约数的k次方之和,\(Id(n)\)表示n的k次方
- \(Id_1 = ϕ ∗ 1,ϕ = Id_1 ∗ µ\)
注:\(Id_1\) = {1, 2, 3, ..., k}
莫比乌斯反演和杜教筛
真的打公式快。死。了。
以后再填坑qvq
Min25筛
如果有不理解的地方可以参考:
-
对于ppt中的Part1 Part2 分别求解了质数范围和全部范围的积性函数前缀和
-
那个\(T(n)\)是要求的积性函数
-
Part1中的F函数其实筛到最后,对于每一个j,只需要F(i, j)
其中i为最小的i使得\(p_i^2 > n\)
Part2中的F(i)默认忽略了第一维
-
注意F(i, j)的第二维只有\(\sqrt{n}\)级别
这\(k*\sqrt{n}\)个数(k为常数)中,包含了1到\(\sqrt{n}\)
所以Part1转移式中那个"\(F(i - 1, p_{i - 1})\)"不必担心不在范围内
-
Part1的F是从小到大转移的 Part2中的S是从大到小转移的
-
Part2答案式中S(1, n) + 1最后的加一加的是T(1)
(积性函数T(1) = 1)
-
Part2递推式中\(T(p_{j}^{e+1})\)只是表示指数从2开始累计
因为\(T(p_j)\)已经在质数中累计过了
解释一下递推式
- Part1
\(F(i, n) = F(i - 1, n) - T(p_i)(F(i - 1, \lfloor \frac{n}{p_i} \rfloor) - F(i - 1, p_{i - 1}))\)
\(F(i - 1, n)\)很显然是最小质因子大于等于\(p_i\)的数或者质数
要去掉最小质因子恰好是\(p_i\)的数
所以先取出\(p_i\)
\(F(i - 1, \lfloor \frac{n}{p_i} \rfloor)\)表示不大于\(\lfloor \frac{n}{p_i} \rfloor\)最小质因子大于等于\(p_i\)的数 或者 质数
前者乘上\(p_i\)之后 最小质因子必然是\(p_i\)
为了除掉后者 还要减去$ F(i - 1, p_{i - 1})$
小于等于\(p_{i -1}\)最小质因子还是\(p_{i- 1}\)的合数并不存在
所以只去掉了被计算的质数
- Part2
$T(p_j^e) * S(j + 1, \lfloor \frac{n}{p_j^e} \rfloor) + T(p_j^{e + 1}) $
前半段先取出\(p_i\) 计算最小质因子为\(p_j\)的合数
后半段计算\(p_j\)的多次幂
模板题链接