扩展欧几里得算法就是求: ax + by = gcd(a, b)的一组整数解(x, y)一、非递归的实现:首先看a = 60, b = 22的情况:表格左边是欧几里得算法,右边等式计算ax + by = gcd(a, b)的解a = 2 × b + 1616 = a - 2bb = 1× ...
分类:
其他好文 时间:
2014-07-21 09:35:19
阅读次数:
290
将式子变形为ax-c=my可以看出原式有解当且仅当线性方程ax-my=c有解设g = gcd(a, m)则所有形如ax-my的数都是g的倍数因此如果g不整除c则原方程无解。下面假设g整除c:利用扩展欧几里得算法解出 au + mv =g 一个特解(u0, v0)所以可用整数c/g乘上上式au0*(c...
分类:
其他好文 时间:
2014-07-21 00:35:53
阅读次数:
297
刚学习的扩展欧几里得算法,刷个水题
求解 线性不定方程 和 模线性方程
求方程 ax+by=c 或 ax≡c (mod b) 的整数解
1、ax+by=gcd(a,b)的一个整数解:
void ex_gcd(int a,int b,int &d,int &x,int &y)//扩展欧几里得算法
{
if(!b){d=a;x=1;y=0;}
else {ex_gcd(...
分类:
其他好文 时间:
2014-07-19 18:26:00
阅读次数:
226
UVA 10090 - Marbles
题目链接
题意:有两种盒子,一种代价c1,能装n1个珠子,一种代价c2,能装n2个珠子,问如何正好装n个珠子,并且使得代价最少。
思路:利用扩展欧几里得算法求出n1?x+n2?y=n的一个解(x′,y′)
就可以知道x,y的通解分别为
x=x′?n/gcd(n1,n2)+n2/gcd(n1,n2)?t
y=y′?n/gac(n1,n2)?...
分类:
其他好文 时间:
2014-06-18 00:44:40
阅读次数:
182