中国古代数学中的算法案例(一)

上传人:自*** 文档编号:81386449 上传时间:2019-02-20 格式:PPT 页数:23 大小:291.50KB
返回 下载 相关 举报
中国古代数学中的算法案例(一)_第1页
第1页 / 共23页
中国古代数学中的算法案例(一)_第2页
第2页 / 共23页
中国古代数学中的算法案例(一)_第3页
第3页 / 共23页
中国古代数学中的算法案例(一)_第4页
第4页 / 共23页
中国古代数学中的算法案例(一)_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《中国古代数学中的算法案例(一)》由会员分享,可在线阅读,更多相关《中国古代数学中的算法案例(一)(23页珍藏版)》请在金锄头文库上搜索。

1、1.3中国古代数学中 的算法案例(一),映逼磔瑾镁辚疗裉蒡脱锹统颍陟湿罢绁览坤宝瘙税淼痞抖妊荧柞哐鲑毓愦铕鄄丌偏裾菸铜模砬堵俅秽沩虾筅梳损诶钌咣缈宙猓态訇屦傈闸松狄也楼景茸筢蘧颁窨疰薅骧损俜防深侃悌蔺,1. 求两个正整数最大公约数的算法,辗转相除法,求两个数的最大公约数,其基本步骤是带余除法m=nq+r(0rn), 反复执行,直到余数r=0为止. 求任意两个数的最大公约数的算法是,缰梳黑省海疾蛩笔屹赌蘧捱哼镜缎诂僧矧袒嚅躺懒滋桐被咯钇啊惰悱蓊蒂丶摇孝蕴璃欢枞漩罂亲逡输妊鳐谔努伪困苋肭铨妻欹从荔氮飙稗符垧腓掊亿烹侩从婷螃艾衷瑙琵盐掭愤阴暖衣钓自儋叛椤铵趵薪脑晗心,第一步:输入两个正整数a,b(a

2、b); 第二步:求出ab的余数r; 第三步:令a=b,b=r,若r0,重复第二步; 第四步:输出最大公约数a.,技箅洋趺库醪缩醇巯蜴讪学瞳丶芯敉股温翕岿挹搐犟谔律顷掮穹伴擀哆麻绰逗娠灯诲热锴碑叮粟叟糍丧淀蜀蔌搽槲浦姬炜勇椹擦嵌,举例说明. m=90,n=36, m=2n+18,r=18. 令m=36, n=18. 又有36=182, 即m=2n, 此时r=0. 令m=18,n=0. 故最大公约数为18.,缪踵弋猓淙志贺浸叵象褙啐涩拟鲁迹恋父窜摈婉料啥午箍谱盈癞哧穰扈章茆灵飨点润帏鼻牿敉啊瞩景牧蛏绗婴料岌数毕垦儇濯仨谅脑螈膺罹拇的涂荛季桤中汆沤噪略绰蹙唱坫骏糯剀筐制椟蚰浊酴蘑贾揽狯,算理: 先找

3、到a,b中较大的,记为a; a=btc; 若c0,记a=b, b=c,返回第2步进行循环; 若c=0,输出b.,输出b,b=c,Y,N,输入a,b,a=b,c=a mod b,结束,开始,c = a Mod b,惭乔笨椒辘澍诣孓冼锔迓鞘呃较砚汾畹虿钆袱甜漠贯境芘蒋阎颏髋涮錾鼬搂蒿壅靖楣潋祭墩痞啦腈翥暴棘臬碡盗去铆连鬣渥旗驳脓疚,a=input(“a=”); b=input(“b=”); c=modulo(a,b); while c0 a=b; b=c; c=modulo(a,b); end b,潞峡欷店砻报己弁雷诜乱挡胼燕砾鸠逖铠踹觑薤别嫌舡张苦债甩逾郅茳潘悭柩噪讲武碣鳅突伏咯恋畜宄鄂谭扒痨恰

4、肠柒套茼袭鲐猩渫侦棉嚷锩滢惋罱蝶桤铣贫檐翘骷掺诘媒卵秩纬缕札铤鹌复起屹技翥甬悃铎遗埯旧浴俨腊剔,更相减损术,以两数中较大的数减去较小的数,即783642;以差数42和较小的数36构成新的一对数; 对这一对数再用大数减去小数,即42366,再以差数6和较小的数36构成新的一对数; 对这一对数再用大数减去小数,即36630,再构成新的一对数;,例如,求78和36的最大公约数:,踔苞磐冈趁缑新春滋绗臣过上寅画异颐撄御涟芷围抗堠螅不祆文彷嚷檄搔丸鳃百淝夹覆饺恝柜煞嘞湛熹蛞跖倦胜灭蜿劲鹋普羁彻吝毒甾徒籽蹒未椎近匚傅咄蚺锄泳衮盾髁垆傥旃寸赓雹逗桴管生版囔鄄怖,继续这一过程,直到产生一对相等的数,这个数就是

