[数论]中国剩余定理

线性同余方程

给定三个整数 a , b , m a,b,m a,b,m,求一个整数 x x x使得 a ∗ x ≡ b ( m o d   m ) a*x\equiv b(mod \ m) axb(mod m)(有可能无解),其中未知数指数为1,则称此同余式为一次同余方程或线性同余方程

∵ a ∗ x ≡ b ( m o d   m ) \because a*x\equiv b(mod \ m) axb(mod m)

∴ a ∗ m − b 是 m 的 倍 数 \therefore a*m-b是m的倍数 ambm,设为 − y -y y倍。

原式得: a ∗ m + m ∗ y = b a*m+m*y=b am+my=b

由扩欧得,此方程当且当 g c d ( a , m ) ∣ b gcd(a,m)|b gcd(a,m)b时有解。

当有解时,用欧几里德算法求出一组解 x 0 , y 0 x_0,y_0 x0,y0,满足 a ∗ x 0 + m ∗ y 0 = g c d ( a , m ) a*x_0+m*y_0=gcd(a,m) ax0+my0=gcd(a,m)时, x = x 0 ∗ b / g c d ( a , m ) x=x_0*b/gcd(a,m) x=x0b/gcd(a,m),可求出一组特解

方程的特解就是所有模数 m / g c d ( a , m ) m/gcd(a,m) m/gcd(a,m) x x x同余的整数解

题目

给出你n个同余式,求解一个x满足一下同余式。

{ x ≡ a 1 ( m o d   m 1 ) x ≡ a 2 ( m o d   m 2 ) . . . . . . x ≡ a n ( m o d   m n ) \begin{cases}x\equiv a_1(mod\ m_1)\\x\equiv a_2(mod\ m_2)\\......\\x\equiv a_n(mod\ m_n)\end{cases} xa1(mod m1)xa2(mod m2)......xan(mod mn)

其中 m 1 , m 2 . . . m n m_1,m_2...m_n m1,m2...mn为两两互质的整数。

方法

m = ∏ i = 1 n m i m=\prod_{i=1}^{n} m_i m=i=1nmi, M i = m / m i M_i=m/m_i Mi=m/mi,是除 m i m_i mi以外所有模数的倍数, t i t_i ti是同余方程 M i t i ≡ 1 ( m o d   m i ) M_it_i\equiv1(mod\ m_i) Miti1(mod mi),

所以对于所有不等于 i i i的常数 k k k, a i M i t i ≡ 0 ( m o d   m k ) a_iM_it_i\equiv 0(mod\ m_k) aiMiti0(mod mk),代入 x = ∑ i = 1 n a i M i t i x=\sum_{i=1}^{n}a_iM_it_i x=i=1naiMiti

附言

以上便是模数两两互质的线性同余方程的一组特解,通解可表示为 x + k ∗ m ( k ∈ Z ) x+k*m(k\in Z) x+km(kZ),在题目要求我们求出最小解时, ( x + m ) (x+m) (x+m)% m m m.

广告

中国剩余定理都学了,不来学学扩中吗

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值