「笔记」数学乱记

Updated on 2020.8.7
想了想把积性函数一系列内容引用的挺多的。
独立出去了。

Updated on 2020.8.8
留了两个大坑:二次剩余,类欧几里得算法。
跑路了!


写在前面

黑历史 数论知识整理
当时还觉得自己挺 nb,现在一看写的就跟收纳胶囊一样。
但一些简单知识还是能看的,这里就不再整理了。


扩展欧拉定理

\(p\) 意义下,对于 \(a^b\),有如下性质。
不必保证 \((a,p) = 1\)

\[a^b\equiv \begin{cases}a^b&b<\varphi(p)\\ a^{b\bmod\varphi(p)+\varphi(p)}&b\ge\varphi(p) \end{cases} \]

题目

P5091 【模板】扩展欧拉定理
P4139 上帝与集合的正确用法


\(a\pmod m\) 的阶

\((a,m) = 1\),记 \(x\) 为最小的正整数,使得 \(a^x \equiv 1 \pmod m\),称 \(x\)\(a\) 关于模 \(m\) 的阶,记为 \(\operatorname{ord}_{m}a\)

\(\operatorname{ord}_{m}a\mid \varphi(m)\),反证法略证:

\(t\nmid \varphi(m)\)\(t\) 为最小的 满足 \(a^{t} \equiv 1\pmod m\) 的正整数。
则有:\(\varphi(m) = qt+r (1\le r<t)\)
且有 \(a^m = a^{qt+r} \equiv 1 \pmod m\) 成立。
则: \(a^{r} \equiv 1\pmod m\)

\(r< t\),与已知矛盾,故结论不成立。


求阶方法:

  1. 预处理 \(\varphi (m)\) 的所有因子,从大到小枚举检查。
    单次检查复杂度 \(O(\log \varphi(m))\) ,但因子的个数会比较恐怖,总复杂度并不优秀。
  2. 发现 \(x\) 为满足 \(a^x \equiv 1 \pmod m\)\(\varphi(m)\) 的最小因子。
    \(x\) 初始值为 \(\varphi(m)\),考虑枚举 \(\varphi(m)\) 的所有质因子试除。
    若满足 \(a^{\frac{x}{p}} \equiv 1\),则 \(x = \frac{x}{p}\)。最后的 \(x\) 即为答案。
    复杂度 \(O(k\log \varphi(m))\)\(k\)\(\varphi(m)\) 的质因子个数。

原根

\((g,m) = 1\),且 \(\operatorname{ord}_{m} g = \varphi (m)\),则称 \(g\)\(m\) 的一个原根。

\(g\)\(m\) 的一个原根 当且仅当 \(\{g^0,g^1,\cdots g^{\varphi(m)-1} \pmod m\}\) 内元素均不同,构成了模 \(m\) 的简化剩余系。

\(m\) 存在原根,则 \(m=1,2,4,\cdots p^a,2p^a\) (\(p\) 为奇素数,\(a\in \mathbf{N}^+\)) 。


检验原根

\(p_1,p_2,\cdots ,p_k\)\(\varphi(m)\) 的所有不同的质因子。
对于 满足 \((g,m)=1\) 的正整数 \(g\)\(g\)\(m\) 的原根,当且仅当对任意 \(1\le i\le k\),都有 \(g^{\dfrac{\varphi(m)}{p_i}}\not\equiv 1 \pmod m\)

需要枚举质因子 + 快速幂,单次检验复杂度为 \(O(\log^2 )\) 级别。

略证:

\(g\) 不是 \(m\) 的原根,则 \(\operatorname{ord}_{m}g< \varphi (m)\)
\(\operatorname{ord}_{m}g \mid \varphi(m)\),考虑枚举 \(\varphi(m)\) 的约数进行检验。
显然,\(\left\{\dfrac{\varphi(m)}{p_i}\right\}\) 中包含了 \(\varphi(m)\) 所有约数的倍数。
通过检验 \(g^{\frac{\varphi(m)}{p_i}}\) 则可判断 \(\operatorname{ord}_m g<\varphi(m)\) 是否成立。


求原根:

原根密度很大,大约是 \(n^{0.25}\)

  1. 可从 2 开始枚举 \(g\),并进行检验,可找到最小的原根。
  2. 直接随机一个数并进行检验。

复杂度均约为 \(O(n^{0.25})\)

一道模板题


原根有什么用

NTT!虽然还不会


指数方程

形如下列形式的方程:

\[a^x \equiv b \pmod m \]

求解方法 BSGS


二次剩余

对于一个数 \(a\),若 \(a\) 不是 \(p\) 的倍数且模 \(p\) 同余于某个数的平方,则称 \(a\) 为模 \(p\) 的二次剩余。
一个不是 \(p\) 的倍数的数 \(a\),不同余于任何数的平方,称其为模 \(p\) 的 非二次剩余 。

对二次剩余求解,即对常数 \(a\) 解下列方程:

\[x^2 \equiv a \pmod p \]

可以认为是求模意义下的开方。

咕咕咕了,详见: oi-wiki


组合数取模

\[{n\choose m} \mod p \]

详见:组合数取模


积性函数

\(\gcd(x,y) = 1\)\(f(xy)=f(x)f(y)\), 则\(f(n)\)为积性函数。

性质,举例详见:积性函数


莫比乌斯函数

\(\mu\) 为莫比乌斯函数,定义为

\[\mu(n) = \begin{cases} 1 &n=1\\0 &n\ \text{含有平方因子}\\(-1)^k &k\text{为}\ n\ \text{的本质不同质因子个数} \end{cases}\]

性质,补充性质详见:莫比乌斯函数


狄利克雷(Dirichlet)卷积

定义两个数论函数 \(f,g\) 的狄利克雷卷积为

\[\large(f\ast g) (n) = \sum_{d\mid n} f(d)g(\dfrac{n}{d}) \]

建议阅读 算法学习笔记(35): 狄利克雷卷积 By: Pecco
性质,举例详见:狄利克雷卷积


反演

给定数列 \(f_i, g_i\),存在:

\[g_n = \sum_{i=0}^{n}a_{n,i}f_i \]

这里使用 \(f\) 推出了 \(g\),反演的过程就是使用 \(g\) 推出 \(f\)
也就是找到系数数组 \(b\),使得:

\[f_n=\sum_{i=0}^{n}b_{n,i}g_i \]

引用自学长 fastle 的课件。

详见:反演


杜教筛

可在低于线性时间的复杂度内 处理数论函数的前缀和。

详见:杜教筛


类欧几里得算法

P5170 【模板】类欧几里得算法
查看题解


写在最后

参考资料:

算法学习笔记(35): 狄利克雷卷积 By: Pecco
杜教筛 - pengym
oi-wiki

交响辉针城来了 /se
ddcsb

最新一话醉蝶华观后感:
弱受灵梦可爱!
文文可爱!

posted @ 2020-08-05 19:41  Luckyblock  阅读(283)  评论(3编辑  收藏  举报