首页 > 其他 > 详细

裴蜀定理

时间:2017-04-25 15:49:18      阅读:124      评论:0      收藏:0      [点我收藏+]

最大公约数:d = gcd(a,b)


裴蜀定理:存在u,v使得a*u + b*v = d


裴蜀定理特例:若a,b互质,gcd(a,b) = 1则存在u,v 使得a*u + b*v = 1


设 a = pd, b = qd, 则p,q互质(为什么?)

裴蜀定理  pdu + qdv = d ->pu + qv = 1

证明:

直接构造出u,v
au + bv = d
(a-b)u + b(u+v) = d
令a’ = a%b,     令t使得a = b*t + a’
t = (a-a’)/b
(a-tb)u + b(tu + v) = d
a’u + b(tu+v) = d
令v’ = tu+v, 得到a’u + bv’ = d

v = v’ – tu 若知道(u, v’)则可知道(u,v)

代码实现:

int gcd(int a, int b){
	return b==0?a:gcd(b,a%b);
}
int ex_gcd(int a,int b, int &u, int &v){
	If (b == 0){
		u = 1, v = 0;
		Return a;
	}
	int d = ex_gcd(b, a%b, v, u);//反转
	v = v - a/b *u;              //easy溢出
	return d;
}
看完了,认为用处不是非常大。找了一道题看了下。作为应用參考吧。

链接:http://blog.csdn.net/acdreamers/article/details/12347475

裴蜀定理

原文:http://www.cnblogs.com/tlnshuju/p/6762224.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!