扩展中国剩余定理(EXCRT)

Published on7/29/2025
Created on 12/17/2021

扩展中国剩余定理(EXCRT,Extended Chinese remainder theorem)用于求解如下形式的一元线性同余方程组:

{xa1(mod m1)xa2(mod m2)xa3(mod m3)xan(mod mn)\begin{cases} x&\equiv a_1&(\mathrm{mod}\ m_1)\\ x&\equiv a_2&(\mathrm{mod}\ m_2)\\ x&\equiv a_3&(\mathrm{mod}\ m_3)\\ &\vdots\\ x&\equiv a_n&(\mathrm{mod}\ m_n)\\ \end{cases}

不同于普通中国剩余定理,扩展版本中不要求 m1,m2,,mnm_1,m_2,\dots,m_n 两两互质。

推导

我们先来考虑两个方程的情况:

{xa1(mod m1)xa2(mod m2)\begin{cases} x&\equiv a_1&(\mathrm{mod}\ m_1)\\ x&\equiv a_2&(\mathrm{mod}\ m_2)\\ \end{cases}

把同余式写成不定方程的形式:

m1p+a1=x=m2q+a2(p,qZ)m_1p+a_1=x=m_2q+a_2\quad(p,q\in\mathbb{Z})

移项,使其变为关于 ppqq 的丢番图方程的形式:

m1pm2q=a2a1m_1p-m_2q=a_2-a_1

接着就可以套用[[EXCRT]]中解这种不定方程的方法,根据[[裴蜀定理]],若 gcd(m1,m2)a2a1\gcd(m_1,m_2)\nmid a_2-a_1 则无解,其余情况下,我们可以解出一组 (p,q)(p,q) ,使 pp 为最小非负整数值,这时 x=m1p+a1x=m_1p+a_1 就为该方程组的最小非负整数解,注意到给 xx 加上任意数量的 lcm(m1,m2)\mathrm{lcm}(m_1,m_2) 方程依然满足,所以可以把方程组的解写为:

xm1p+a1(mod lcm(m1,m2))x\equiv m_1p+a_1 \quad(\mathrm{mod}\ \mathrm{lcm}(m_1,m_2))

把刚刚的方法看作“合并了两个同余式”,则对于多个方程的方程组,我们按照这样两两合并就可以了。 因此我们能归纳出以下的算法: