拓展欧几里得算法及其应用 二元一次不定方程 线性同余方程 线性同余方程组 拓展中国剩余定理 模板

本文介绍了拓展欧几里得算法,用于解不定方程和线性同余方程。阐述了如何利用该算法求解模线性方程、乘法逆元以及线性同余方程组。还讨论了解决大数问题的策略,如使用__int128类型或自定义大数运算。算法复杂度分析指出,拓展欧几里得算法的时间复杂度为O(lnval),线性同余方程组的复杂度为O(nlnval)。
摘要由CSDN通过智能技术生成

拓展欧几里得算法

欧几里得算法直接使用g++中的<algorithm>库中__gcd()函数即可。

( a , b ) = ( b , a &VeryThinSpace; m o d &VeryThinSpace; b ) (a,b)=(b,a \bmod b) (a,b)=(b,amodb).

拓展欧几里得算法用于求出不定方程 a x + b y = ( a , b ) ax+by=(a,b) ax+by=(a,b)的一个特解 x 0 , y 0 x_0,y_0 x0,y0,
顺带求出 ( a , b ) (a,b) (a,b),[通解 x = x 0 + b ( a , b ) t , &ThinSpace; y = y 0 − a ( a , b ) t &ThickSpace; ( t ∈ Z ) x=x_0+\frac{b}{(a,b)}t,\,y=y_0-\frac{a}{(a,b)}t \; (t \in Z) x=x0+(a,b)bt,y=y0(a,b)at(tZ)]{}.

解不定方程

不定方程 a x + b y = c ax+by=c ax+by=c有解等价于 ( a , b ) ∣ c (a,b) \mid c (a,b)c.据此判断是否有解,若有解,假设有一组特解 x 0 ′ , y 0 ′ x_0^{&#x27;},y_0^{&#x27;} x0,y0,则它们的 c ( a , b ) \frac{c}{(a,b)} (a,b)c倍显然是原不定方程的一组特解。 x 0 = c ( a , b ) x 0 ′ , y 0 = c ( a , b ) y 0 ′ x_0=\frac{c}{(a,b)}x_0^{&#x27;},y_0=\frac{c}{(a,b)}y_0^{&#x27;} x0=(a,b)cx0,y0=(a,b)cy0,而通解依旧是 x = x 0 + b ( a , b ) t , &ThinSpace; y = y 0 − a ( a , b ) t &ThickSpace; ( t ∈ Z ) x=x_0+\frac{b}{(a,b)}t,\,y=y_0-\frac{a}{(a,b)}t \; (t \in Z) x=x0+(a,b)bt,y=y0(a,b)at(tZ).

求解模线性方程(线性同余方程)

a x ≡ c ( m o d m ) ⟺ a x + m y = c ax \equiv c\pmod{m} \Longleftrightarrow ax+my=c axc(modm)ax+my=c.

求乘法逆元

a b ≡ 1 ( m o d m ) ab \equiv 1 \pmod{m} ab1(modm),
则a关于模m的乘法逆元是b,b关于模m的乘法逆元是a。或者说 Z m Z_m Zm群中a和b互为乘法逆元。

用乘法逆元有 A b ≡ A × b − 1 ( m o d c ) \frac{A}{b} \equiv A \times b^{-1} \pmod{c} bAA×b1(modc).当左边的式子A是很大的数,而b是小规模数,且除出来的数一定是整数的时候,可以用右式边算边模。

求解
a x ≡ 1 ( m o d m ) ⟺ a x + m y = 1 ax \equiv 1 \pmod{m} \Longleftrightarrow ax+my= 1 ax1(modm)ax+my=1.解出的x即为解,只是注意需要用通解公式将 x x x调整到 Z m Z_m Zm范围内。

线性同余方程组

方程组 a i x ≡ c i ( m o d m i ) ( i = 1 , 2 , 3 , … , n ) a_ix \equiv c_i \pmod{m_i} \quad (i=1, 2, 3, \ldots, n)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值