算法-扩展欧几里得
来源:互联网 发布:网络正常网页无法访问 编辑:程序博客网 时间:2024/05/22 14:01
以下部分内容摘自百度百科
最大公约数与最小公倍数的关系
设a,b的最大公约数为gcd,最小公倍数为lcm
这存在这样的关系:a * b=gcd * lcm
欧几里德算法
欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理:
gcd函数就是用来求(a,b)的最大公约数的。
gcd函数的基本性质:gcd(a,b)=gcd(b,a)=gcd(-a,b)=gcd(|a|,|b|)
公式表述 : gcd(a,b)=gcd(b,a mod b)
int gcd(int a,int b){ return b?gcd(b,a%b):a;}
扩展欧几里得算法
扩展欧几里德算法是用来在已知a, b求解一组x,y,使它们满足贝祖等式: ax+by = gcd(a, b) =d(解一定存在,根据数论中的相关定理)。扩展欧几里德常用在求解模线性方程及方程组中。对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然
存在整数对 x,y ,使得 gcd(a,b)=ax+by。
int gcd(int a,int b,int &x,int &y){ if (b==0){ x=1,y=0; return a; } int q=gcd(b,a%b,y,x); y-=a/b*x; return q;}
0 0
- 欧几里得算法&&扩展欧几里得算法
- 欧几里得算法/扩展欧几里得算法
- 欧几里得算法&&扩展欧几里得算法
- 欧几里得、扩展的欧几里得算法
- 欧几里得及欧几里得扩展算法
- 欧几里得、扩展的欧几里得算法 .
- 欧几里得与扩展欧几里得算法
- 欧几里得和扩展欧几里得算法
- 欧几里得和扩展欧几里得算法
- 欧几里得算法及扩展欧几里得
- 欧几里得和扩展欧几里得算法
- 欧几里得, 扩展欧几里得算法模板
- 欧几里得算法及其扩展
- 扩展的欧几里得算法
- 扩展的欧几里得算法
- 欧几里得扩展算法
- 扩展欧几里得算法
- 扩展欧几里得算法
- pthread多线程基础知识学习
- Android的四种点击事件
- 请求转发和重定向两种跳转方式的区别
- 【bzoj 3049】[Usaco2013 Jan]Island Travels(状压dp)
- 机器视觉方面的别人面试经验
- 算法-扩展欧几里得
- oracle 查询结果的排序,ASC/DESC,升序,降序,多列排序,ORDER BY
- 数据库中聚簇索引与非聚簇索引的区别
- 网站开发设置创建的JSP文件默认的代码
- 【模板】基础算法&&小算法
- 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字
- makefile
- [BZOJbegin][NOIP十连测热身赛b]escape(二分+bfs)
- Java堆、栈、常量池和String的详细讲解