扩展中国剩余定理(Excrt)笔记
扩展中国剩余定理(excrt)
本来应该先学中国剩余定理的。但是有了扩展中国剩余定理,朴素的 CRT 就没用了。
扩展中国剩余定理用来求解如下形式的同余方程组:
\]
扩展中国剩余定理的基本思想是合并,通过 \(n - 1\) 次合并,将一个大的同余方程组合并成一个同余方程。
假设现在有两个同余方程:
\]
现在要将他们合并。首先转化成不定方程:
\]
\]
\]
\]
\]
成功转化成了系数为 \((A, -B, b - a)\) 的不定方程,使用 exgcd 求出他的一个根。因此转化成了一个同余方程:\(x \equiv Ak_1 + a (\bmod \ \text{lcm}(A, B))\)。合并完成。
// 合并 x = a(mod A), x = b(mod B) 两个方程
// 返回的是新的 a', b',满足 x = a'(mod b')
PII merge(int a, int A, int b, int B) {
	int k1, k2; int d = exgcd(k1, k2, A, B);
	k1 = k1 * (b - a) / d;
	int p = A / d * B; return {(A * k1 + a) % p, p};
}
bonus:
- 如果 \(x\) 的系数不为 \(1\)。
也就是 P4774 [NOI2018] 屠龙勇士。
求解形如:
\]
Excrt 因为 \(x\) 的系数是一,因此可以直接联立两个不定方程。也尝试将这个东西转化成不定方程的形式。假设现在需要合并的两个同余方程是:
\]
\]
\]
\]
然后发现两个 \(x\) 的系数不同,不能直接合并了。而这两个柿子两边又不能同时除以 \(p\) 或者 \(P\),因为不保证逆元存在。这就非常难搞。
一个神奇的思路是直接解出两个方程。以第一个方程为例,方程中只有两个未知数 \(x\) 和 \(-k_1\),可以解出一个特解 \(x_0\)。那么所有 \(x\) 就可以表示成:
\]
同理解第二个方程,可以得到
\]
我们惊奇的发现这两个 \(x\) 的系数相同了。所以可以合并一下:
\]
里面只有 \(\alpha, \beta\) 两个未知数,解出他们两个就可以得到 \(x\)。
- 扩展中国定理进行模数非质数的合并
即 古代猪文。
求 \(\dbinom{n}{m} \bmod \ 999911658\) 的值。
将 \(999911658\) 质因数分解得到:\(999911658 = 2 \times 3 \times 4679 \times 35617\)。
因此可以对 \(2, 3, 4679, 35617\) 分别做一遍 \(\text{Lucas}\),得到下面的同余方程:
x \equiv a_1(\bmod \ 2) \\
x \equiv a_2(\bmod \ 3) \\
x \equiv a_3(\bmod \ 4679) \\
x \equiv a_4(\bmod \ 35617) \\
\end{cases}\]
可以直接用 excrt 合并一下。
另外一个应用是扩展卢卡斯。其基本思路也是将模数拆成若干质因数的次方,计算后 excrt 合并。
扩展中国剩余定理(Excrt)笔记的更多相关文章
- 扩展中国剩余定理 (ExCRT)
		扩展中国剩余定理 (ExCRT) 学习笔记 预姿势: 扩展中国剩余定理和中国剩余定理半毛钱关系都没有 问题: 求解线性同余方程组: \[ f(n)=\begin{cases} x\equiv a_1\ ... 
- 扩展中国剩余定理 (exCRT) 的证明与练习
		原文链接https://www.cnblogs.com/zhouzhendong/p/exCRT.html 扩展中国剩余定理 (exCRT) 的证明与练习 问题模型 给定同余方程组 $$\begin{ ... 
- 中国剩余定理(CRT) & 扩展中国剩余定理(ExCRT)总结
		中国剩余定理(CRT) & 扩展中国剩余定理(ExCRT)总结 标签:数学方法--数论 阅读体验:https://zybuluo.com/Junlier/note/1300035 前置浅讲 前 ... 
- 扩展中国剩余定理 exCRT 学习笔记
		前言 由于 \(\{\mathrm{CRT}\}\subseteq\{\mathrm{exCRT}\}\),而且 CRT 又太抽象了,所以直接学 exCRT 了. 摘自 huyufeifei 博客 这 ... 
- 扩展中国剩余定理(EXCRT)快速入门
		问题 传送门 看到这个问题感觉很难??? 不用怕,往下看就好啦 假如你不会CRT也没关系 EXCRT大致思路 先考虑将方程组两两联立解开,如先解第一个与第二个,再用第一个与第二个的通解来解第三个... ... 
- 扩展中国剩余定理学习笔记+模板(洛谷P4777)
		题目链接: 洛谷 题目大意:求同余方程组 $x\equiv b_i(mod\ a_i)$ 的最小正整数解. $1\leq n\leq 10^5,1\leq a_i\leq 10^{12},0\leq ... 
- 扩展中国剩余定理(EXCRT)学习笔记
		扩展中国剩余定理(EXCRT)学习笔记 用途 求解同余方程组 \(\begin{cases}x\equiv c_{1}\left( mod\ m_{1}\right) \\ x\equiv c_{2} ... 
- P4777 【模板】扩展中国剩余定理(EXCRT)/ poj2891 Strange Way to Express Integers
		P4777 [模板]扩展中国剩余定理(EXCRT) excrt模板 我们知道,crt无法处理模数不两两互质的情况 然鹅excrt可以 设当前解到第 i 个方程 设$M=\prod_{j=1}^{i-1 ... 
- P4777 【模板】扩展中国剩余定理(EXCRT)
		思路 中国剩余定理解决的是这样的问题 求x满足 \[ \begin{matrix}x \equiv a_1(mod\ m_1)\\x\equiv a_2(mod\ m_2)\\ \dots\\x\eq ... 
- P4777 【模板】扩展中国剩余定理(EXCRT)&& EXCRT
		EXCRT 不保证模数互质 \[\begin{cases} x \equiv b_1\ ({\rm mod}\ a_1) \\ x\equiv b_2\ ({\rm mod}\ a_2) \\ ... ... 
随机推荐
- TCP协议的秘密武器:流量控制与拥塞控制
			TCP可靠性传输 相信大家都熟知TCP协议作为一种可靠传输协议,但它是如何确保传输的可靠性呢? 要实现可靠性传输,需要考虑许多因素,比如数据的损坏.丢失.重复以及分片顺序混乱等问题.如果不能解决这些问 ... 
- centos7.9 扩容swap分区
			情况说明:在VMware vsphere的虚拟化平台下,为了快速部署虚拟服务器,我们常常使用模板部署虚拟机.但真实业务有时要求的文件系统分区和大小常常与模板不同,这时便需要自定义硬件资源和使用 LVM ... 
- 前端CSS五中元素定位类型
			元素想通过底部.顶部.左侧.右侧属性定位是必须先设定position的属性值 posistion属性的五个值:static.relative.fixed.absoulte.sticky static定 ... 
- 数据结构与算法 | 链表(Linked List)
			链表(Linked List)是一种线性数据结构,它由一系列节点(Node)组成,每个节点包含两部分:数据和指向下(上)一个节点的引用(或指针).链表中的节点按照线性顺序连接在一起(相邻节点不需要存储 ... 
- Unity - UIWidgets 3. 页面跳转
			Flutter的Route概念, 移动开发常指Page, 在android中指activity, ios中指viewcontroller, UGUI中常称为Panel\Form\View? 大概说的就 ... 
- 自编码器AE全方位探析:构建、训练、推理与多平台部署
			本文深入探讨了自编码器(AE)的核心概念.类型.应用场景及实战演示.通过理论分析和实践结合,我们详细解释了自动编码器的工作原理和数学基础,并通过具体代码示例展示了从模型构建.训练到多平台推理部署的全过 ... 
- 如何使用SHC对Shell脚本进行封装和源码隐藏
			在许多情况下,我们需要保护我们的shell脚本源码不被别人轻易查看.这时,使用shc工具将shell脚本编译成二进制文件是一个有效的方法.本文将详细介绍如何在线和离线条件下安装shc,并将其用于编译你 ... 
- Python:基础&爬虫
			Python:基础&爬虫 Python爬虫学习(网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另 ... 
- stable-diffusion-webui官方版本地安装教程
			stable-diffusion-webui官方版本地安装教程 最终效果 1. python安装 官网:https://www.python.org/downloads/release/python- ... 
- 使用django 定时任务  (Django + celery + beat )
			安装 django + celery + results https://www.cnblogs.com/lanheader/p/13615772.html 安装 django-celery-beat ... 
