解 二 元 一 次 方 程 — — — 拓 展 欧 几 里 得 算 法
欧几里得算法与扩展欧几里得算法(求二元一次不定方程、乘法逆元)
1.欧几里得算法,即辗转相除法。
用于求两个整数的最大公约数比较方便,时间复杂度为O(logN)N为两个整数的规模。
最大公约数,是能够同时被两个整数整除的最大整数。
比如说,求56和21的最大公约数:(每行数分别代表a=56,b=21,a%b)此时得到最大公约数为7。
递归代码如下:
int gcd(int a, int b)
return b ? gcd(b, a%b) : a;
2.扩展欧几里得算法
顾名思义,扩展欧几里得算法就是对欧几里得算法的扩展,可以应用于求二元一次方程的通解、乘法逆元等。
对于上面的欧几里得算法,当递归到出口时,a=7,b=0。
很容易就可以得到一组ax+by=7的解:x=1,y=0。
那么如何通过7x+y=7的解逆推出56x+21y=7的解呢?
对于欧几里得算法的每一个状态,都存在ax+by=gcd(a,b)的解,我们假设有这样两组解(且他们为相邻状态):
ax1+by1=gcd(a,b)
a'x2+b'y2=gcd(a',b')
那么可以知道:a'=b b'=a%b 且gcd(a',b')=gcd(b,a%b)=gcd(a,b),
所以有
ax1+by1=bx2+(a%b)y2 另a%b可写为 a-a-b
所以有 ax1+by1=bx2+(a-(a-b)b)y2
故ax1+by1=ay2+bx2+(a-b)by2
故ax1=ay2 by1 = b(x2+ (a-b)by2)
故 x1=y2 y1 = x2 +(a-b)y2
故可以得到x1,y1与x2,y2的关系 : x1=y2 y1 = x2 +(a-b)y2
我们已知的是最后一组解,那么就要根据最后一组解逆推上去,就可以得到ax+by=gcd(a,b)的一组解了。
代码如下:
int exgcd(int a, int b, intx, int y)
return a;
int r = exgcd(b, a%b, x, y); --递归到求出公约数,开始倒着求每一组的x,y。
最后就得到这样一组特解了。
y = t - (a - b)*y;
return r;
现在,通过扩展欧几里得算法,可以求出ax+by=gcd(a,b)的一组特解。
那么如何求其通解呢?
3.二元一次方程通解
假设求得的特解为ax0+by0=r ,r=gcd(a,b).
ax0+by0+ab*k-ab*k=r
a(x0+b*k)+b(y0-a*k)=r
x=x0+b*k 、y=y0-a*k
这样写,可能不同组解的跨度太大了,所以可以写成
x=x0+(b-r)*k 、 y=y0-(a-r)*k
对于ax+by =c,而c不是a和b的最大公约数,其通解可以用ax+by=gcd(a,b)的通解乘上 c-gcd(a,b)即可。
这里好像有一个贝祖定理::对于给定的正整数a,b,方程ax+by=c 有整数解的充要条件为c是gcd(a,b)的整数倍。
4.乘法逆元
另外,扩展欧几里得算法还可以用来求乘法逆元,首先看乘法逆元的定义:
如果ax≡1 (mod p),且gcd(a,p)=1(a与p互质),则称a关于模p 的乘法逆元为x。
通俗点讲就是 a*x的结果取余p为1。
这样就可以转换成求ax+py=1的解。
所以要求a*x+b*y=m,可以先求a*x+b*y=gcd(a,b).
Type?"help",?"copyright",?"credits"?or?"license"?for?more?in formation.
定义:对于不定方程:a*x + b*y = c,判断此不定方程有整数解的条件是gcd(a,b)|c
long long g = exgcd(b, a % b, x, y);
long long getInv3(long long a, long long p) {
基本算法:对于不完全为 0 的非负整数 a,b,gcd(a,b)表示 a,b 的最大公约数,必然存在整数对 x,y ,使得 gcd(a,b)=ax+by。
while(scanf("%d%d%d",a,b,k)!=EOF)
if(A==B) {cout"0"endl; continue;}
解释:设最大容量为 3 的是 A 号电容,另一个是 B 号电容,对应的操作是(充电 A)= (转移 A - B) = (充电 A)= (转移 A - B),这样 A 就是目标的 2 电量。
欧几里得算法。
《九章算术》读后感
《九章算术》读后感《九章算术》读后感(一)《九章算术》是我国著名的《算经十书》之一,是十部算经中最重要的一部,是周秦至汉代中国数学发展的一部总结性的有代表性的著作。
这部伟大的著作对以后中国古代数学发展所产生的影响,正象古希腊欧几里德《几何原本》对西方数学所产生的影响一样,是非常深刻的。
《九章算术》最初是由谁、在什么时候开始编纂的,现在已经难以确考了。
据数学史家们研究,这部著作是我国秦汉时期的数学家们历时一,二百年之久的智慧结晶,汇集了当时数学研究的主要成就,至迟在公元一世纪时形成了流传至今的定本。
在此后一千多年间,《九章算术》一直是我国的数学教科书。
它还影响到国外,朝鲜和日本也都曾把它当作教科书。
书中不少题目,后来还出现于印度的数学著作中,并且传到了中世纪的欧洲。
我国古代数学家刘徽(魏晋时人,生卒年不详)曾为该书作注。
《九章算术》是以数学问题集的形式编写的,共收集二百四十六个问题及各个问题的解答,按性质分类,每类为一章,计有方田、粟米、衰分,少广,商功、均输、盈不足、方程和勾股九章故称《九章算术》。
《九章算术》中的各类数学问题,都是从我国古代人民丰富的社会实践中提炼出来的,与当时的社会生产、经济,政治有着密切的联系。
在同一时期的世界其他国家和地区,很难找到一部数学著作象?九章算术》这样,包罗了如此丰富的深刻的数学知识。
《九章算术》的意义还远不止于它在中国数学史上的重要地位,更以一系列“世界之最”的成就,反映出我国古代数学在秦汉时期已经取得在全世界领先发展的地位。
这种领先地位一直保持到公元十四世纪初。
《九章算术》最早系统地叙述了分数约分,通分和四则运算的法则。
象这样系统的叙述,印度在公元七世纪时才出现欧洲就更迟了。
欧洲中世纪时作整数四则运算就够难的了。
作分数运算更是“难于上青天”,有一句西方谚语,形容一个人陷入困境,就说他“掉进分数里去了”。
《九章算术》读后感(二)《九章算术》在很多方面有突出的成就,反映了这一时期我国数学的发展水平。
解一元二次方程的方法
解一元二次方程的方法
一元二次方程是高中数学中的重要内容,解一元二次方程是我
们学习数学时需要掌握的基本技能。
本文将介绍两种解一元二次方
程的方法,因式分解法和求根公式法。
首先,我们来看因式分解法。
对于一元二次方程ax^2+bx+c=0,我们可以先利用因式分解的方法将其分解为两个一次因式相乘的形式,即(ax+m)(x+n)=0,然后令ax+m=0和x+n=0,分别求出x的值,即可得到方程的解。
举个例子,对于方程x^2+5x+6=0,我们可以将其分解为
(x+2)(x+3)=0,然后令x+2=0和x+3=0,解得x=-2和x=-3,即方程
的解为x=-2和x=-3。
其次,我们来看求根公式法。
一元二次方程ax^2+bx+c=0的根
可以通过求根公式x=(-b±√(b^2-4ac))/(2a)来求解。
其中,b^2-
4ac被称为判别式,当判别式大于0时,方程有两个不相等的实根;当判别式等于0时,方程有两个相等的实根;当判别式小于0时,
方程没有实根,但有两个共轭复根。
举个例子,对于方程x^2-4x+4=0,我们可以利用求根公式x=(-(-4)±√((-4)^2-414))/(21),化简后得到x=2,即方程的解为x=2。
综上所述,解一元二次方程的方法包括因式分解法和求根公式法。
通过掌握这两种方法,我们可以轻松解决一元二次方程的问题,提高数学解题的效率和准确性。
希望本文对大家有所帮助,谢谢阅读!。
《九章算术》的主要内容
不朽的古代数学名著——《九章算术》每当提起中国古代数学,肯定会提到《九章算术》。
《九章算术》是流传至今的我国一部古代数学典籍,根据考证,大约成书于东汉初期,作者姓名不详。
《九章算术》是中国古典数学的一部最重要的经典著作。
它总结了我国先秦至西汉的数学成果,形成以问题为中心的算法体系。
它是我国传统文化的一部分,有着鲜明的特色,对世界数学宝库作出了重要贡献。
我国杰出的古代数学家刘徽于魏景元四年(263年)首次注释《九章算术》;唐初,数学家李淳风于显庆元年(656年)奉命对《九章算术》也作了注释。
刘徽在《九章算术注序》中说:“往昔暴秦焚书,经术散坏,自时厥后,汉北平侯张苍、大司农中丞耿寿昌皆以善算命世。
苍等因旧文之遗残,各称删补。
”可见,在秦朝以前已有算书流传,但因受秦始皇焚书而散失,后来张苍和耿寿昌等收集了旧算书的残篇,进行了删补。
他们删补校订旧算书的目的显然是为了培养行政官吏,或教习官家子弟,以实用为宗旨。
1983年从湖北江陵张家山出土的西汉早年(约公元前180年左右)的竹简算书《算数书》,也是采用问题集的形式,并按算法将问题分类。
其中大部分算法术语,都出现在以后的《九章算术》之中,因此,《算数书》可能是《九章算术》的取材来源之一。
《九章算术》就是在这类算书的基础上,经过多人之手,不断补充、修改、增订而逐步形成的。
由于《九章算术》是我国古代数学教材之一,在民间流传较为广泛,所以,对我国古代数学的影响十分巨大。
《九章算术》对分数、正负数的记载是世界上早而有系统的论述。
这不仅早于欧洲,也比印度的有关记载早五、六世纪。
我国古代虽然没有无理数的明确记载,但是,《九章算术》里早有这一概念的萌芽。
刘徽意识到有一种开不尽方的数,为了近似地表示这种开不尽方的数,便创造了十进制分数。
刘徽十分重视比例算法,当比例算法传到欧洲时,欧洲人对比例算法也很重视,不但称为“黄金算法”,而且往往还把简单的问题化为比例问题去研究。
《九章算术》里提出的方程组的解法是“直除”法。
第五节 几何学的发展
5 若一直线落在两直线上所构成的同旁内角和小于两直 角,那么把两直线无限延长.它们将在同旁内角和小于 两直角的一侧相交. 欧几里得《原本》可以说是数学史上的第一座理论十 碑.它最大的功绩,是在于数学中演绎范式的确立,这 种范式要求一门学科中的每个 命题必须是在它之前已建立的一些命题的逻辑结论,而 所有这样的推理链的共同出发点,是一些基本定义和被 认为是不证白明的基本原理——公设或公理.这就是后 来所谓的公理化思想。 特点:概念清晰;定义明确;公理直观可靠而且普遍成 立;公设清楚可信且易于想象;公理数目少;引出量的 方式易于接受;证明顺序自然;
4.2 发展 德沙格(G.Desargues,1591—1661,法国) 1639年《试论圆锥与平面相交结果》 70多个射影几何术语, 无穷远点,无穷远线。 德沙格定理:“如果两个三角形对 应顶点连线共点,那么对应边的交 点共线,反之也成立” 交比不变性定理;对合;调和点组 线可以看作具有无限长半径的圆的 一部分;焦点相合的椭圆退化为圆; 焦点之一在无穷远的椭圆是一抛物 线等等。
5 非欧几何学(罗氏几何) 5.1 背景 欧几里得第五公设(平行公设):若一直线落在两直线 上所构成的同旁内角和小于两直角,那么把两直线无限 延长.它们将在同旁内角和小于两直角的一侧相交。 给定一条直线,通过此直线外的任何一点,有且只有一 条直线与之平行 证明或失败,或循环论证 萨特里(意大利)、吕格尔(德国)、兰伯特(瑞士)
第五节
几何学的发展
1 几何学简介 2 欧几里得几何学 3 解析几何 4 射影几何学 5非欧几何学 6 黎曼非欧几何 7 拓扑学 8 几何学的统一
1 几何学简介
几何学是研究空间关系的数学分支,有时简称为几何。 中文“几何”一词,为明代徐光启所创,希腊语原意为 “测地术”。 几何学的发展: 欧几里得几何学(约公元前300年); 解析几何学(17世纪); 射影几何学(18世纪); 非欧几何学(19世纪); 微分几何学(19世纪); 黎曼几何学(19世纪); 拓扑学(19世纪); 代数几何学(20世纪); 分形几何(20世纪)
简述欧几里德《几何原本》与公理化思想
简述欧几里德《几何原本》与公理化思想摘要:古希腊大数学家欧几里得是与他的巨著——《几何原本》一起名垂千古的。
该巨著产生的历史背景、主要内容以及所包含的公理化思想促进了几何学的发展,对数学的发展也有着重大的影响。
关键词:欧几里得;几何原本;公理化思想一、欧几里得“几何无王者之道”,说出这句话的人正是古希腊数学家欧几里得(公元前330~公元前275),他是古希腊最负盛名、最有影响的数学家之一,他也是亚历山大里亚学派的成员。
他是论证几何的集大成者,关于他的生平我们了解的甚少,根据有限的记载推断,欧几里得早年就学于雅典,在公元前300年左右,应托勒密王的邀请到亚历山大城教学。
他写过不少数学、天文、光学和音乐方面的著作,现存的有《原本》(Elements)、《数据》(Data)、《论剖分》(On Divisions)、《现象》(Phenomena)、《光学》(Optic)和《镜面反射》(Catoptrical)等,在这些著作当中,最著名的莫过于《原本》了,根据早期的翻译, 我们也称之为《几何原本》。
当时雅典就是古希腊文明的中心。
浓郁的文化气氛深深地感染了欧几里得,当他还是个十几岁的少年时,就迫不及待地想进入“柏拉图学园”学习。
“柏拉图学园”是柏拉图40岁时创办的一所以讲授数学为主要内容的学校。
在学园里,师生之间的教学完全通过对话的形式进行,因此要求学生具有高度的抽象思维能力。
数学,尤其是几何学,所涉及对象就是普遍而抽象的东西。
它们同生活中的实物有关,但是又不来自于这些具体的事物,因此学习几何被认为是寻求真理的最有效的途径.柏拉图甚至声称:“上帝就是几何学家。
”遂一观点不仅成为学园的主导思想,而且也为越来越多的希腊民众所接受。
人们都逐渐地喜欢上了数学,欧几里德也不例外。
他在有幸进入学园之后,便全身心地沉潜在数学王国里。
他潜心求索,以继承柏拉图的学术为奋斗目标,除此之外,他哪儿也不去,什么也不干,熬夜翻阅和研究了柏拉图的所有著作和手稿,可以说,连柏拉图的亲传弟子也没有谁能像他那样熟悉柏拉图的学术思想、数学理论。
数学的三个发展时期现代数学时期
数学的三个发展时期——现代数学时期现代数学时期是指由19世纪20年代至今,这一时期数学主要研究的是最一般的数量关系和空间形式,数和量仅仅是它的极特殊的情形,通常的一维、二维、三维空间的几何形象也仅仅是特殊情形。
抽象代数、拓扑学、泛函分析是整个现代数学科学的主体部分。
它们是大学数学专业的课程,非数学专业也要具备其中某些知识。
变量数学时期新兴起的许多学科,蓬勃地向前发展,内容和方法不断地充实、扩大和深入。
18、19世纪之交,数学已经达到丰沛茂密的境地,似乎数学的宝藏已经挖掘殆尽,再没有多大的发展余地了。
然而,这只是暴风雨前夕的宁静。
19世纪20年代,数学革命的狂飙终于来临了,数学开始了一连串本质的变化,从此数学又迈入了一个新的时期——现代数学时期。
19世纪前半叶,数学上出现两项革命性的发现——非欧几何与不可交换代数。
大约在1826年,人们发现了与通常的欧几里得几何不同的、但也是正确的几何——非欧几何。
这是由罗巴契夫斯基和里耶首先提出的。
非欧几何的出现,改变了人们认为欧氏几何唯一地存在是天经地义的观点。
它的革命思想不仅为新几何学开辟了道路,而且是20世纪相对论产生的前奏和准备。
后来证明,非欧几何所导致的思想解放对现代数学和现代科学有着极为重要的意义,因为人类终于开始突破感官的局限而深入到自然的更深刻的本质。
从这个意义上说,为确立和发展非欧几何贡献了一生的罗巴契夫斯基不愧为现代科学的先驱者。
1854年,黎曼推广了空间的概念,开创了几何学一片更广阔的领域——黎曼几何学。
非欧几何学的发现还促进了公理方法的深入探讨,研究可以作为基础的概念和原则,分析公理的完全性、相容性和独立性等问题。
1899年,希尔伯特对此作了重大贡献。
在1843年,哈密顿发现了一种乘法交换律不成立的代数——四元数代数。
不可交换代数的出现,改变了人们认为存在与一般的算术代数不同的代数是不可思议的观点。
它的革命思想打开了近代代数的大门。
另一方面,由于一元方程根式求解条件的探究,引进了群的概念。
一元二次方程的一般解法
一元二次方程的一般解法
1. 因式分解法:如果方程可以因式分解成两个一次因式的乘积,则可通过将每个一次因式分别置零求解得到方程的解。
2. 完全平方公式法:对一个二次三项式,可以利用完全平方公式,将其表示为一个平方项加上一个常数项,然后整理可得到方程的标准形式,并求解。
3. 配方法:当不能直接使用因式分解法时,可以通过配方法将一元二次方程转化为一个完全平方式或者去掉一次项。
通常配方法需要进行某些代数性质变形来达到目的。
4. 公式法:使用求根公式x=[-b±√(b^2-4ac)]/(2a),来求解二次方程,其中a, b, c 分别为二次、一次和常数项系数。
但需要注意这个公式只适用于满足b^2 - 4ac >0的情况下。
砚台的诗句
关于砚台的诗句1.吾家洗砚池头树,个个花开淡墨痕。
——王冕《墨梅》2.焚砚烧书,椎琴裂画,毁尽文章抹尽名。
——郑板桥《沁园春·恨》3.幽径草花聊适趣,閒窗笔砚不留尘。
——仇远《集虚书院》4.双双瓦雀行书案,点点杨花入砚池。
——叶采《暮春即事》5.使君滩头拣石砚,白帝城边寻野蔬。
——刘禹锡《送鸿举游江西》6.便觉砚中轰霹雳。
金钱亦不过求索。
——方回《赠寿昌墨客叶实甫》7.金銮并砚走龙蛇,无分同探阆苑花。
——龚自珍《已亥杂诗·93》8.曾与明皇捧砚来,美脸风流杀。
——白朴《醉中天·佳人脸上黑痣》9.山村小过活,老砚闲工课。
疏篱外玉梅三四朵。
——张可久《清江引·幽居》10.泪弹不尽当窗滴,就砚旋研墨。
——晏几道《思远人·红叶黄花秋意晚》11.笺麻素绢排数箱,宣州石砚墨色光。
——李白《草书歌行》12.青山白发老痴顽,笔砚生涯苦食艰。
——唐寅《贫士吟》13.洗砚修良策,敲松拟素贞。
——李白《冬日归旧山》14.窗底梅花瓶底老,瓶边破砚梅边好。
——杨万里《春兴·窗底梅花瓶底老》15.诗人忽然诗兴来,如何见砚不见梅。
——杨万里《春兴·窗底梅花瓶底老》16.急磨玄圭染霜纸,撼落花须浮砚水。
——杨万里《春兴·窗底梅花瓶底老》17.幸有烟波兴,宁辞笔砚劳。
——钱起《江行无题一百首》18.梦觉空堂月,诗成满砚冰。
——姚合《武功县中作三十首》19.冷砚欲书先自冻,孤灯何事独成花。
——苏轼《泗州除夜雪中黄师是送酥酒二首》20.吟来携笔砚,宿去抱衾裯.霁月当窗白,凉风满簟秋。
——白居易《重修香山寺毕,题二十二韵以纪之》21.延英引对碧衣郎,江砚宣毫各别床。
——王建《宫词一百首》22.众中偏得君王笑,偷把金箱笔砚开。
——王建《宫词一百首》23.笔砚行随手,诗书坐绕身。
——鱼玄机《寄刘尚书》24.棐几砚涵鸲鹆眼,古奁香斮鹧鸪斑。
——陆游《斋中杂题·棐几砚涵鸲鹆眼》25.池水正清洁,砚乱纵横。
浅谈几何的发展历程
意并译。
1607年出版的《几何原本》中关于几何的译法在当时并未通行,同时
代也存在着另一种译名——形学,如狄考文、邹立文、刘永锡编译的《形
学备旨》,在当时也有一定的影响。在1857年李善兰、伟烈亚力续译的《
几何原本》后9卷出版后,几何之名虽然得到了一定的重视,但是直到20世
纪初的时候才有了较明显的取代形学一词的趋势,如1910年《形学备旨》
十六世纪以后,由于生产和科学技术的发展 ,天文、力学、航海等方面都对几何学提出了新 的需要。比如,德国天文学家开普勒发现行星是 绕着太阳沿着椭圆轨道运行的,太阳处在这个椭 圆的一个焦点上;意大利科学家伽利略发现投掷 物体试验时,物体沿着抛物线运动的。这些发现 都涉及到圆锥曲线,要研究这些比较复杂的曲线 ,原先的一套方法显然已经不适应了,这就导致 了解析几何的出现。
• 在解析几何中,首先是建立坐标系。取定两条相互垂直的 、具有一定方向和度量单位的直线,叫做平面上的一个直 角坐标系oxy。利用坐标系可以把平面内的点和一对实数 (x,y)建立起一一对应的关系。除了直角坐标系外,还有 斜坐标系、极坐标系、空间直角坐标系等等。在空间坐标 系中还有球坐标和柱面坐标。
• 坐标系将几何对象和数、几何关系和函数之间建立了密 切的联系,这样就可以对空间形式的研究归结成比较成熟 也容易驾驭的数量关系的研究了。用这种方法研究几何学 ,通常就叫做解析法。这种解析法不但对于解析几何是重 要的,就是对于几何学的各个分支的研究也是十分重要的 。
• 解析几何的产生并不是偶然的。在笛卡尔写《几何学》以 前,就有许多学者研究过用两条相交直线作为一种坐标系 ;也有人在研究天文、地理的时候,提出了一点位置可由 两个“坐标”(经度和纬度)来确定。这些都对解析几何 的创建产生了很大的影响。
欧几里德算法又称辗转相除法
欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。
其计算原理依赖于下面的定理:定理:gcd(a,b) = gcd(b,a mod b)证明:a可以表示成a = kb + r,则r = a mod b假设d是a,b的一个公约数,则有d|a, d|b,而r = a - kb,因此d|r因此d是(b,a mod b)的公约数假设d 是(b,a mod b)的公约数,则d | b , d |r ,但是a = kb +r因此d也是(a,b)的公约数因此(a,b)和(b,a mod b)的公约数是一样的,其最大公约数也必然相等,得证[编辑本段]欧几里得算法原理Lemma 1.3.1 若a, b 且 a = bh + r, 其中h, r , 则gcd(a, b) = gcd(b, r).证明. 假设d1 = gcd(a, b) 且d2 = gcd(b, r). 我们证明d1| d2 且d2| d 1, 因而可利用Proposition 1.1.3(2) 以及d1, d2 皆为正数得证d1 = d2.因d1| a 且d1| b 利用Corollary 1.1.2 我们知d1| a - bh = r. 因为d1| b, d1| r 且d2 = gcd(b, r) 故由Proposition 1.2.5 知d1| d2. 另一方面, 因为d2| b 且d2| r 故d2| bh + r = a. 因此可得d2| d1.Lemma 1.3.1 告诉我们当 a > b > 0 时, 要求a, b 的最大公因数我们可以先将 a 除以 b 所得馀数若为r, 则a, b 的最大公因数等於 b 和r 的最大公因数. 因为0r < b < a, 所以当然把计算简化了. 接著我们就来看看辗转相除法. 由於gcd(a, b) = gcd(- a, b) 所以我们只要考虑a, b 都是正整数的情况.Theorem 1.3.2 (The Euclidean Algorithm) 假设a, b 且 a > b. 由除法原理我们知存在h0, r0 使得a = bh0 + r0, 其中0r0 < b.若r0 > 0, 则存在h1, r1 使得b = r0h1 + r1, 其中0r1 < r0.若r1 > 0, 则存在h2, r2 使得r0 = r1h2 + r2, 其中0r2 < r1.如此继续下去直到rn = 0 为止. 若n = 0 (即r0 = 0), 则gcd(a, b) = b.若n1, 则gcd(a, b) = rn - 1.证明. 首先注意若r0 0, 由於r0 > r1 > r2 > ... 是严格递减的, 因为r0 和0 之间最多仅能插入r0 - 1 个正整数, 所以我们知道一定会有nr0 使得rn = 0.若r0 = 0, 即 a = bh0, 故知 b 为 a 之因数, 得证 b 为a, b 的最大公因数. 若r0 > 0, 则由Lemma 1.3.1 知gcd(a, b) = gcd(b, r0) = gcd(r0, r1) = ... = gcd(rn - 1, rn) = gcd(rn - 1, 0) = rn - 1.现在我们来看用辗转相除法求最大公因数的例子Example 1.3.3 我们求 a = 481 和 b = 221 的最大公因数. 首先由除法原理得481 = 2 . 221 + 39, 知r0 = 39. 因此再考虑 b = 221 除以r0 = 39 得221 = 5 . 39 + 26, 知r1 = 26. 再以r0 = 39 除以r1 = 26 得39 = 1 . 2 6 + 13, 知r2 = 13. 最后因为r2 = 13 整除r1 = 26 知r3 = 0, 故由Theore m 1.3.2 知gcd(481, 221) = r2 = 13.在利用辗转相除法求最大公因数时, 大家不必真的求到rn = 0. 例如在上例中可看出r0 = 39 和r1 = 26 的最大公因数是13, 利用Lemma 1.3.1 马上得知gcd(a, b) = 13.在上一节Corollary 1.2.5 告诉我们若gcd(a, b) = d, 则存在m, n 使得 d = ma + nb. 当时我们没有提到如何找到此m, n. 现在我们利用辗转相除法来介绍一个找到m, n 的方法. 我们沿用Theorem 1.3.2 的符号. 首先看r0 = 0 的情形, 此时 d = gcd(a, b) = b 所以若令m = 0, n = 1, 则我们有 d = b = ma + nb. 当r0 0 但r1 = 0 时, 我们知 d = gcd(a, b) = r0. 故利用 a = bh0 + r0 知, 若令m = 1, n = - h0, 则 d = r0 = ma + nb. 同理若r0 0, r1 0 但r 2 = 0, 则知 d = gcd(a, b) = r1. 故利用 a = bh0 + r0 以及 b = r0h1 + r1知r1 = b - r0h1 = b - (a - bh0)h1 = - h1a + (1 + h0h1)b.因此若令m = - h1 且n = 1 + h0h1, 则 d = r1 = ma + nb. 依照此法, 当r0, r1 和r2 皆不为0 时, 由於 d = gcd(a, b) = rn - 1 故由rn - 3 = rn - 2hn - 1 + rn - 1 知 d = rn - 3 - hn - 1rn - 2. 利用前面推导方式我们知存在m1, m2, n1, n2 使得rn - 3 = m1a + n1b 且rn - 2 = m2a + n2b 故代入得d = (m1a + n1b) - hn - 1(m2a + n2b) = (m1 - hn - 1m2)a + (n1 - hn - 1n2)b.因此若令m = m1 - hn - 1m2 且n = n1 - hn - 1n2, 则 d = ma + nb.上面的说明看似好像当r0 0 时对每一个i {0, 1,..., n - 2} 要先将ri 写成r i = mia + nib, 最后才可将 d = rn - 1 写成ma + nb 的形式. 其实这只是论证时的方便, 在实际操作时我们其实是将每个ri 写成mi'ri - 2 + ni'ri - 1 的形式慢慢逆推回 d = ma + nb. 请看以下的例子.Example 1.3.4 我们试著利用Example 1.3.3 所得结果找到m, n 使得13 = gcd(481, 221) = 481m + 221n. 首先我们有13 = r2 = 39 - 26 = r0 - r1. 而r1 = 221 - 5 . 39 = b - 5r0, 故得13 = r0 - (b - 5r0) = 6r0 - b. 再由r 0 = 481 - 2 . 221 = a - 2b, 得知13 = 6(a - 2b) - b = 6a - 13b. 故得m = 6 且n = - 13 会满足13 = 481m + 221n.要注意这里找到的m, n 并不会是唯一满足 d = ma + nb 的一组解. 虽然上面的推演过程好像会只有一组解, 不过只能说是用上面的方法会得到一组解, 并不能担保可找到所有的解. 比方说若令m' = m + b, n' = n - a, 则m'a + n'b = (m + b)a + (n - a)b = ma + nb = d. 所以m', n' 也会是另一组解. 所以以后当要探讨唯一性时, 若没有充分的理由千万不能说由前面的推导过程看出是唯一的就断言是唯一. 一般的作法是假设你有两组解, 再利用这两组解所共同满足的式子找到两者之间的关系. 我们看看以下的作法.Proposition 1.3.5 假设a, b 且 d = gcd(a, b). 若x = m0, y = n0 是 d = ax + by 的一组整数解, 则对任意t , x = m0 + bt/d, y = n0 - at/d 皆为 d = ax + by 的一组整数解, 而且 d = ax + by 的所有整数解必为x = m0 + bt/d, y = n0 - at/d 其中t 这样的形式.证明. 假设x = m, y = n 是 d = ax + by 的一组解. 由於已假设x = m 0, y = n0 也是一组解, 故得am + bn = am0 + bn0. 也就是说a(m - m0) = b(n0 - n). 由于 d = gcd(a, b), 我们可以假设 a = a'd, b = b'd 其中a', b' 且gcd(a', b') = 1 (参见Corollary 1.2.3). 因此得a'(m - m0) = b'(n0 - n). 利用b'| a'(m - m0), gcd(a', b') = 1 以及Proposition 1.2.7(1) 得b'| m - m0. 也就是说存在t 使得m - m0 = b't. 故知m = m0 + b't = m0 + bt/d. 将m = m0 + bt/d 代回am + bn = am0 + bn0 可得n = n0 - at/d, 因此得证 d = a x + by 的整数解都是x = m0 + bt/d, y = n0 - at/d 其中t 这样的形式. 最后我们仅要确认对任意t , x = m0 + bt/d, y = n0 - at/d 皆为 d = ax + by 的一组整数解. 然而将x = m0 + bt/d, y = n0 - at/d 代入ax + by 得a(m0 +bt/d )+ b(n0 - at/d )= am0 + bn0 = d, 故得证本定理.利用Proposition 1.3.5 我们就可利用Example 1.3.4 找到13 = 481x + 2 21y 的一组整数解x = 6, y = - 13 得到x = 6 + 17t, y = - 13 - 37t 其中t 是13 = 481x + 221y 所有的整数解.[编辑本段]欧几里得算法设计辗转相除法是利用以下性质来确定两个正整数 a 和 b 的最大公因子的:1. 若r 是 a ÷b 的余数, 则gcd(a,b) = gcd(b,r)2. a 和其倍数之最大公因子为a。
