第三十章 数论——扩展中国剩余定理
创始人
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;
}

相关内容

热门资讯

公司中秋晚会主持词 关于公司中秋晚会主持词  主持词分为会议主持词、晚会主持词、活动主持词、婚庆主持词等。在当今不断发展...
小学生职位竞选词 小学生职位竞选词  个人觉得竞选中队长,你已经很清楚中队长需要做的事情了,那么就从每一个任务来发展一...
在结婚典礼上的精彩幽默主持词 在结婚典礼上的精彩幽默主持词各位来宾:大家好!奉新郎新娘之命,我来主持今天的婚礼。为什么新郎新娘一定...
婚礼主持人搞笑台词 婚礼主持人搞笑台词  各位来宾:  大家好!奉新郎新娘之命,我来主持今天的婚礼,婚礼主持人搞笑台词。...
幼儿园运动会主持稿 幼儿园运动会主持稿  篇一:幼儿园运动会主持词  踏着春天的脚步,踩着春风的节拍,春天已经来到我们中...
小学庆元旦活动主持词 小学庆元旦活动主持词  利用在中国拥有几千年文化的诗词能够有效提高主持词的感染力。在当今社会生活中,...
爵士舞蹈串词主持词   爵士舞即美国现代舞,是一种急促又富动感的节奏型舞蹈,是属于一种外放性的舞蹈,不像古典芭蕾舞或现代...
幼儿园元旦节目主持词   齐x:亲爱的爸爸妈妈  周x:亲爱的爷爷奶奶  王x:亲爱的老师  李x:亲爱的小朋友们  合:...
运动会运动员赞美词 运动会运动员赞美词1.赞运动员是我们的目标,是我们的信念,在清凉的初秋,在喧嚣的田径场上,。你们点燃...
黄梅戏晚会的主持词 黄梅戏晚会的主持词  戏迷欢庆四一八 黄梅又添新奇葩  ——喜迎418暨欢庆黄梅戏艺术团成立的晚会台...
学校秋季运动会开幕主持词 学校秋季运动会开幕主持词(精选6篇)  主持词要注意活动对象,针对活动对象写相应的主持词。在当今社会...
庆祝五四文艺晚会主持稿 庆祝五四文艺晚会主持稿  男:尊敬的各位领导、来宾  女:电视机前的观众朋友们  合:大家好  男:...
最新品鉴会主持词 最新品鉴会主持词  鉴会现在开始!  女:各位领导,各位嘉宾  男:女士们、先生们  合:大家下午好...
端午节晚会主持词 精选端午节晚会主持词(通用8篇)  根据活动对象的不同,需要设置不同的主持词。时代不断在进步,很多场...
论坛一周年庆典晚会主持词 论坛一周年庆典晚会主持词  主持词是由主持人于节目进行过程中串联节目的串联词。如今的各种演出活动和集...
最新研讨会主持词 最新研讨会主持词(通用11篇)  主持词分为会议主持词、晚会主持词、活动主持词、婚庆主持词等。在现在...
重阳节的主持词 重阳节的主持词  主持词分为会议主持词、晚会主持词、活动主持词、婚庆主持词等。在人们越来越多的参与各...
记者节活动主持词 记者节活动主持词(精选7篇)  主持词没有固定的格式,他的最大特点就是富有个性。在现今人们越来越重视...
高校运动会开幕式精彩致辞 高校运动会开幕式精彩致辞  在平平淡淡的学习、工作、生活中,大家肯定对各类致辞都很熟悉吧,致辞具有思...