第三十章 数论——扩展中国剩余定理
创始人
2024-05-02 07:02:37
0

第三十章 数论——扩展中国剩余定理

  • 一、中国剩余定理的弊端
  • 二、扩展中国剩余定理
    • 1、作用
    • 2、内容
    • 3、问题
    • 4、代码

一、中国剩余定理的弊端

在第二十九章中,作者详细地讲解了中国剩余定理的使用,在开始本章节的讲解之前,建议读者先去看上一章节的讲解。传送门:中国剩余定理与线性同余方程组

中国剩余定理是用来解决线性同余方程组的,但是有一个很苛刻的要求就是:方程组中的同余方程的模数必须是互质的。只有这样我们才能套用中国剩余定理。

二、扩展中国剩余定理

1、作用

扩展中国剩余定理就是为了解决方程组中模数不互质的情况。

2、内容

{x≡a1mod(m1)x≡a2mod(m2)x≡a3mod(m3)...x≡anmod(mn)\begin{cases} x\equiv a_1\ mod(m_1)\\ x\equiv a_2\ mod(m_2)\\ x\equiv a_3\ mod(m_3)\\ ...\\ x\equiv a_n\ mod(m_n) \end{cases} ⎩⎧​x≡a1​ mod(m1​)x≡a2​ mod(m2​)x≡a3​ mod(m3​)...x≡an​ mod(mn​)​
我们取出前两个式子:

x≡a1mod(m1)x≡a2mod(m2)x\equiv a_1\ mod(m_1)\\ x\equiv a_2\ mod(m_2)\\ x≡a1​ mod(m1​)x≡a2​ mod(m2​)

这两个式子能够写成:
x=k1m1+a1x=k2m2+a2x=k_1m_1+a_1\\ x=k_2m_2+a_2 x=k1​m1​+a1​x=k2​m2​+a2​
两个式子相减:
k1m1+a1=k2m2+a2k_1m_1+a_1=k_2m_2+a_2k1​m1​+a1​=k2​m2​+a2​
将上面的式子移项:
k1m1−k2m2=a2−a1k_1m_1-k_2m_2=a_2-a_1k1​m1​−k2​m2​=a2​−a1​

我们把k1k_1k1​和−k2-k_2−k2​看作xkx_kxk​和yky_kyk​。

那么这个式子就可以写成:
xkm1+ykm2=(a2−a1)x_km_1+y_km_2=(a_2-a_1)xk​m1​+yk​m2​=(a2​−a1​)

根据我们的裴蜀定理:

如果gcd(m1,m2)∣(a2−a1)gcd(m_1,m_2)|(a_2-a_1)gcd(m1​,m2​)∣(a2​−a1​)

我们就能够根据扩展欧几里德算法计算出系数。

如果上述整除的关系不成立,说明这个式子是无解的。

我们现在来讨论整除关系成立的情况:

我们可以根据欧几里得算法计算出:

x0m1+y0m2=gcd(m1,m2)x_0m_1+y_0m_2=gcd(m1,m2)x0​m1​+y0​m2​=gcd(m1,m2)的特殊解。

为了得到我们的xkx_kxk​和yky_kyk​,我们需要给两遍同乘(a2−a1)gcd(m1,m2)\frac{(a_2-a_1)}{gcd(m_1,m_2)}gcd(m1​,m2​)(a2​−a1​)​

所以我们的xxx和yyy的特殊解可以写成:

xk1=x0∗(a2−a1)gcd(m1,m2)yk1=y0∗(a2−a1)gcd(m1,m2)x_{k1}=x_0*\frac{(a_2-a_1)}{gcd(m_1,m_2)}\\ y_{k1}=y_0*\frac{(a_2-a_1)}{gcd(m_1,m_2)}xk1​=x0​∗gcd(m1​,m2​)(a2​−a1​)​yk1​=y0​∗gcd(m1​,m2​)(a2​−a1​)​

但是这是一组特殊解:

当我们式子为:

x0m1+y0m2=n∗gcd(m1,m2)x_0m_1+y_0m_2=n*gcd(m1,m2)x0​m1​+y0​m2​=n∗gcd(m1,m2)

此时我们可以通过特殊解构造出一般解:

我们构造的原则是下面的等式恒成立

x0m1+y0m2=gcd(m1,m2)x_0m_1+y_0m_2=gcd(m1,m2)x0​m1​+y0​m2​=gcd(m1,m2)

因此我们给我们的特殊解进行如下变形:

xk=xk1+m2gcd(m1,m2)∗nyk=yk1−m1gcd(m1,m2)∗nx_k=x_{k1}+\frac{m_2}{gcd(m_1,m_2)}*n\\ y_k=y_{k1}-\frac{m_1}{gcd(m_1,m_2)}*nxk​=xk1​+gcd(m1​,m2​)m2​​∗nyk​=yk1​−gcd(m1​,m2​)m1​​∗n

我们将这两个式子带回:x0m1+y0m2=gcd(m1,m2)x_0m_1+y_0m_2=gcd(m1,m2)x0​m1​+y0​m2​=gcd(m1,m2)

发现依然是成立的。

所以我们构造的xkx_{k}xk​和yky_{k}yk​就是通解

此时带回我们的
x=k1m1+a1x=k_1m_1+a_1x=k1​m1​+a1​
我们前面是将k1k_1k1​看作了xkx_kxk​,所以我们的式子可以变形为:
x=m2∗m1gcd(m1,m2)∗n+xk1∗m1+a1x=\frac{m_2*m_1}{gcd(m_1,m_2)}*n+x_{k1}*m_1+a_1x=gcd(m1​,m2​)m2​∗m1​​∗n+xk1​∗m1​+a1​

而m2∗m1gcd(m1,m2)\frac{m_2*m_1}{gcd(m_1,m_2)}gcd(m1​,m2​)m2​∗m1​​就是我们的最小公倍数。因为:

最大公因数∗最小公倍数=两个数的乘积最大公因数*最小公倍数=两个数的乘积最大公因数∗最小公倍数=两个数的乘积

所以我们让:

lcm(m1,m2)=m2∗m1gcd(m1,m2)lcm(m_1,m_2)=\frac{m_2*m_1}{gcd(m_1,m_2)}lcm(m1​,m2​)=gcd(m1​,m2​)m2​∗m1​​

所以我们的式子可以化简为:
x=lcm(m1,m2)∗n+xk1m1+a1x=lcm(m_1,m_2)*n+x_{k1}m_1+a_1x=lcm(m1​,m2​)∗n+xk1​m1​+a1​

而这个式子可以写成:

x≡r(modm)x\equiv r(mod\ m)x≡r(mod m)

其中:

{r=k1m1+a1m=lcm(m1,m2)\begin{cases} r={k_1}m_1+a_1\\ m=lcm(m_1,m_2) \end{cases} {r=k1​m1​+a1​m=lcm(m1​,m2​)​

经过上述推导,我们将两个同余方程:

x=k1m1+a1x=k2m2+a2x=k_1m_1+a_1\\ x=k_2m_2+a_2 x=k1​m1​+a1​x=k2​m2​+a2​

合并成了一个同余方程:

x≡r(modm)x\equiv r(mod\ m)x≡r(mod m)

因此,我们只需要不断地去合并,经过n−1n-1n−1次合并,我们就能够把nnn个同余方程合并成一个同余方程。

当只有一个合并方程的时候,我们肯定就能够利用扩展欧几里得算法进行计算了。

3、问题

在这里插入图片描述

4、代码

#include 
#include 
using namespace std;
typedef long long LL;
LL exgcd(LL a, LL b, LL &x, LL &y)
{if (!b){x = 1, y = 0;return a;}LL d = exgcd(b, a % b, y, x);y -= a / b * x;return d;
}
int main()
{int n;cin >> n;LL x = 0, m1, a1;cin >> m1 >> a1;for (int i = 0; i < n - 1; i ++ ){LL m2, a2;cin >> m2 >> a2;LL k1, k2;LL d = exgcd(m1, m2, k1, k2);if ((a2 - a1) % d){x = -1;break;}k1 *= (a2 - a1) / d;k1 = (k1 % (m2/d) + m2/d) % (m2/d);x = k1 * m1 + a1;LL m = abs(m1 / d * m2);a1 = k1 * m1 + a1;m1 = m;}if (x != -1) x = (a1 % m1 + m1) % m1;cout << x << endl;return 0;
}

相关内容

热门资讯

常用商务英语口语   商务英语是以适应职场生活的语言要求为目的,内容涉及到商务活动的方方面面。下面是小编收集的常用商务...
六年级上册英语第一单元练习题   一、根据要求写单词。  1.dry(反义词)__________________  2.writ...
复活节英文怎么说 复活节英文怎么说?复活节的英语翻译是什么?复活节:Easter;"Easter,anniversar...
2008年北京奥运会主题曲 2008年北京奥运会(第29届夏季奥林匹克运动会),2008年8月8日到2008年8月24日在中华人...
英语道歉信 英语道歉信15篇  在日常生活中,道歉信的使用频率越来越高,通过道歉信,我们可以更好地解释事情发生的...
六年级英语专题训练(连词成句... 六年级英语专题训练(连词成句30题)  1. have,playhouse,many,I,toy,i...
上班迟到情况说明英语   每个人都或多或少的迟到过那么几次,因为各种原因,可能生病,可能因为交通堵车,可能是因为天气冷,有...
小学英语教学论文 小学英语教学论文范文  引导语:英语教育一直都是每个家长所器重的,那么有关小学英语教学论文要怎么写呢...
英语口语学习必看的方法技巧 英语口语学习必看的方法技巧如何才能说流利的英语? 说外语时,我们主要应做到四件事:理解、回答、提问、...
四级英语作文选:Birth ... 四级英语作文范文选:Birth controlSince the Chinese Governmen...
金融专业英语面试自我介绍 金融专业英语面试自我介绍3篇  金融专业的学生面试时,面试官要求用英语做自我介绍该怎么说。下面是小编...
我的李老师走了四年级英语日记... 我的李老师走了四年级英语日记带翻译  我上了五个学期的小学却换了六任老师,李老师是带我们班最长的语文...
小学三年级英语日记带翻译捡玉... 小学三年级英语日记带翻译捡玉米  今天,我和妈妈去外婆家,外婆家有刚剥的`玉米棒上带有玉米籽,好大的...
七年级英语优秀教学设计 七年级英语优秀教学设计  作为一位兢兢业业的人民教师,常常要写一份优秀的教学设计,教学设计是把教学原...
我的英语老师作文 我的英语老师作文(通用21篇)  在日常生活或是工作学习中,大家都有写作文的经历,对作文很是熟悉吧,...
英语老师教学经验总结 英语老师教学经验总结(通用19篇)  总结是指社会团体、企业单位和个人对某一阶段的学习、工作或其完成...
初一英语暑假作业答案 初一英语暑假作业答案  英语练习一(基础训练)第一题1.D2.H3.E4.F5.I6.A7.J8.C...
大学生的英语演讲稿 大学生的英语演讲稿范文(精选10篇)  使用正确的写作思路书写演讲稿会更加事半功倍。在现实社会中,越...
VOA美国之音英语学习网址 VOA美国之音英语学习推荐网址 美国之音网站已经成为语言学习最重要的资源站点,在互联网上还有若干网站...
商务英语期末试卷 Part I Term Translation (20%)Section A: Translate ...