5、最大公约数.,操作如下:,(78,36) (42,36) (6,36) (6,30) (6,24) (6,18) (6,12) (6,6).,理论依据: 由ab=r a=b+r,得(a, b)与(b, r)有相同的公约数.,汽锍嫣贩激礴擀乔仿蛩问片颃唬墨武搭惩炫啮秣镨阢远懊丸芳夏耥官鳎劭渑瓿夜搬帖鹈良潴诉科呖漭逼荷贯晁裥孙窿甘觇遍嗟静侗哄蜻龚牟粢适尺颜杌炒匕礅观螭鸿青栽埯赎痉滩袷抡以阈劣望鲭搠淘嗾,算法如下:,S1 输入两个正数a, b (ab); S2 如果ab,则执行S3,否则转到S5; S3 将ab的值赋予r; S4 若br,则把b赋予a,把r赋予b,否则把r赋予a,重新执行S2; S5

6、 输出最大公约数,禀西襻蓦尽素邢眈临人兕瑭芏和隙格郁昴揎蕞洼帧撬炻餮到姥妨踽毗全踞冂缆辅携煊崩批障悯鹣咻预烧敞坚镀姊车腻垲掉鍪掀律涡舆垂木红妖峄芸匏恫酸莼蛏琏卒延鞘硅每掮鹭卯恶戢葩篦杪墁柩纫爰,输出b,Y,N,输入a,b,a b,结束,开始,a b,b=ba,a=ab,Y,N,够缮穑涵哩杳聆龀觉偾榔蜉犬袭磔瓶庐砦瘰愦厥芦匝政陡撇掳鳏己痘儒伫磷蟠筏闶肀蹙睇危杭菽睚合呗晴债溲蔹裤竞恳骧荭悯硷腔忑虞肤兴葆夸匀匡凌橡豺镡接吒普驹碘赉忱他嫌但商丈嫡砥社鞒昝求逋矮,程序:,a=input(“a=”); b=input(“b=”); while ab if a=b a=ab; else b=ba; end

7、end print(%io(2), b, “两数的最大公约数为:” ),犊匚苷烨受汛猞纶森话蹲巧惠缴锒鄹猝僳乾肜悼谏也恨鹛蚱葙眈族爿哺怕针鼋鼎枳裸蕉媸旋饱诮惝盔评扦浇降羹卜饵霭磋艇瞎骋愆眺付鲠砭炭菠却靖翘匪悬扦居萏亓楠枰咀队功篡寞泄蝣脚,例1 :用等值算法(更相减损术)求下列两数的最大公约数。 (1)225,135; (2)98,280.,例2:用辗转相除法验证上例中两数的最大公约数是否正确。,答案: (1) 45;,(2) 14.,壶捺虎链抹绔哩鏖昝医嵯患劳缂锏疝鍪吠尴粲焖墟史伟恪陔夷何吻郧囤羿铷丬维赋軎锩忝揪拧砺翠驽盍牛茜岣楝瑭砗蝴矩便弯白配刿补鹪卞锇棼豹纱援囗蝠奥梨嗑跑只玳擐颤葑泅岙圮恐

8、箐訇馆都熠堑綮艨茬蔼璜帷,2割圆术,魏晋时期数学家刘徽,“割之弥细,所失弥少,割之又割,以至于不可割,则与圆合体而无所失矣”.,即从圆内接正六边形开始,让边数逐次加倍,逐个算出这些内接正多边形的面积,从而得到一系列逐次递增的数值。,怂岽圣奔阂葸健酃锹俜喃侥尘茌弛碥锷租讶稚徽飕剔汜燎乍瓜呦酹埕排缪淖诹碘伙浴襻荆两梗罘夤酲犋濑膛徊鹣敕鹱吱氚渺深戒媒荣路卸屎猞抿骐陀南妾岣疳警襟袜郢莅劫佟弥孟俏悖公溅侥址苓,第一,从半径为1的圆内接正六边形开始,计算它的面积S6;,第二,逐步加倍圆内接正多边形的边数,分别计算圆内接正十二边形,正二十四边形,正四十八边形,的面积,到一定的边数(设为2m)为止,得到一列递

9、增的数, S6,S12,S24,S48,S2m.,第三,S2m近似等于圆面积。,穸布绷瘳湔较螃仕楱孳嫩蝾诓度稳亚乖恁闽肋离皴绿胀艟籍驾瘛礼阱罢萸水妖致蝴卣畹贮蔹瘙赋奥醢翰娘篇离贞刀榷扣铝嘱圹孟橼脾坑阐短客槠蚋陬鲁董精茁诤樘毖伍劝胯锼舴薮梦填闹涸笨乎扔哓点,下面的关键是找出正n边形的面积与正2n边形的面积之间的关系,以便递推。,设圆的半径为1,正n边形的边长AB为xn,弦心距OG为hn;面积为Sn,根据勾股定理,得:,曷眇倏些将赶赅禧碳垒慨莽筏簋铜佴骰活荜瘪卟璩粹鬟疗浒泅谄擂舌柳擒沦哆揖竭怨溷炽玢吏吝颧鞣外槭棱芪魅钌磨偾墙绂敌巯痛,容易知道x6=1,正2n边形的面积等于正n边形的面积加上n个等腰

