首页 > 其他分享 >数论全家桶

数论全家桶

时间:2023-08-09 11:23:51浏览次数:50  
标签:数论 定理 全家 pmod ans mod 互质 equiv

数论全家桶

目录

欧拉定理

1.结论
$$
∀a,m∈Z且gcd(a,m)=1,a^{\varphi(m)}\equiv1\ (mod\ m)
$$
欧拉定理的一个常见用法是对指数降幂。

应用当mod数质数时,有
$$
a^b \equiv a^{bmod\phi(m)} (mod m), gcd(a,m)=1;
$$
例如:https://www.luogu.com.cn/problem/P2480的化简

2.欧拉函数(小于他的并且与他互质的正整数数量和)
$$
φ(m)=∑(i=1,m−1) gcd(i,m)=1
$$

中国剩余定理CRT

用于求解同于方程组
$$
x\equiv ai(mod\ mi)
$$
为两两互质的整数,求x的解。

不管了,直接上求解方法

1.求出所有mod数的乘积,记为M,利用M/mi得到每个的Mi

2.找到Mi在modm下的逆元ti,就是求解
$$
Miti\equiv1(mod m)
$$
3.最后的解x就是所有的a_i* ti *Mi相加

EXCRT

相比于crt 而言,就是mi不互质了

前提:x的系数必须为1

问题同CRT,但是模数是任意的,并不要求互质。

这时,我们就不能保证存在逆元了。那么如何解决该问题呢?

考虑如何合并两个方程。如果我们找到了合并的方法,就能如法炮制将(n)个方程依次合并起来,得到答案。

