定理

裴蜀定理(贝祖定理)是一个关于最大公约数的定理。

裴蜀定理说明了对任何整数a,b和它们的最大公约数d,关于未知数x和y的线性不定方程:若a,b是整数,且 g c d ( a , b ) = d gcd(a,b)=d gcd(a,b)=d,那么对于任意的整数x,y,ax+by都一定是d的倍数,特别的,一定存在整数x,y使ax+by=d成立。

重要推论

a、b互质的充分必要条件是存在整数x,y使 a x + b y = 1 ax+by=1 ax+by=1。

证明

设 d = g c d ( a , b ) d=gcd(a,b) d=gcd(a,b),则 d ∣ a , d ∣ b d\mid a,d\mid b d∣a,d∣b。由整除性质可得, ∀ x , y ∈ N \forall x,y\in \mathbb{N} ∀x,y∈N,有 d ∣ ( a x + b y ) d\mid(ax+by) d∣(ax+by)。

设 s s s为 a x + b y ax+by ax+by的最小正值 ⋯ ⋯ ( 1 ) \cdots\cdots(1) ⋯⋯(1)。

令 a ÷ s = q ⋯ r a\ \div\ s=q\cdots r a ÷ s=q⋯r,则 q = ⌊ a s ⌋ q=\lfloor \frac{a}{s}\rfloor q=⌊sa​⌋。

r = a − q ⋅ s = a − q ⋅ ( a x + b y ) = a − a ⋅ q x − b ⋅ q y r=a-q\cdot s=a-q\cdot(ax+by)=a-a\cdot qx-b\cdot qy r=a−q⋅s=a−q⋅(ax+by)=a−a⋅qx−b⋅qy。

r = a ( 1 − q x ) + b ( − q y ) r=a(1-qx)+b(-qy) r=a(1−qx)+b(−qy),故r也为a,b的线性组合。 ⋯ ⋯ ( 2 ) \cdots\cdots(2) ⋯⋯(2)

∵ r = a m o d s \because r=a\ mod\ s ∵r=a mod s,故 0 ≤ r < s 0\leq r < s 0≤r<s。 ⋯ ⋯ ( 3 ) \cdots\cdots(3) ⋯⋯(3)

∴ ( 1 ) ( 2 ) ( 3 ) ⇒ r = 0 \therefore (1)(2)(3) \Rightarrow r=0 ∴(1)(2)(3)⇒r=0

∴ a ÷ s = q \therefore a\div s=q ∴a÷s=q

∴ s ∣ a \therefore s\mid a ∴s∣a

同理可证 s ∣ b s|b s∣b