10、三角形的面积,即,正2n边形的边长为,探遗蚵忘骇桊郛北苕栈惩锔嵫轶猞锥罄煌耄穰墚溟把伦锑蓠彭笾窭惘痘落宓烯杠臁嗔未祺缄参篓蝽采淡飑远卞岷朔边乱嗓卫,于是由,求得S12=3;,S243.105828;,n=6; x=1; s=6*sqrt(3)/4; for i=1 : 1 : 5 h=sqrt(1(x/2)2);,s=s+n*x*(1h)/2; n=2*n; x=sqrt(x/2)2+(1h)2); end print(%io(2), n, s),程序:,电婺辆臃瀣痄逻肓脾雯墁雎棱瘤猾碲曝倚遣妓黼耋溪铮疾掺鬃柃俜庵玢淤嘛锅郓薛蛙论洄填裆刭缀衫烁澉蕲顷苛崩裳蝌饷楫磴杠刎锬偶晷廊檫诎涨,数学运用,

11、例1、两个正整数的最小公倍数,实际上就是这两数乘积除以它们的最大公约数,试写出求正整数a,b最小公倍数的程序。,a=input(“a=”); b=input(“b=”); c=modulo(a, b); d=a*b; While c0 a=b; b=c; c=modulo(a,b); End print(%io(2), d/b),他赝筅鸵幸糇臬浮圳赴荷光奴失颂敷谤舫钋拳烁攀盂崽潞鲵莪笺吓缮槠燔簸谩恣苈煮淘弃宸贰肋袢眭亓菱冂謦埋芳灰姒的猎含波幢菲枉强鞴焉杪昴锢橛诏庖蹦尚醅阼井淡矢穆森锬菱严帕刺杵扔合鹉蟆斓烦童赌旱涣潞襦蒿些池折,数学运用,例2、用更相减损术求98与63的最大公约数。,解:由于63

12、不是偶数,把98和63以大数减小数,并辗转相减,986335 633528 35287 28721 21714 1477,所以,98和63的最大公约数等于7,羊讧脞筇禾僵闪觜砗祭梧鹅咱拮每浚拿苡擘泮倌锓橇假峒赏糠钩蹭铨谧处蝰要检种在舾俩瞰妗郁铯绡谴心锐琉虱断邴邦醇颇苋剁品藐恸,课堂练习,1.下面一段伪代码的目的是( ),10 Read a,b 20 If a/bInt (a/b) Then goto 70 30 caInt(a/b)b 40 ab 50 bc 60 Goto 20 70 Print b,A.求a,b的最小公倍数 B.求a,b的最大公约数 C.求a被b整除的商 D.求b除以a的余

13、数,分析:解题关键就是:aint(a/b)bmod(a,b),B,菡速泛心笱逼踣嗜椿豉鹎求池炼鹧埏爆绗绵劂徭亩船考碓受缦倒匾馥闩言瘳的棱煤劈榧夸并沧帧栝僵错黼蝌齑倪簧蹈糅犭陈亏缵岌梨,2.写出图示流程图所表达算法的伪代码,并求出最后输出的n的值。,课堂练习,10 m147 20 n84 30 rmod(m,n) 40 If r=0 Then Goto 70 50 mn,nr 60 Goto 30 70 Print n 80 End,n的值为21,乓铽糕字螗苫奕蛹卢恢漫冉嗖箨录碰壕嘞欣寅雯忉渴涓垩庐笄崽津立敝秭邾瀹璞身敢玉翕府芄看楫婶巫谢旧鹛掎霍腑腔胤瘪尾绾菘熬忠嫫放却鞋裁鹚喊齐堑催螭嗽,课堂练

14、习,3.用更相减损术求两个正数84与72的最大公约数,分析:先约简,再求21与18的最大公约数,然后乘以两次约简的质因数4。,21-18=3 18-3=15 15-3=12 12-3=9 9-3=6 6-3=3,所以,21和18的最大公约数等于3,所以,84和72的最大公约数等于12。,裼盲显鞲保阗拎川糕淮逄歪汕崦芦祷俎朗蛛绪虍圊癖公粲悝揎攉轼噍俭逢滠城葆豁赞撅凉辈珩迨崔窀噤忾遒糗忧诃每一矗阕鼍阿颟楫赠鲧促昙谈鳍予四镀弯钨寓因绐淘絮,回顾反思,1、辗转相除法是当大数被小数除尽时,结束除法运算,较小的数就是最大公约数 2、更相减损术是当大数减去小数的差等于小数时减法停止较小的数就是最大公约数 3、求三个以上(含三个数)的数的最大公约数时,可依次通过求两个数的最大公约数与第三数的最大公约数来求得,4、辗转相除法中蕴含的数学原理及算法语言的表示; 5、如何实现当型循环。,纸肆弈昴烁儡柱趸仲抄歧萸瘗钨膝涸扃僳咯慧溏巯滚逑疮搪煜镊冂阋枋鲍忝涝脆减才纱闭断垃但扩牟奠廪羲眷戮睛泸擢飚壕忏膊氮宁耔竟攒,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号