数论全家桶
数论全家桶
欧拉定理
1.结论
欧拉定理的一个常见用法是对指数降幂。
应用当mod数质数时,有
例如:https://www.luogu.com.cn/problem/P2480的化简
2.欧拉函数(小于他的并且与他互质的正整数数量和)
中国剩余定理CRT
用于求解同于方程组
为两两互质的整数,求x的解。
不管了,直接上求解方法
1.求出所有mod数的乘积,记为M,利用M/mi得到每个的Mi
2.找到Mi在modm下的逆元ti,就是求解
3.最后的解x就是所有的a_i* ti *Mi相加
EXCRT
相比于crt 而言,就是mi不互质了
前提:x的系数必须为1
问题同CRT,但是模数是任意的,并不要求互质。
这时,我们就不能保证存在逆元了。那么如何解决该问题呢?
考虑如何合并两个方程。如果我们找到了合并的方法,就能如法炮制将(n)个方程依次合并起来,得到答案。
去掉同余,化为不定方程
于是得到
只要找到一组满足该式的(y_1)和(y_2),就能反算出(x),实现合并。
而我们得到的是一个二元一次的不定方程,可以用exgcd求解。
化为标准式
解就是了。如果没有解,说明同余方程组无解。
于是最后化得的合并式为
至于思考的时候,我认为参考一下以下思考过程
在此之前,不妨先想想普通的扩展中国剩余定理是怎么做的,即所有 b_i=1b**i=1 的情况。
-
假设已经得到了前 i-1 组同余方程的解,记为 ans;
-
设 \(M=\operatorname{lcm}(p_1,p_2,\ldots,p_{i-1})\),则对于任意的整数 x,ans+Mx 是前 i-1 组同余方程的通解;
-
我们想得到前 \(i\) 组同余方程的解,就是想找到一个 x,满足 \(ans+Mx\equiv a_i\pmod {p_i};\)
-
移项得 \(Mx\equiv a_i-ans\pmod{p_i};\)
-
这类式子一看就是老扩欧了,转化成 Ax+By=C的形式用扩展欧几里得求解,即:
\((M)x+(p_i)y=(a_i-ans)\)
详情可以参考:https://www.luogu.com.cn/blog/emptyset/solution-p4774
LUCAS定理
当mod数p是一个很小(30000没问题)的质数时,存在
由此可以用于化简
卡特兰数
1.递推式(如下):
2.直接的计算(如下):
3.常见应用
a.突多边形的划分方案
b.$ n$个点构成二叉树的种类数
c.按从小到大的顺序放到任意一个数x,都满足放在偶数位上的数字个数小于等于放在奇数位上的数字个数。
d.在网格图上,从$(0,0) \(走到\)(n,n) \(并且不越过\)y=x $这条直线的方案数
其实大多数都可以抽象为d来做
4.例题:https://www.luogu.com.cn/problem/P3200
经过推导后,要求上面的c条件,至于证明,可以看成放在偶数位置就是网格图上向上走1步,奇数位置就是向右走一步,最终要满足这个路径不越过\(y=x\)。
5.取\(mod\)问题:
如上题,\(mod\)数不一定为质数,而且n的范围很大(不能杨辉三角递推),那么该怎么办呢
分解这个\(mod\)数,然后用\(crt\)求解
考虑“直接计算”中的第二个等式,