证明:设 a>b。 
推理1,显然当 b=0,gcd(a,b)=a。此时 x=1,y=0;//推理1 
推理2,a*b!=0 时 
设 ax1+by1=gcd(a,b); 
bx2+(a mod b)y2=gcd(b,a mod b); 
根据朴素的欧几里德原理有 gcd(a,b)=gcd(b,a mod b); 
则:ax1+by1=bx2+(a mod b)y2; 
即:ax1+by1=bx2+...
                            
                            
                                分类:
编程语言   时间:
2015-05-14 23:50:21   
                                阅读次数:
177
                             
                    
                        
                            
                            
                                这是我算法学习标签下的第一篇随笔,首先我想声明,在看了很多博客后,我的想法就是,尽量不去盲目复制别人的东西,一个原因是盲目复制不一定能发现其文章中的错误,二是可以加深自己的理解程度,并且将博客写得通俗易懂,转载别人的东西一定要注明出处。还有我的一个习惯就是,把东西写短一点,所以有可能会将一个本来应在...
                            
                            
                                分类:
编程语言   时间:
2015-05-14 11:34:01   
                                阅读次数:
111
                             
                    
                        
                            
                            
                                #include#include#includechar str1[100],str2[100];int len;int cal(char *str1,char *str2){ int ret=0,i; for(i=0;str1[i]&&str2[i];i++) { ...
                            
                            
                                分类:
编程语言   时间:
2015-05-09 21:59:00   
                                阅读次数:
145
                             
                    
                        
                            
                            
                                写诗或者写程序的时候,我们经常要跟欧几里得算法打交道。然而有没要考虑到为什么欧几里得算法是有效且高效的,一些偏激(好吧,请允许我用这个带有浓重个人情感色彩的词汇)的计算机科学家认为,除非程序的正确性在数学上得到了完全严格的证实,否则我们不能认为程序是正确的。既然存在即合理,因此下面我就详细得解说一下...
                            
                            
                                分类:
编程语言   时间:
2015-05-07 20:23:35   
                                阅读次数:
167
                             
                    
                        
                            
                            
                                设a与b是非零整数,g=gcd(a,b).方程ax+by=g总是有一个整数解(x1,y1) (可利用扩展欧几里得算法解出),则方程的每一个解可由(x1+k*b/g,y1-k*a/g)得到,其中k可为任意整数。证明:先证明ax+by=1的情况(此时设gcd(a,b)=1)。 (1)若(x,y)是(1)...
                            
                            
                                分类:
其他好文   时间:
2015-04-22 23:57:06   
                                阅读次数:
220
                             
                    
                        
                            
                            
                                1 #include 2 using namespace std; 3 4 int gcd(int m , int n) 5 { 6 int r; 7 while(n!=0) 8 { 9 r = m%n;10 m = n;11 ...
                            
                            
                                分类:
编程语言   时间:
2015-04-21 09:26:19   
                                阅读次数:
143
                             
                    
                        
                            
                            
                                题目链接:Codeforces 492E Vanya and Field
通过拓展欧几里得算法求出每个位置在移动过程中,在x为0时,y的位置。统计相应y坐标最多的即为答案。
#include 
#include 
#include 
using namespace std;
const int maxn = 1e6 + 5;
const int maxm = 1e5 + 5;
typedef...
                            
                            
                                分类:
其他好文   时间:
2015-04-16 10:21:14   
                                阅读次数:
119
                             
                    
                        
                            
                            
                                欧几里得算法:用于求两个非负整数a、b的最大公因数(用gcd(a,b)表示)。这里用d表示,假设d一定存在。证明:由题设知d|a,d|b(d|a代表d能整除a,即a mod d=0)设a=kb+r,这里k和r都是整数。则r=a mod b。我们可以让a=n1d,b=n2d。则r=(n1-k*n2)d...
                            
                            
                                分类:
编程语言   时间:
2015-04-05 09:01:17   
                                阅读次数:
126
                             
                    
                        
                            
                            
                                辗转相除法可以用来计算两个整数的最大公因数(Dcd)。利用辗转相除法求最大公因数的步骤如下:第一步:用较大的数m除以较小的数n得到一个商q0和一个余数r0;第二步:若r0=0,则n为m,n的最大公因数;若r0≠0,则用除数n除以余数r0得到一个商q1和一个余数r1;第三步:若r1=0,则r1为m,n...
                            
                            
                                分类:
编程语言   时间:
2015-03-28 23:03:04   
                                阅读次数:
147