欧几里德算法与扩展(中国剩余定理)
来源:互联网 发布:java选择排序代码 编辑:程序博客网 时间:2024/05/21 17:49
1.欧几里德算法(最大公约数)
int gcd(int a,int b){ if(!b) return a; else return gcd(b,a%b);}
最小公倍数=a*b/gcd(a,b)
2.扩展欧几里德算法
该算法用于求二元一次方程:a*x+b*y=c;
原理:(1)a*x+b*y=gcd(a,b)一定有解,要想求出(2)a*x+b*y=c的解,必须满足c%gcd(a,b)==0, 结果为:方程(1)的解为x0,y0,则方程(2)的解为x=x0*c/gcd(a,b),y=y0*c/gcd(a,b);
注意:1. (x+k*b,y-k*a),都为方程(2)的解,k为任意值。
2. 最小非负解为:(x0 * (c / gcd(a,b)) % b + b) % b;
核心代码:
void ext_gcd(ll a,ll b,ll c,ll &x,ll &y) //a*x+b*y=c{ if(!b) {c=a;x=1;y=0;return;} ext_gcd(b,a%b,c,y,x); y-=a/b*x;}
0 0
- 欧几里德算法与扩展(中国剩余定理)
- pku1061(扩展欧几里德算法,中国剩余定理,模线性方程)
- 扩展欧几里德算法 线性同余方程 中国剩余定理
- 扩展欧几里德算法 线性同余方程 中国剩余定理
- 扩展欧几里德算法 线性同余方程 中国剩余定理
- 扩展欧几里德算法 线性同余方程 中国剩余定理
- 扩展欧几里德算法 线性同余方程 中国剩余定理
- 扩展欧几里德算法 线性同余方程 中国剩余定理
- 扩展欧几里德算法 线性同余方程 中国剩余定理
- 再说中国剩余定理、扩展欧几里德与同余方程组
- 扩展欧几里德与中国剩余定理学习笔记&&模版
- POJ 2891 扩展欧几里德&&中国剩余定理
- 【中国剩余定理 && 扩展欧几里德】 POJ
- 欧几里德算法及其扩展和中国剩余定理(暂时先写到这)
- 中国剩余定理与扩展
- 中国剩余算法及欧几里德的扩展
- [转]经典讲解: 扩展欧几里德算法 线性同余方程 中国剩余定理
- 扩展欧几里德 中国剩余定理 合并模线性方程组
- 彻底学会使用epoll(一)——ET模式实现分析
- Scala学习第十一弹 字符串
- 10014---Spring中如何配置Hibernate事务
- Xcode界面编辑器 could not insert new outlet connection
- storm安装
- 欧几里德算法与扩展(中国剩余定理)
- 最小生成树之kruskal算法
- CSS快速学习3:文本、背景等属性
- 机器学习研究会每周精华0814
- unity中UI的学习笔记——Text
- Android 内存检查
- Unity3d ugui(2) scrollBar的使用
- 使用python+机器学习方法进行情感分析(详细步骤)
- labe 加删除线