当前位置: 首页 > news >正文

扩展欧几里得

扩展欧几里得算法

a x + b y = d ax+by=d ax+by=d 的一组解, d = gcd ⁡ ( a , b ) d = \gcd(a,b) d=gcd(a,b)

辗转相除递归求解。

假设已经求出 b x + ( b m o d a ) y = d bx + (b \bmod a)y = d bx+(bmoda)y=d 的一组解。

a x + b y = b x ′ + ( b m o d a ) y ′ = b x ′ + ( b − b × ⌊ a b ⌋ ) y ′ = a y ′ + b ( x ′ − ⌊ a b ⌋ y ′ ) ax+by=bx'+(b\bmod a)y'\\ =bx'+(b-b \times \lfloor\frac{a}{b} \rfloor)y'\\ =ay'+b(x'- \lfloor\frac{a}{b}\rfloor y') ax+by=bx+(bmoda)y=bx+(bb×ba⌋)y=ay+b(xbay)

x = y ′ , y = x ′ − ⌊ a b ⌋ y ′ x = y', y = x' - \lfloor\frac{a}{b} \rfloor y' x=y,y=xbay。递归计算即可。 b = 0 b = 0 b=0 时,由辗转相除得 a = d a = d a=d,则 x = 1 , y = 0 x=1,y=0 x=1,y=0 显然是一组解。

void exgcd(int a, int b, int &x, int &y)
{if(b == 0) return x = 1, y = 0, void();exgcd(b, b%a, y, x), y -= (a / b) * x;
}

扩欧求逆元

a a a 在模 p p p 下得逆元,等价于求 a x ≡ 1 ( m o d p ) ax \equiv 1 \pmod p ax1(modp),等价于 a x + p y ≡ 1 ( m o d p ) ax +py \equiv 1 \pmod p ax+py1(modp) gcd ⁡ ( a , p ) = 1 \gcd(a,p)=1 gcd(a,p)=1 时才有解,即 a a a 有逆元。

裴属定理

我们对问题加以扩展,求解 a x + b y = c ax + by = c ax+by=c

裴属定理:方程有解当且仅当 gcd ⁡ ( a , b ) ∣ c \gcd(a,b) \mid c gcd(a,b)c

若方程有解,则用扩欧求出 a x + b y = d ax + by = d ax+by=d 对一组特解后乘以 c d \frac c d dc 即可(由裴属定理得 c d \frac c d dc 为整数)。

再找出特解后,加上 a x + b y = 0 ax+by=0 ax+by=0 的解即可得到该不定方程的通解。

http://www.lryc.cn/news/176313.html

相关文章:

  • MySQL 事务介绍 (事务篇 一)
  • nvm nodejs的版本管理工具
  • terraform简单的开始-vpc cvm创建
  • 【MySQL】开启 canal同步MySQL增量数据到ES
  • 密码学概论
  • 渗透测试中的前端调试(一)
  • SPA项目之登录注册--请求问题(POSTGET)以及跨域问题
  • Spring Cloud Alibaba Gateway全局token过滤、局部过滤访问时间超过50ms日志提示
  • 运算符 - Go语言从入门到实战
  • jupyterlab开发环境最佳构建方式
  • Qt_C++读写NFC标签Ntag支持windows国产linux操作系统
  • Web开发-基础知识扫盲
  • SpringMVC 学习(四)RestFul 风格
  • 消息中间件相关知识
  • JackJson多态
  • 孟晚舟最新发声!华为吹响人工智能的号角,发布“全面智能化”战略部署
  • open62541开发:添加sqlite3 历史数据库
  • 美国零售电商平台Target,值得入驻吗?如何入驻?
  • docker freeswitch mysql驱动相关
  • Chrome iframe 跨域失败
  • 【Vue】vue-cli一站式搭建SPA项目
  • CPP代码检查工具
  • 在SpringBoot中利用Redis实现互斥锁
  • vue3+eleement plus日历选择季度
  • 实现动态业务规则的方法(Java)
  • leetcodeTOP100(26)两数相加
  • performance_schema
  • 全新UI基于Thinkphp的最新自助打印系统/云打印小程序源码/附教程
  • Android 13.0 framework层系统手势增加上滑手势home事件功能(相当于Home键)
  • webp格式及其转成