$$
\left{
\begin{aligned}
x &\equiv a_1 \pmod{m_1} \
x &\equiv a_2 \pmod{m_2}
\end{aligned}
\right.
$$

去掉同余,化为不定方程

$$
\left{
\begin{aligned}
x &= m_1 y_1 + a_1 \
x &= m_2 y_2 + a_2
\end{aligned}
\right.
$$

于是得到

$$
m_1 y_1 + a_1 = m_2 y_2 + a_2
$$

只要找到一组满足该式的(y_1)和(y_2),就能反算出(x),实现合并。

而我们得到的是一个二元一次的不定方程,可以用exgcd求解。

化为标准式

$$
m_1 y_1 - m_2 y_2 = a_2 - a_1
$$

解就是了。如果没有解,说明同余方程组无解。

于是最后化得的合并式为

$$
x \equiv m_1 y_1 + a_1 \pmod{lcm(m_1,m_2)}
$$
至于思考的时候,我认为参考一下以下思考过程

在此之前,不妨先想想普通的扩展中国剩余定理是怎么做的,即所有 b_i=1b**i=1 的情况。

  1. 假设已经得到了前 i-1 组同余方程的解,记为 ans;

  2. 设 $M=\operatorname{lcm}(p_1,p_2,\ldots,p_{i-1})$,则对于任意的整数 x,ans+Mx 是前 i-1 组同余方程的通解;

  3. 我们想得到前 $i$ 组同余方程的解,就是想找到一个 x,满足 $ans+Mx\equiv a_i\pmod {p_i};$

  4. 移项得 $Mx\equiv a_i-ans\pmod{p_i};$

  5. 这类式子一看就是老扩欧了,转化成 Ax+By=C的形式用扩展欧几里得求解,即:

    $(M)x+(p_i)y=(a_i-ans)$

    详情可以参考:https://www.luogu.com.cn/blog/emptyset/solution-p4774

LUCAS定理

当mod数p是一个很小(30000没问题)的质数时,存在
$$
C_n^m\ mod \ p=C_{n/p}^{m/p}*C_{n\ mod \ p}^{m\ mod\ p}
$$
由此可以用于化简

卡特兰数

1.递推式(如下):
$$
h(n)=h(n-1)(4n-2)/(n+1),h(0)=1
$$

2.直接的计算(如下):
$$
h_n=C_{2n}{n}-C_{2n}=C_{2n}^n/{(n+1)}
$$
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$求解

考虑“直接计算”中的第二个等式,

标签:数论,定理,全家,pmod,ans,mod,互质,equiv
From: https://www.cnblogs.com/linghusama/p/17616344.html

相关文章

  • [数论第二节]欧拉函数/快速幂/扩展欧几里得算法
    欧拉函数欧拉函数\(\varphi(N)\):1-N中与N互质的数的个数若\(N=p_1^{a_1}·p_2^{a_2}·p_3^{a_3}····p_n^{a_n}\)其中p为N的所有质因子则\(\varphi(N)=N(1-\frac{1}{p_1})(1-\frac{1}{p_2})···(1-\frac{1}{p_n})\)证明:互质:两数的公共因子只有1去掉......
  • 数论第一节
    数论质数在大于1的整数中,只包含1和本身这两个约数,就被称为质数,也叫素数质数的判定试除法遍历2-n,若有约数则不为质数O(n)优化:d整除n,则n/d也整除n,约数总是成对出现,只要找较小的约数,即取d<=n/d,则d<=sqrt(n)只用遍历2-sqrt(n)O(sqrt(n))不用i*i<=n,i过......
  • 【学习笔记】数论之筛法
    前言:可以会乱记一些技巧吧。交换求和顺序如果不确定可以将条件写成[A]的形式,交换完求和顺序再把这个条件放里面。例如:\[\sum_{i=1}^n\sum_{d}[d|i]=\sum_{d=1}^n\sum_{i}[d|i]=\sum_{d=1}^n\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}1\]狄利克雷前缀和与狄利......
  • 数论函数
    P1390公约数的和简单莫反题。要求\[\sum_{i=1}^{n}\sum_{j=i+1}^ngcd(i,j)\]可以先考虑问题的简化版:\[\sum_{i=1}^{n}\sum_{j=1}^ngcd(i,j)\]\[=\sum_{d=1}^nd\sum_{i=1}^{n}\sum_{j=1}^n[gcd(i,j)==d]\]\[=\sum_{d=1}^nd\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1......
  • 解析数论之原根
    解析数论之原根目录Chapter1什么是整数的次数,什么是原根Chapter2谁有原根?Chapter1什么是整数的次数,什么是原根Definition:对于\((a,m)=1,m\ge1\),考虑所有\(a,a^2,a^3,\cdots\),我们通过欧拉定理知道有\(a^{\varphi(m)}\equiv1\mod{m}\)。而满足\(a^f\equiv1\mod{m}\)......
  • burry的全家桶
    点击查看代码%:pragmaGCCoptimize(3)%:pragmaGCCoptimize("Ofast")%:pragmaGCCoptimize("inline")%:pragmaGCCoptimize("-fgcse")%:pragmaGCCoptimize("-fgcse-lm")%:pragmaGCCoptimize("-fipa-sra")%:pragma......
  • 0801数论
    GCD&exGCD首先我们考虑辗转相除法的过程,因为\((a,b)=(b\bmoda,a)(0<a<b)\),\((0,b)=b\),所以我们就可以每次将\(b\)转化为严格更小的\(b\)的问题。归纳则得到答案。现在我们考虑扩欧的过程,我们需要对\(ax+by=1\)找到一组解。那么我们实际上就是要对一个形如\((a,b)\)......
  • 20230801 数论基础学习笔记
    理论基础中国剩余定理及拓展已知\(x\equiva_i(\bmodp_i\)\),求\(x\bmod\operatorname{lcm}\{p_i\}\)的值。若\(p_i\)互质,那么我们只需要计算\(c_i\)使得\[\prod\limits_{j\nei}\cdotc_i\bmodp_i=1\]然后有\[x=\sum\limits_{i}c_ia_i\prod\limits......
  • 多项式全家桶
    前言多项式乱七八糟的公式和做法实在是太多了,有点遭不住,写一个学习笔记,记录一下多项式的各种奇奇怪怪的模板。多项式乘法系数表示法即用这个多项式的每一项系数来表示这个多项式。对于一个\(n−1\)次\(n\)项多项式:\[f(x)=\sum_{i=0}^{n−1}a_ix_i\]用系数表示法为:\(f(......
  • 通过求逆元的几种方式复习基础数论
    逆元若\(ax=1\pmodp\),那么称\(a\)是\(x\)的逆元,显然\(x\)也是\(a\)的逆元。两边同时除以\(a\)得到\(x=\frac1a\pmodp\),可以写成\(x=a^{-1}\pmodp\),这么看来,乘法逆元就是取模意义下的倒数啊。若\(p\)为质数,\(0\)没有逆元,\(1\)的逆元是\(1\),\(p-1\)的逆元......