13中国古代数学中的算法案例Word文档下载推荐.docx
- 文档编号:16965431
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:22
- 大小:162.04KB
13中国古代数学中的算法案例Word文档下载推荐.docx
《13中国古代数学中的算法案例Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《13中国古代数学中的算法案例Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
1+333
1813=333×
5+148
333=148×
2+37
148=37×
4+0
则37为8251与6105的最大公约数。
以上我们求最大公约数的方法就是辗转相除法。
也叫欧几里德算法,它是由欧几里德在公元前300年左右首先提出的。
利用辗转相除法求最大公约数的步骤如下:
第一步:
用较大的数m除以较小的数n得到一个商q0和一个余数r0;
第二步:
若r0=0,则n为m,n的最大公约数;
若r0≠0,则用除数n除以余数r0得到一个商q1和一个余数r1;
第三步:
若r1=0,则r1为m,n的最大公约数;
若r1≠0,则用除数r0除以余数r1得到一个商q2和一个余数r2;
……
依次计算直至rn=0,此时所得到的rn-1即为所求的最大公约数。
练习:
利用辗转相除法求两数4081与20723的最大公约数(答案:
53)
2.更相减损术
我国早期也有解决求最大公约数问题的算法,就是更相减损术。
更相减损术求最大公约数的步骤如下:
可半者半之,不可半者,副置分母·
子之数,以少减多,更相减损,求其等也,以等数约之。
翻译出来为:
任意给出两个正数;
判断它们是否都是偶数。
若是,用2约简;
若不是,执行第二步。
以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数。
继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数。
例2用更相减损术求98与63的最大公约数.
由于63不是偶数,把98和63以大数减小数,并辗转相减,即:
98-63=35
63-35=28
35-28=7
28-7=21
21-7=14
14-7=7
所以,98与63的最大公约数是7。
用更相减损术求两个正数84与72的最大公约数。
(答案:
12)
3.比较辗转相除法与更相减损术的区别
(1)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显。
(2)从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到
4.辗转相除法与更相减损术计算的程序框图及程序
利用辗转相除法与更相减损术的计算算法,我们可以设计出程序框图以及BSAIC程序来在计算机上实现辗转相除法与更相减损术求最大公约数,下面由同学们设计相应框图并相互之间检查框图与程序的正确性,并在计算机上验证自己的结果。
(1)辗转相除法的程序框图及程序
程序框图:
程序:
INPUT“m=”;
m
INPUT“n=”;
n
IFm<
nTHENx=m
m=n
n=x
ENDIF
r=mMODn
WHILEr<
>
0
m=n
n=r
WEND
PRINTm
END
5.课堂练习
一.用辗转相除法求下列各组数的最大公约数,并在自己编写的BASIC程序中验证。
(1)225;
135
(2)98;
196(3)72;
168(4)153;
119
二.思考:
用求质因数的方法可否求上述4组数的最大公约数?
可否利用求质因数的算法设计出程序框图及程序?
若能,在电脑上测试自己的程序;
若不能说明无法实现的理由。
三。
思考:
利用辗转相除法是否可以求两数的最大公倍数?
试设计程序框图并转换成程序在BASIC中实现。
6.小结:
辗转相除法与更相减损术求最大公约数的计算方法及完整算法程序的编写。
评价设计
作业:
P38A
(1)B
(2)
补充:
设计更相减损术求最大公约数的程序框图
2.割圆术
圆周率是一个极其驰名的数。
从有文字记载的历史开始,这个数就引进了外行人和学者们的兴趣。
作为一个非常重要的常数,圆周率最早是出于解决有关圆的计算问题。
仅凭这一点,求出它的尽量准确的近似值,就是一个极其迫切的问题了。
事实也是如此,几千年来作为数学家们的奋斗目标,古今中外一代一代的数学家为此献出了自己的智慧和劳动。
回顾历史,人类对π的认识过程,反映了数学和计算技术发展情形的一个侧面。
π的研究,在一定程度上反映这个地区或时代的数学水平。
直到19世纪初,求圆周率的值应该说是数学中的头号难题。
为求得圆周率的值,人类走过了漫长而曲折的道路,它的历史是饶有趣味的。
我国的刘徽创立了割圆术,给出了“割圆”的一般法则,后世的割圆家可能在π的近似值上估计得比他精密,但若论及创始的功劳,则他的地位是无人可以替代的。
刘徽是魏人,经历可能延长到晋朝,这是史家根据《隋书》记载的魏陈留王景元四年(263A.D.)刘徽注九章的文句推断出来的。
晋朝算学博士王孝通(《缉古算经》的作者)称赞他“思极毫芒”,推许他的著作“一时独步”。
他那极富原创性的《九章算术注》(附于现传本的《九章算术》内),及《重差术》(即现传的《海岛算经》)二部著作,的确是他不朽声名的最佳脚注。
刘徽的割圆术记载在九章算术第一卷方田章的第32题关于圆面积计算的注文里。
我们把它归纳为下列几点来加以说明。
一、刘徽首先指出利用π=3这一数值算得的结果不是圆面积,而是圆内接正十二边形的面积,这个结果比π的真值少。
二、他由圆内接正六边形算起,逐渐把边数加倍,算出正12边形、正24边形、正48边形、正96边形……的面积,这些面积会逐渐地接近圆面积。
设圆的半径为1,弦心距OG为
;
正n边形的边长AB为
,面积为
,根据各个勾股定理,得:
容易知道
三、已知正6边形一边(恰与半径等长,详见《九章算术》),即求得正12边形边长,……。
由正12边形求正24边形一边之长时,刘徽反复地应用到句股定理(或称商高、勾股定理),如下图:
正n边形的面积等于正n边形的面积加上n个等腰三角形的面积,即
另外,刘徽割圆术还注意到,如果在内接n边形的每一边上,做一高为CD的矩形,可得到:
这样,我们不仅可以计算出圆周率的不足近似值,还可以计算出过剩近似值。
可用Scilab语言写出求圆周率的不足近似值的程序。
学生利用TI-voyage200图形计算器操作:
(老师现场指导)
运行程序为:
用正多边形逐渐增加边数的方法来计算圆周率,在公元前200年左右,早为阿基米德(287?
~212B.C.)率先采用。
但阿阿基米德同时采用内接和外切两种入算,不如刘徽仅用内接,比较简便多了。
大家更加熟悉的是祖冲之所做出的贡献。
对此,《隋书·
律历志》有如下记载:
“宋末,南徐州从事祖冲之更开密法。
以圆径一亿为丈,圆周盈数三丈一尺四寸一分五厘九毫二秒七忽,朒数三丈一尺四寸一分五厘九毫二秒六忽,正数在盈朒二限之间。
密率:
圆径一百一十三,圆周三百五十五。
约率,圆径七,周二十二。
”
这一记录指出,祖冲之关于圆周率的两大贡献。
其一是求得圆周率
3.1415926<π<3.1415927
3.秦九韶算法与排序
1.了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质。
2.掌握数据排序的原理能使用直接排序法与冒泡排序法给一组数据排序,进而能设计冒泡排序法的程序框图及程序,理解数学算法与计算机算法的区别,理解计算机对数学的辅助作用。
模仿秦九韶计算方法,体会古人计算构思的巧妙。
能根据排序法中的直接插入排序法与冒泡排序法的步骤,了解数学计算转换为计算机计算的途径,从而探究计算机算法与数学算法的区别,体会计算机对数学学习的辅助作用。
通过对秦九韶算法的学习,了解中国古代数学家对数学的贡献,充分认识到我国文化历史的悠久。
通过对排序法的学习,领会数学计算与计算机计算的区别,充分认识信息技术对数学的促进。
1.秦九韶算法的特点
2.两种排序法的排序步骤及计算机程序设计
1.秦九韶算法的先进性理解
2.排序法的计算机程序设计
1.探究秦九韶算法对比一般计算方法中计算次数的改变,体会科学的计算。
2.模仿排序法中数字排序的步骤,理解计算机计算的一般步骤,领会数学计算在计算机上实施的要求。
我们已经学过了多项式的计算,下面我们计算一下多项式
当
时的值,并统计所做的计算的种类及计算次数。
根据我们的计算统计可以得出我们共需要10次乘法运算,5次加法运算。
我们把多项式变形为:
再统计一下计算当
时的值时需要的计算次数,可以得出仅需4次乘法和5次加法运算即可得出结果。
显然少了6次乘法运算。
这种算法就叫秦九韶算法。
1.秦九韶计算多项式的方法
例1已知一个5次多项式为
用秦九韶算法求这个多项式当
时的值。
略
(1)例1计算时需要多少次乘法计算?
多少次加法计算?
(2)在利用秦九韶算法计算n次多项式当
时需要多少次乘法计算和多少次加法计算?
利用秦九韶算法计算
时的值,并统计需要多少次乘法计算和多少次加法计算?
例2设计利用秦九韶算法计算5次多项式
时的值的程序框图。
程序框图如下:
利用程序框图试编写BASIC程序并在计算机上测试自己的程序。
2.排序
在信息技术课中我们学习过电子表格,电子表格对分数的排序非常简单,那么电子计算机是怎么对数据进行排序的呢?
阅读课本P30—P31面的内容,回答下面的问题:
(1)排序法中的直接插入排序法与冒泡排序法的步骤有什么区别?
(2)冒泡法排序中对5个数字进行排序最多需要多少趟?
(3)在冒泡法排序对5个数字进行排序的每一趟中需要比较大小几次?
游戏:
5位同学每人拿一个数字牌在讲台上演示冒泡排序法对5个数据4,11,7,9,6排序的过程,让学生通过观察叙述冒泡排序法的主要步骤.并结合步骤解决例3的问题.
例3用冒泡排序法对数据7,5,3,9,1从小到大进行排序
解:
P32
练习:
写出用冒泡排序法对5个数据4,11,7,9,6排序的过程中每一趟排序的结果.
例4设计冒泡排序法对5个数据进行排序的程序框图.
程序框图如下:
思考:
直接排序法的程序框图如何设计?
可否把上述程序框图转化为程序?
用直接排序法对例3中的数据从小到大排序
3.小结:
(1)秦九韶算法计算多项式的值及程序设计
(2)数字排序法中的常见的两种排序法直接插入排序法与冒泡排序法
(3)冒泡法排序的计算机程序框图设计
P38A
(2)(3)
设计程序框图对上述两组数进行排序
4.进位制
了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进行各种进位制之间的转换。
学习各种进位制转换成十进制的计算方法,研究十进制转换为各种进位制的除k去余法,并理解其中的数学规律。
领悟十进制,二进制的特点,了解计算机的电路与二进制的联系,进一步认识到计算机与数学的联系。
各进位制表示数的方法及各进位制之间的转换
除k去余法的理解以及各进位制之间转换的程序框图的设计
在学习各种进位制特点的同时探讨进位制表示数与十进制表示数的区别与联系,熟悉各种进位制表示数的方法,从而理解十进制转换为各种进位制的除k去余法。
我们常见的数字都是十进制的,但是并不是生活中的每一种数字都是十进制的.比如时间和角度的单位用六十进位制,电子计算机用的是二进制.那么什么是进位制?
不同的进位制之间又又什么联系呢?
进位制是一种记数方式,用有限的数字在不同的位置表示不同的数值。
可使用数字符号的个数称为基数,基数为n,即可称n进位制,简称n进制。
现在最常用的是十进制,通常使用10个阿拉伯数字0-9进行记数。
对于任何一个数,我们可以用不同的进位制来表示。
比如:
十进数57,可以用二进制表示为111001,也可以用八进制表示为71、用十六进制表示为39,它们所代表的数值都是一样的。
表示各种进位制数一般在数字右下脚加注来表示,如111001
(2)表示二进制数,34(5)表示5进制数.
电子计算机一般都使用二进制,下面我们来进行二进制与十进制之间的转化
例1把二进制数110011
(2)化为十进制数.
110011=1*25+1*24+0*23+1*24+0*22+1*21+1*20
=32+16+2+1
=51
例2把89化为二进制数.
根据二进制数满二进一的原则,可以用2连续去除89或所得商,然后去余数.
具体的计算方法如下:
89=2*44+1
44=2*22+0
22=2*11+0
11=2*5+1
5=2*2+1
所以:
89=2*(2*(2*(2*(2*2+1)+1)+0)+0)+1
=1*26+0*25+1*24+1*23+0*22+0*21+1*20
=1011001
(2)
这种算法叫做除2取余法,还可以用下面的除法算式表示:
把上式中的各步所得的余数从下到上排列即可得到89=1011001
(2)
上述方法也可以推广为把十进制化为k进制数的算法,这种算法成为除k取余法.
当数字较小时,也可直接利用各进位制表示数的特点,都是以幂的形式来表示各位数字,比如2*103表示千位数字是2,所以可以直接求出各位数字.即把89转换为二进制数时,直接观察得出89与64最接近故89=64*1+25
同理:
25=16*1+9
9=8*!
+1
即89=64*1+16*1+8*!
+1=1*26+1*24+1*23+1*20
位数
6
5
4
3
2
1
数字
即89=1011001
(2)
(1)把73转换为二进制数
(2)利用除k取余法把89转换为5进制数
把k进制数a(共有n位)转换为十进制数b的过程可以利用计算机程序来实现,语句为:
INPUTa,k,n
i=1
b=0
WHILEi<
=n
t=GETa[i]
b=b+t*k^(i-1)
i=i+1
PRINTb
(1)请根据上述程序画出程序框图.
参考程序框图:
(2)设计一个算法,实现把k进制数a(共有n位)转换为十进制数b的过程的程序中的GET函数的功能,输入一个正5位数,取出它的各位数字,并输出.
小结:
(1)进位制的概念及表示方法
(2)十进制与二进制之间转换的方法及计算机程序
P38A(4)
设计程序框图把一个八进制数23456转换成十进制数.
算法初步复习课
1.明确算法的含义,熟悉算法的三种基本结构:
顺序、条件和循环,以及基本的算法语句。
2.能熟练运用辗转相除法与更相减损术、秦九韶算法、排序、进位制等典型的算法知识解决同类问题。
在复习旧知识的过程中把知识系统化,通过模仿、操作、探索,经历设计程序框图表达解决问题的过程。
在具体问题的解决过程中进一步理解程序框图的三种基本逻辑结构:
顺序、条件分支、循环。
算法内容反映了时代的特点,同时也是中国数学课程内容的新特色。
中国古代数学以算法为主要特征,取得了举世公认的伟大成就。
现代信息技术的发展使算法重新焕发了前所未有的生机和活力,算法进入中学数学课程,既反映了时代的要求,也是中国古代数学思想在一个新的层次上的复兴,也就成为了中国数学课程的一个新的特色。
算法的基本知识与算法对应的程序框图的设计
与算法对应的程序框图的设计及算法程序的编写
利用实例让学生体会基本的算法思想,提高逻辑思维能力,对比信息技术课程中的程序语言的学习和程序设计,了解数学算法与信息技术上的区别。
通过案例的运用,引导学生体会算法的核心是一般意义上的解决问题策略的具体化。
面临一个问题时,在分析、思考后获得了解决它的基本思路(解题策略),将这种思路具体化、条理化,用适当的方式表达出来(画出程序框图,转化为程序语句)。
一.本章的知识结构
二.知识梳理
(1)四种基本的程序框
(2)三种基本逻辑结构
顺序结构条件结构循环结构
(3)基本算法语句
(一)输入语句
单个变量
INPUT“提示内容”;
变量
多个变量
INPUT“提示内容1,提示内容2,提示内容3,…”;
变量1,变量2,变量3,…
(二)输出语句
PRINT“提示内容”;
表达式
(三)赋值语句
变量=表达式
(四)条件语句
IF-THEN-ELSE格式
当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句1,否则执行ELSE后的语句2。
其对应的程序框图为:
(如上右图)
IF-THEN格式
计算机执行这种形式的条件语句时,也是首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句,如果条件不符合,则直接结束该条件语句,转而执行其他语句。
(五)循环语句
(1)WHILE语句
其中循环体是由计算机反复执行的一组语句构成的。
WHLIE后面的“条件”是用于控制计算机执行循环体或跳出循环体的。
当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体;
然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止。
这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句。
因此,当型循环有时也称为“前测试型”循环。
其对应的程序结构框图为:
(2)UNTIL语句
(3)算法案例
案例1辗转相除法与更相减损术
案例2秦九韶算法
案例3排序法:
直接插入排序法与冒泡排序法
案例4进位制
三.典型例题
例1写一个算法程序,计算1+2+3+…+n的值(要求可以输入任意大于1的正自然数)
sum=0
sum=sum+i
WEND
PRINTsum
在上述程序语句中我们使用了WHILE格式的循环语句,能不能使用UNTIL循环?
例2设计一个程序框图对数字3,1,6,9,8进行排序(利用冒泡排序法)
上述程序框图中哪些是顺序结构?
哪些是条件结构?
哪些是循环结构?
例3把十进制数53转化为二进制数.
53=1×
25+1×
24+0×
23+1×
22+0×
21+1×
20
=110101
(2)
例4利用辗转相除法求3869与6497的最大公约数与最小公倍数。
6497=3869×
1+2628
3869=2628×
1+1241
2628=1241*2+146
1241=146×
8+73
146=73×
2+0
所以3869与6497的最大公约数为73
最小公倍数为3869×
6497/73=344341
上述计算方法能否设计为程序框图?
P40A(3)(4)
(5)评价设计
P40A(5)(6)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 13 中国古代 数学 中的 算法 案例