个人 & ZR 数论专题小记

我的数论以前一只因为对数字的恐惧而搁置,准备这几天补回来 /kk。
主要是记结论和重要的内容。

exgcd&中国剩余定理&ex中国剩余定理

exgcd

求解 \(ax+by=c\) 的通解形式。

根据贝祖定理,有 \(\mathrm{gcd}(a,b)|c\),因此我们可以先求出 \(ax+by=gcd(a,b)\) 的解,然后乘相应倍数就可以得到原方程的解。这里倍数是 \(\frac{c}{\mathrm{gcd}(a,b)}\)

先思考怎么求特解。

考虑类似辗转相除的方法来做,假设得到了 \(a'=b,b'=a\ \mathrm{mod}\ b\) 的解 \(x',y'\),如何得到 \(a,b\) 的解。假设 \(a=kb+r\),则 \(b'=r\) 也就是说现在有 \(b,r\) 的解 \(x',y'\)。把式子写下来就是 \(bx'+ry'=\mathrm{gcd}(a,b)=bx'+(a-kb)y'=ay'+b(x'-ky')\)。于是就有 \(a,b\) 的两个解是 \(y',x'-ky'\)。边界是 \(b=0\)\(\mathrm{gcd}\)\(a\),令 \(x=1,y=0\) 即可。

这样就有了一组题解 \(x,y\)。如何推广到通解?

我们考虑对这组通解 \(x,y\) 调整得到其它可能的解,假设 \(x\) 调整为了 \(x+k_1\),那么 \(y\) 如果要调整成 \(y-k_2\),就有 \(\frac{k_1}{k_2}=\frac{b}{a}\)。因此其实我们可以把通解形式写成 \(x_k=x+kb,y_k=y-ka\)

实际做题的时候一般要求这里 \(x,y\) 为整数,简单分析一下可以得到 \(\mathrm{gcd}(a,b)k\) 为整数时能保证这一点。

中国剩余定理

\(n\) 个同余方程,要你求出解的同余形式。

考虑每次把一个方程保留,其它的把余数都置成 \(0\),求出通解形式的余数,把所有的这个余数相加就是原方程的余数。比如这个保留的方程是第一个 \(x\ \mathrm{mod}\ b_1=a_1\)。那么我们可以先 求 \(a_1\)\(1\) 的情况,然后再乘上真正的 \(a_1\) 值。可以发现 \(x\) 因为其它置成 \(0\) 的方程的影响,它应该是 \(b_2b_3...b_n\) 的倍数,令它为 \(kb_2b_3...b_n\),则 \(kb_2b_3...b_n\ \mathrm{mod}\ b_1=1\),这是逆元形式,exgcd 即可。

ex中国剩余定理

做法挺多。记两个。

solution1

考虑只有两个方程怎么解,如果能做两个那么只要按顺序一个一个合并即可。

假设现在有 \(x \ \mathrm{mod}\ a=b,x\ \mathrm{mod}\ a'=b'\) 两个玩意,那么 \(x=-ak_1+b=-a'k_2+b'\),考察后面的等号,整理得 \(ak_1-a'k_2=b-b'\) ,可以用 exgcd 求的一组特解 \(x_0,y_0\),可以表示通解:\(x_k=x_0+\frac{a'}{\mathrm{gcd}(a,a')} \times k,y_k=y_0-\frac{a}{\mathrm{gcd}(a,a')} \times k\),代入原 \(x\) 的柿子可以得到 \(x=b-ax_k=b-ax_0-\mathrm{lcm}(a,a') \times k\),因此有 \(x \ \mathrm{mod}\ \mathrm{lca}(a,a')=b-ax_0\)。完成合并。

solution2

把所有余数 \(a\),把模数 \(b\) 分解成若干 \(p^k\) 乘积的形式(\(p\) 是素数),那么相当于对这些 \(p^k\) 分别取模得到 \(a\)。然而这样可能会有多个不同的 \(b\) 对应到一个 \(p\) 的底数,这样就不互质了,然而可以想到对于同样一个底数 \(p\) 只用保留 \(k\) 最大的条件。于是就做完了。

exlucas

宝宝不会捏 /kel。

狄利克雷卷积&莫比乌斯反演

基本的数轮函数运算:

\(f+g=t\)\(t(x)=f(x)+g(x)\)

\(p*f=t\)\(t(x)=pf(x)\)

我们定义 狄利克雷卷积 这种运算是把两个数轮函数 \(f,g\) 卷成另一个函数 \(t\),其中 \(t\) 满足:
\(\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ t(x)=\sum_{i|x}f(i)g(\frac{x}{i})\)

我们也可以认为是对于每一对 \((i,j)\)\(f(i)g(j)\) 贡献到 \(t(ij)\) 上去。

这一种卷积运算满足如下性质:

交换律,结合律,分配律,任意函数 \(f\) 乘上单位元函数等于 \(f\) 本身。
单位元函数 \(t(x)=[x==1]\)

对于一个函数 \(f,f(1) \ne 0\)我们还可以求逆元函数 \(g\),满足 \(f*g\) 等于单位元函数。

两个积性函数的狄利克雷卷积是积性函数。
积性函数的逆是积性函数。

我们定义一个 "一函数":\(o,o(x)=1\),和它的逆函数 \(\mu\)

对于函数 \(f\),构造 \(g=f*o\),则 \(f=f*o*\mu=g*\mu\)。我们把这个结果写开,转化就是:

\(g(n)=\sum_{d|n}f(d)\) 那么有 \(f(n)=\sum_{d|n}\mu(\frac{n}{d})g(d)\)

把每个式子里 \(f,g\) 括号里面的 \(n,d\) 交换仍然成立。

我们如何应用呢?

比如说现在有这样一个问题:

\(\sum_{i=1}^n\sum_{j=1}^m [gcd(i,j)==1]\)

我们令 \(f(x)=\sum_{i=1}^n\sum_{j=1}^m [gcd(i,j)==x],g(x)=\sum_{x|d}f(x)\)

那么根据前面推出来的柿子得到 \(f(1)=\sum_{i=1}^n \mu(i)g(i)\)

我们观察 \(g\) 的形式可以得到 \(g(x)=\lfloor \frac{n}{x} \rfloor \lfloor \frac{m}{x} \rfloor\)

整除分块即可。

\(\mu(x)\) 的值:
\(x=0 \to 1\)
\(x=p_1p_2...p_m(p\ is\ prime,p_i \ne p_j) \to (-1)^m\)
\(others \to 0\)

另一个问题:

\(\sum_{i=1}^n\sum_{j=1}^m gcd(i,j)\)

solution1:

转化成 \(\sum_{d} d\sum_{i=1}^{\frac{n}{d}} \sum_{j=1}^{\frac{m}{d}} [gcd(i,j)==1]\)

变成了第一个问题。

注:上面涉及到的所有函数都是积性函数,可以直接线性筛。

ZR 数论

大招前摇

组合数学和容斥

组合数:\(n\) 个无顺序球里面选 \(m\) 个的方案数 \(C(n,m)=\frac{n!}{m!(n-m)!}\)
常见问题的解题策略:插板,推柿子。
常见结论:

  1. \(C(n,m)=C(n-1,m-1)+C(n-1,m)\)。组合意义证明,考虑第 \(n\) 个选不选。
  2. 上指标前缀和:\(\sum_{i=0}^n C(i,m)=C(n+1,m+1)\)。组合意义证明,考虑最后一个选的在哪里。
  3. 范德蒙德卷积:\(\sum_{i=0} C(n,i)C(m,i)=C(n+m,n)\)。组合意义证明,把 \(C(m,i)\) 变换为 \(C(m,m-i)\)
  4. Lucas 定理:\(C(n,m)\ \mathrm{mod}\ p=C(n\ \mathrm{mod}\ p,m\ \mathrm{mod}\ p)C(n/p,m/p) \ \mathrm{mod}\ p\)。可以发现这个是一个类似于 \(p\) 进制的结构,这个很有用,可以拿来做数位 dp。

概率期望

我感觉这里没啥收获,不记定义了。
这里有个例题,顺手写一下吧。
一个点初始在 \(0\),每次一半概率向右走 1 一半概率不动,问走到 \(n\) 的期望 time。考虑 \(f_n\) 表示 \(n\) 的答案就有 \(f_n=1+\frac{f_n+f_{n-1}}{2}\) 解得 \(f_n=2+f_{n-1}\),直接算即可。这里看出期望是线性的,\(E(X+Y)=E(X)+E(Y)\)

P7481

对于这种奇奇怪怪的,没有什么对应好的组合意义的东西,可以考虑递推。柿子懒得写了,直接 LG 题解吧,这种推柿子题没啥好讲的。

posted @ 2025-10-25 21:04  v1ne0qrs  阅读(22)  评论(0)    收藏  举报