1、GCD 辗转相除法: 2、扩展欧几里得算法 由贝祖等式可知ax+by=gcd(a,b) 。(由此可推一般式: ax+by=d) 如果要解x , y 。由数学推导可知: 1、当b=0 时可知x=1,y=0。 2、当b!=0时,a*x1+b*y1=gcd(a,b), b*x2+(a%b)*y2=gc ...
分类:
其他好文 时间:
2018-02-02 00:46:30
阅读次数:
184
Preface 对于许多数论问题,都需要涉及到Gcd,求解Gcd,常常使用欧几里得算法。 对于许多求解问题,可以列出贝祖方程:ax+by=Gcd(a,b),用Exgcd解之即可到答案,Exgcd即扩展欧几里得算法。 这里是对于两个算法的学习小记 Content 欧几里得算法 由百度百科得 欧几里德算 ...
分类:
编程语言 时间:
2018-01-28 21:59:13
阅读次数:
197
【题意】给定a,b,c,在天平左边放置若干重量a的砝码,在天平右边放置若干重量b的砝码,使得天平两端砝码差为c。设放置x个A砝码和y个B砝码,求x+y的最小值。 【算法】数论(扩展欧几里德算法) 【题解】问题转化为求满足方程ax+by=c,|x|+|y|的最小值。 先用扩展欧几里得算法求得通解。 由 ...
分类:
编程语言 时间:
2018-01-19 15:40:45
阅读次数:
193
题目:http://poj.org/problem?id=1006 用扩展欧几里得算法求逆元,使用中国剩余定理; 本题较简单,可以手算直接写出,不过我仍使用了模板。 代码如下: ...
分类:
其他好文 时间:
2018-01-05 19:10:06
阅读次数:
104
void exgcd(ll a,ll b,ll &x,ll &y) { if(b==0){x=1;y=0;return;} exgcd(b,a%b,x,y); ll t=x;x=y;y=t-a/b*y; } ...
分类:
编程语言 时间:
2017-12-10 14:25:48
阅读次数:
164
------------------------------ ...
分类:
编程语言 时间:
2017-11-29 10:22:28
阅读次数:
196
欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b)=gcd(b,r),即gcd(a,b)=gcd(b,a%b)。 第一种证明: a可以表示成a = kb + r,则r = a mod b 假设d是a ...
分类:
编程语言 时间:
2017-11-19 19:46:24
阅读次数:
202
用途 当我们已知$(a,b)$ 扩展欧几里得算法可以求出满足$p*a+q*b=GCD(a,b)$的$(p,q)$解集 $GCD(a,b)$表示$a,b$的最大公约数 前导知识 $GCD(a,b)=GCD(b,a\%b)$ $GCD(a,0)=0$ $a\%b=a-a/b*b$ 推导过程 其实扩展欧几 ...
分类:
编程语言 时间:
2017-11-19 18:49:57
阅读次数:
179
http://172.20.6.3/Problem_Show.asp?id=1372 想法其实很好想,但是我扩展欧几里得还是用得不熟练,几乎是硬套模板,大概因为今天一个下午状态都不大好。扩展欧几里得算法计算的是 : ab互质时ax+by=1或ab不互质时ax+by=gcd(a,b)(废话)的一个整数 ...
分类:
其他好文 时间:
2017-11-05 19:17:42
阅读次数:
108
Solutions to an Equation LightOJ - 1306 一个基础的扩展欧几里得算法的应用。 解方程ax+by=c时,基本就是先记录下a和b的符号fla和flb(a为正则fla为1,为负则fla为-1,flb相同),然后对a和b取绝对值。求出ax+by=gcd(a,b)的一组解 ...
分类:
其他好文 时间:
2017-10-30 14:26:19
阅读次数:
170