扩展gcd
来源:互联网 发布:C# js escape 编辑:程序博客网 时间:2024/05/18 20:10
相信大家已经学会如何解二元一次方程组了
对于
但是对于不定方程ax+by=c(a,b,c为整数)怎么求出其中一组整数解呢?
首先我们记
那么根据裴蜀定理(其实是一个东东),可得对于
设
那么对于方程ax+by=gcd(a,b)如何去解呢?
首先我们知道
prove:
若a < b ,则a%b=a ,gcd(b,a%b)=gcd(b,a)=gcd(a,b)
若a > b ,则a%b=a−kb(k∈N+)
设c=gcd(a,b),a=pc,b=qc 则p,q互质,a%b=(p−kq)c
∵gcd(q,kq)=q,p,q互质∴p−kq≡p(modq)∴gcd(q,p−kq)=1
∴gcd(b,a%b)=gcd(qc,(p−kq)c)=c=gcd(a,b)
有了上面这个定理后,方程可以进行如下变换:
我们设
令
对于任意a,b要使式子①成立有
当
所以扩展GCD是个以普通GCD为基础的递归。
代码如下:
void exGcd(long long a,long long b,long long &x,long long &y){ if(b==0){x=1,y=0;return;} exGcd(b,a%b,x,y); long long t=y;y=x-a/b*y;x=t; }
- 【扩展GCD】
- 扩展GCD
- 扩展GCD
- 扩展gcd
- 扩展gcd
- 扩展gcd
- GCD,快速GCD,扩展GCD
- gcd与扩展gcd
- gcd及扩展gcd
- gcd,扩展gcd
- GCD与扩展GCD
- GCD及其扩展GCD详解
- GCD及其扩展GCD详解
- GCD及其扩展GCD详解
- gcd以及扩展gcd详解
- 欧几里得-GCD及扩展
- 扩展GCD的运用
- poj1061_扩展gcd
- POJ3750 小孩报数问题【模拟】
- 写在前面
- 嵌入式C语言基础—杂记一
- python实现数据离散化
- 信任报道
- 扩展gcd
- 【FUTURE】麻省理工科技评论-年度10大突破性技术-导读
- Windows下TypeError numpy.float64 object cannot be interpreted as an index的解决
- 13.常用的函数
- 设计模式之策略模式
- java基础(二)
- 【Arch】Android input系统之input命令
- arm开发板上arecord 录音出现噪声的解决方法
- git 提交代码到github中(4)