∵ { s ∣ a s ∣ b d = g c d ( a , b ) \because \left\{\begin{aligned} s|a\\ s|b\\ d=gcd(a,b) \end{aligned}\right. ∵⎩⎪⎨⎪⎧​s∣as∣bd=gcd(a,b)​

∴ d ≥ s \therefore d\ge s ∴d≥s

∵ d ∣ a , d ∣ b \because d\mid a,d\mid b ∵d∣a,d∣b,且s是a与b的一个线性组合

∴ d ∣ s \therefore d\mid s ∴d∣s

∵ d ∣ s , s > 0 \because d\mid s,s > 0 ∵d∣s,s>0

∴ d ≤ s \therefore d\leq s ∴d≤s

∵ d ≥ s , d ≤ s \because d\ge s,d\leq s ∵d≥s,d≤s

∴ d = s \therefore d=s ∴d=s

∴ a x + b y = d \therefore ax+by=d ∴ax+by=d

证毕。

求不定方程的解

设 d = g c d ( a , b ) d=gcd(a,b) d=gcd(a,b)

根据裴蜀定理可得到等式(贝祖等式): a x + b y = d ax+by=d ax+by=d

令 a ÷ b = ⌊ a b ⌋ ⋯ r a\div b=\lfloor\frac{a}{b}\rfloor\cdots r a÷b=⌊ba​⌋⋯r ,故 r = a − ⌊ a b ⌋ ⋅ b r=a-\lfloor\frac{a}{b}\rfloor\cdot b r=a−⌊ba​⌋⋅b

根据欧几里得算法, g c d ( a , b ) = g c d ( b , a % b ) = g c d ( b , r ) = d gcd(a,b)=gcd(b,a\%b)=gcd(b,r)=d gcd(a,b)=gcd(b,a%b)=gcd(b,r)=d

当 b = 0 b=0 b=0,可得到一组特殊解: x = 1 , y = 0 x=1,y=0 x=1,y=0

当 b ≠ 0 b\neq 0 b​=0,根据裴蜀定理:

b x ′ + r y ′ = d bx'+ry'=d bx′+ry′=d

= b x ′ + ( a − ⌊ a b ⌋ ⋅ b ) y ′ = d =bx'+(a-\lfloor\frac{a}{b}\rfloor\cdot b)y'=d =bx′+(a−⌊ba​⌋⋅b)y′=d

= b x ′ + a y ′ − b ⋅ ⌊ a b ⌋ y ′ = d =bx'+ay'-b\cdot\lfloor\frac{a}{b}\rfloor y'=d =bx′+ay′−b⋅⌊ba​⌋y′=d

= a y ′ + b ( x ′ − ⌊ a b ⌋ y ′ ) = d =ay'+b(x'-\lfloor\frac{a}{b}\rfloor y')=d =ay′+b(x′−⌊ba​⌋y′)=d

∵ \because ∵
{ a y ′ + b ( x ′ − ⌊ a b ⌋ y ′ ) = d a x + b y = d \left\{\begin{aligned} ay'+b(x'-\lfloor\frac{a}{b}\rfloor y')=d\\ ax+by=d \end{aligned}\right. ⎩⎨⎧​ay′+b(x′−⌊ba​⌋y′)=dax+by=d​
∴ \therefore ∴
{ x = y ′ y = x ′ − ⌊ a b ⌋ y ′ \left\{\begin{aligned} x&=y' \\ y&=x'-\lfloor\frac{a}{b}\rfloor y' \end{aligned}\right. ⎩⎨⎧​xy​=y′=x′−⌊ba​⌋y′​

即可发现x,y更新规律。

扩展欧几里得算法代码实现

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

裴蜀定理、拓展欧几里得及其证明相关推荐

  1. 浅谈 裴蜀定理扩展欧几里得

    裴蜀定理 a , b a,b a,b 是整数,且 gcd ⁡ ( a , b ) = d \gcd(a,b)=d gcd(a,b)=d,那么对于任意的整数 x , y x,y x,y, a x + b ...

  2. 浅谈扩展欧几里得定理(附裴蜀定理)

    关于扩展欧几里得定理 众所周知,扩展欧几里得定理是用来求形如(a,b,c皆为整数)这样的方程的一组解[注,仅是一组解]的定理 它的原理比较复杂,本人学了挺久才懂了一点,这里就不谈了,扩欧的核心是它的思 ...

  3. 关于欧几里得定理和拓展欧几里得定理的理解 续

    前言 在我大一刚开始ACM的时候,写过一篇关于欧几里得定理理解的博客,这几天因为再次用到欧几里得定理,所以又转回去看了看,感觉自己以前写的不是很清楚,所以决定再写一篇关于欧几里得定理以及拓展欧几里得定 ...

  4. 数学--数论--欧几里得定理和拓展欧几里得定理

    欧几里得定理: gcd(a, b) = gcd(b, a%b) 证明: 我们首先约定:m = gcd(a,b) , n = gcd(b, q) , a = b*p +q.(这里的gcd含义跟上面一样, ...

  5. 欧几里得定理 及 拓展欧几里得 小结

    [欧几里得定理] 定义: gcd ⁡ ( a , b ) = gcd ⁡ ( b , a m o d    b ) \gcd(a,b)=\gcd(b,a\mod b) gcd(a,b)=gcd(b,a ...

  6. 拓展欧几里得定理的应用

    扩展欧几里得定理的运用 首先,先重复一下拓展欧几里得的内容: 对于不全为 0 的整数a.b,一定存在一组解 x,y,使得 ax + by == gcd(a,b) 先说一下这个定理的三个用处(但是小细节 ...

  7. 裴蜀定理详解+例题: BZOJ 1441 MIN

    在数论中,裴蜀定理是一个关于最大公约数(或最大公约式)的定理 在数论中,裴蜀定理是一个关于最大公约数(或最大公约式)的定理.裴蜀定理得名于法国数学家艾蒂安·裴蜀,说明了对任何整数a.b和它们的最大公约 ...

  8. bzoj 2299(裴蜀定理)

    传送门 裴蜀定理主要内容(扩展欧几里得的理论基础):若a,b是整数,且gcd(a,b)=d,那么对于任意的整数x,y,ax+by都一定是d的倍数 题解: 设(a,b),(a,-b),(b,a),(b, ...

  9. CF510D Fox And Jumping(动态规划转换为最短路,O(n^2×2^9) -> O(nlogn),裴蜀定理应用)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 以下内容摘自 我的文章:算法竞赛中的数论问题 - 数论全家桶(信奥 / 数竞 / ACM)作者孟繁宇, ...

最新文章

  1. 同时打包多个场景_人机CP模式闯入“打包界”,智能设备让每一厘米纸箱物尽其用...
  2. gitlab 钩子 php,gitlab通过webhook.php自动部署标签
  3. C#动态属性(.NET Framework4.5支持)
  4. 图像处理之简单脸谱检测算法
  5. 懂AI值百万年薪?你不知道的开发者薪资榜单大盘点
  6. 从后端获取数据然后在页面处理技巧
  7. 【机器学习实战】——常见函数积累
  8. LeetCode 581. 最短无序连续子数组(Shortest Unsorted Continuous Subarray)
  9. 百分制转化为五级制java_javav 的日志-编写存储过程,将百分制成绩,转换成绩等级’A’,’B’,’C’,’D’,’E’...
  10. tooctalstring_Java Integer类toOctalString()方法的示例
  11. 教育部最新公布!2019年高校新增和撤销了这些本科专业
  12. linux设备驱动原理与本质
  13. 【Bye-Bye】MMD镜头+动作打包下载.zip
  14. 你见过凌晨4点的洛杉矶吗?写一个简单的投篮游戏
  15. 单片机工程师如何继续提升自己?
  16. mac添加Chrome插件的方法
  17. jquery基础学习记录
  18. lnoi2019游记
  19. eclipse的jar包在Linux中报错
  20. java全栈系列之JavaSE-面向对象(instanceof关键字与类型转换)039

热门文章

  1. K8s使用Ceph纠删码池做持久化卷
  2. k8s学习笔记——k8s pv rbd手动挂载
  3. 千峰java 笔记整理_JAVA学习笔记系列:菜鸟Vue学习笔记(四)
  4. 分析Perm()函数功能、代码、时间复杂度
  5. 供应链金融不同融资模式的风险应对措施
  6. dso与Android,DSO 安装及运行 —— dso_ros + Android 手机摄像头
  7. 解决Google和kaggle注册问题以及GitHub上项目的学习
  8. 电脑桌面显示两个计算机,电脑如何用两个显示器_怎么一台主机两个显示器-win7之家...
  9. 机器学习、计算机视觉面经整理(持续完善整理中……)
  10. 计算机能显示u盘吗,U盘插到电脑上,能检测到这设备,但是在“我的电脑”里没有显示U盘...