高中数学算法案例(全套)教案苏教版必修3
高中数学 1.4《算法案例3》教案 苏教版必修3
算法案例(3)教学目标(1)二分法主要是采用了循环结构处理问题要会分析类似的问题;(2)GoTo 语句的认识及其他语句的进一步熟悉;(3)能由流程图分析出期所含有的结构并用为代码表示出相应的算法.教学重点二分法的算法思想和算法表示.教学过程一、问题情境必修1中我们学习了二分法求方程的近似解,大家还能想起二分法的求解步骤吗?二、案例讲解:案例:写出用区间二分法求解方程310x x --=在区间[1,1.5]内的一个近似解(误差不超过0.001)的一个算法.(1)算法设计思想:如图,如果估计出方程()0f x =在某区间[,]a b 内有一个根*x ,就能用二分法搜索求得符合误差限制c 的近似解.(2)算法步骤可以表示为:1S 取[,]a b 的中点02a b x +=,间区间一分为二; 2S 若0()0f x =,则0x 就是方程的根,否则判断根*x 在0x 的左侧还是后侧;若0()()0f a f x >,则*0(,)x x b ∈,以0x 代替a ;若0()()0f a f x <,则*0(,)x a x ∈,以0x 代替b ;3S 若||a b c -<,计算终止,此时*0x x ≈,否则转1S .(3)流程图:(4)伪代码1:R ea d a ,b ,c 02a b x +←While ||a b c -≥ And 30010x x --≠ If 3(1)a a --⨯300(1)x x --<0 Then0b x ←Else0a x ←End If02a b x +← End WhilePrint 0x伪代码2:10 Read ,,a b c20 0()2a b x +←30 3()1f a a a ←--40 3000()1f x x x ←-- 50 If 0()0f x = Then GoTo 12060 If 0()()0f a f x < Then70 0b x ←80 Else90 0a x ←100 End If110 If ||a b c -≥ Then GoTo 20120 Print 0x二分搜索的过程是一个多次重复的过程,故可以用循环结构来处理(代码1),课本解法是采用GoTo 语句实现的(代码2)。
(苏教版)必修3算法教案
(第1课时) §1.1 算法的含义教学目标:1.通过实例体会算法思想,了解算法的含义与主要特点;2.能按步骤用自然语言写出简单问题的算法过程学;3.培养学生逻辑思维能力与表达能力.教学重点:将问题的解决过程用自然语言表示为算法过程.教学难点:用自然语言描述算法.教学过程:一.序言算法不仅是数学及其应用的重要组成部分,也是计算机理论和技术的核心.在现代社会里,计算机已经成为人们日常生活和工作不可缺少的工具.听音乐、看电影、玩游戏、打字、画卡通画、处理数据,计算机几乎渗透到了人们生活的所有领域.那么,计算机是怎样工作的呢?要想弄清楚这个问题,算法的学习是一个开始.同时,算法有利于发展有条理的思考与表达的能力,提高逻辑思维能力.在以前的学习中,虽然没有出现算法这个名词,但实际上在数学教学中已经渗透了大量的算法思想,如四则运算的过程、求解方程的步骤等等,完成这些工作都需要一系列程序化的步骤,这就是算法的思想.阅读教材第4页.二.问题情境1.情境:介绍猜数游戏(见教材第5页).2.问题:解决这一问题有哪些策略,哪一种较好?三.学生活动学生容易说出“二分法策略”,教师要引导学生进行算法化(按步骤)的表达.说明:以上过程实际上是按一种机械的程序进行的一系列操作.四.建构数学在解决某些问题时,需要设计出一系列可操作或可计算的步骤,通过实施这些步骤来解决问题,通常把这些步骤称为解决这些问题的算法.1.广义的算法——某一工作的方法和步骤,例如:歌谱是一首歌曲的算法,空调说明书是空调使用的算法.在数学中,现代意义上的“算法”通常是指可以用计算机来解决的某一类问题的程序.2.本章主要讨论的算法(计算机能够实现的算法)——对一类问题的机械的、统一的求解方法.例如:解方程(组)的算法,函数求值的算法,作图问题的算法等.3.本节采用自然语言来描述算法.五.数学运用1.算法描述举例例1.给出求1+2+3+4+5的一个算法.解: 算法1 按照逐一相加的程序进行. 第一步:计算1+2,得到3;第二步:将第一步中的运算结果3与3相加,得到6; 第三步:将第二步中的运算结果6与4相加,得到10;第四步:将第三步中的运算结果10与5相加,得到15.算法2 运用公式123n ++++=2)1(+n n 直接计算.第一步:取n =5;第二步:计算2)1(+n n ;第三步:输出运算结果.算法3 用循环方法求和. 第一步:使1S =,; 第二步:使2I =; 第三步:使S S I =+;第四步:使1I I =+;第五步:如果5I ≤,则返回第三步,否则输出S . 说明:①一个问题的算法可能不唯一.②若将本例改为“给出求123100++++的一个算法”,则上述算法2和算法3表达较为方便.例2.给出求解方程组274511x y x y +=⎧⎨+=⎩的一个算法. 分析:解线性方程组的常用方法是加减消元法和代入消元法,这两种方法没有本质的差别,为了适用于解一般的线性方程组,以便于在计算机上实现,我们用高斯消元法(即先将方程组化为一个三角形方程组,在通过回代过程求出方程组的解)解线性方程组. 解:用消元法解这个方程组,步骤是:第一步:方程①不动,将方程②中x 的系数除以方程①中x 的系数,得到乘数422m ==;第二步:方程②减去m 乘以方程①,消去方程②中的x 项,得到 2733x y y +=⎧⎨=-⎩; 第三步:将上面的方程组自下而上回代求解,得到1y =-,4x =.所以原方程组的解为41x y =⎧⎨=-⎩. 说明:(1).从例1、例2可以看出,算法具有两个主要特点: ①有限性:一个算法在执行有限个步骤后必须结束.“有限性”往往指在合理的范围之内,如果让计算机执行一个历时1000年才结束的算法,这虽然是有限的,但超过了合理的限度,人们也不把它视作有效算法.“合理限度”一般由人们的常识和需要以及计算机的性能而定. ②确定性:算法的每一个步骤和次序应当是确定的. 例如,一个健身操中一个动作“手举过头顶”,这个步骤就是不确定的、含糊的.是双手都举过头,还是左手或右手?举过头顶多少厘米不同的人可以有不同的理解.算法中的每一个步骤不应产生歧义,而应当是明确无误的.(2).一般来说,算法应有一个或多个输出,算法的目的是为了求解,没有输出的算法是没有意义的.2.练习:课本第6页练习第1、2、3题.练习1答案:第一步 移项得23x =-; 第二步 两边同除以2得32x =-. 练习2答案:第一步:使1S =,;第二步:使3I =;第三步:使S S I =⨯;第四步:使2I I =+;第五步:如果7I ≤,则返回第三步,否则输出S .练习3答案:第一步 计算斜率203(1)AB k -=--;第二步 用点斜式写出直线方程0(1)AB y k x -=+.补充:1.一个人带三只狼和三只羚羊过河,只有一条船,同船可以容纳一个人和两只动物.没有人在的时候,如果狼的数量不少于羚羊的数量,狼就会吃掉羚羊.请设计过河的算法.解:算法或步骤如下: S1 人带两只狼过河; S2 人自己返回;S3 人带一只羚羊过河; S4 人带两只狼返回; S5 人带两只羚羊过河; S6 人自己返回; S7 人带两只狼过河; S8 人自己返回; S9 人带一只狼过河.2.写出求111123100++++的一个算法. 解:第一步:使1S =,;第二步:使2I =;第三步:使1n I=;第四步:使S S n =+; 第五步:使1I I =+;第六步:如果100I ≤,则返回第三步,否则输出S .六.回顾小结1.算法的概念:对一类问题的机械的、统一的求解方法.算法是由基本运算及规定的运算顺序所构成的完整的解题步骤,或者是按照要求设计好的有限的计算序列,并且这样的步骤或序列能解决一类问题. 2.算法的重要特征:(1)有限性:一个算法在执行有限步后必须结束; (2)确切性:算法的每一个步骤和次序必须是确定的;(3)输入:一个算法有0个或多个输入,以刻划运算对象的初始条件.所谓0个输入是指算法本身定出了初始条件.(4)输出:一个算法有1个或多个输出,以反映对输入数据加工后的结果.没有输出的算法是毫无意义的. 七、课外作业:课本第6页第4题, 补充:1. 有A 、B 、C 三个相同规格的玻璃瓶,A 装着酒精,B 装着醋,C 为空瓶,请设计一个算法,把A 、B 瓶中的酒精与醋互换.2.写出解方程0322=--x x 的一个算法.3.已知),(11y x A ,),(22y x B ,写出求直线AB 斜率的一个算法.4.“鸡兔同笼”是我国隋朝时期的数学著作《孙子算经》中的一个有趣而具有深远影响的题目:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?” 请你先列出解决这个问题的方程组,并设计一个解该方程组的算法.(第2课时) §1.2 流程图与顺序结构教学目标:1.了解流程图的概念,了解常用流程图符号(输入输出框、处理框、判断框、起止框、流程线等)的意义;2.能用程序图表示顺序结构的算法;3.发展学生有条理的思考与表达能力,培养学生的逻辑思维能力. 教学重点:运用流程图表示顺序结构的算法. 教学难点:规范流程图的表示. 教学过程: 一.问题情境1.情境:回答下面的问题: (1)123100++++= ; (2)123n ++++= ;2.问题:已知1232006n ++++>,求n 的最小值,试设计算法.二.学生活动学生讨论,教师引导学生进行表达. 解:1S 取1n =;2S 计算2)1(+n n ; 3S 若(1)20062n n +>,则输出n ;否则,使1n n =+,转2S .上述算法可以用框图直观地描述出来: 教师边讲解边画出第7页图521--. 这样的框图我们称之为流程图.三.建构数学 1.流程图的概念:流程图是用一些规定的图形、指向线及简单的文字说明来表示算法几程序结构的一种图形程序.它直观、清晰,便于检查和修改.其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,带箭头的流程线(指向线)表示操作的先后次序.2.构成流程图的图形符号及其作用(课本第7页),结合图形讲解. 3.规范流程图的表示: ①使用标准的框图符号;②框图一般按从上到下、从左到右的方向画,流程线要规范; ③除判断框外,大多数框图符号只有一个进入点和一个退出点. ④在图形符号内描述的语言要非常简练、清楚.4.从流程图521--可以看出,该算法步骤中,有些是按顺序执行,有些需要选择执行,而另外一些需要循环执行.事实上,算法都可以由顺序结构、选择结构、循环结构这三块“积木”通过组合和嵌套表达出来. 5.顺序结构的概念:依次进行多个处理的结构称为顺序结构.四.数学运用 1.顺序结构举例例1.写出作ABC ∆的外接圆的一个算法. 解: 1S 作AB 的垂直平分线1l ;2S 作BC 的垂直平分线2l ;3S 以1l 与2l 的交点M 为圆心,MA 为半径作圆,圆M 即为ABC ∆的外接圆. 说明:1.以上过程通过依次执行1S 到3S 这三个步骤,完成了作外接圆这一问题,这种依次进行多个处理的结构就是顺序结构.2.上述算法的流程图如下图1所示,它是一个顺序结构.图1例2.已知两个单元分别存放了变量x 和y 的值,试交换这两个变量值. 说明:1.在计算机中,每个变量都分配了一个存储单元,它们都有各自的地址. 2.为了表达方便,我们用符号“p x ←”表示“把x 赋给p ”(见教材第1页)解:为了达到交换的目的,需要一个单元存放中间变量p . 算法是:1S p x ←; {先将x 的值赋给变量p ,这时存放变量x 的单元可作它用} 2S x y ←; {再将y 的值赋给x ,这时存放变量x 的单元可作它用}3S y p ←. {最后将p 的值赋给y ,两个变量x 和y 的值便完成了交换}说明:上述算法的流程图如图2所示,它是一个顺序结构.图2例3.半径为r 的圆的面积计算公式为2S r π=,当10r =时,写出计算圆面积的算法,画出流程图. 解:算法如下:1S 10r ←; 2S 2S r π←; 3S 输出S .说明:上述算法的流程图如右图所示,它是一个顺序结构.2.练习:课本第9页练习第1、2题.五.回顾小结 1.流程图的概念:流程图是用一些规定的图形、指向线及简单的文字说明来表示算法几程序结构的一种图形程序.它直观、清晰,便于检查和修改. 2.画流程图的步骤:首先用自然语言描述解决问题的一个算法,再把自然语言转化为流程图; 3.顺序结构的概念:依次进行多个处理的结构称为顺序结构. 六.课外作业:课本第14页习题第1,3题. 补充:已知华氏温度F 与摄氏温度C 的转换公式是:C F =⨯-95)32(,写出一个算法,并画出流程图,使得输入一个华氏温度F ,输出其相应的摄氏温度C .p x ← x y ← y p ←↓ ↓ ↓↓(第3课时)§1.2 选择结构教学目标:1.进一步理解流程图的概念,了解选择结构的概念能运用流程图表达选择结构; 2.能识别简单的流程图所描述的算法;3.发展学生有条理的思考与表达能力,培养学生的逻辑思维能力. 教学重点:运用流程图表示选择结构的算法.教学难点:规范流程图的表示以及选择结构算法的流程图. 教学过程: 一.问题情境 1.情境:某铁路客运部门规定甲、乙两地之间旅客托运行李的费用为0.53,50500.53(50)0.85,50,c ωωωω⨯≤⎧=⎨⨯+-⨯>⎩其中ω(单位:kg )为行李的重量.试给出计算费用c (单位:元)的一个算法,并画出流程图.二.学生活动学生讨论,教师引导学生进行表达. 解:算法为:1S 输入行李的重量ω;2S 如果50ω≤,那么0.53c ω=⨯,否则500.53(50)0.85c ω=⨯+-⨯;3S 输出行李的重量ω和运费c .上述算法可以用流程图表示为: 教师边讲解边画出第9页图526--.在上述计费过程中,第二步进行了判断. 三.建构数学 1.选择结构的概念:先根据条件作出判断,再决定执行哪一种 操作的结构称为选择结构.如图:虚线框内是一个选择结构, 它包含一个判断框,当条件p 成立(或称条件p 为“真”)时执行A ,否则执行B .2.说明:(1)有些问题需要按给定的条件进行分析、比较和判断,并按判断的不同情况进行不同的操作,这类问题的实现就要用到选择结构的设计;(2)选择结构也称为分支结构或选取结构,它要先根据指定的条件进行判断,再由判断的结果决定执行两条分支路径中的某一条;(3)在上图的选择结构中,只能执行A 和B 之一,不可能既执行A ,又执行B ,但A 或B 两个框中可以有一个是空的,即不执行任何操作;(4)规范流程图图框的形状要规范,判断框必须画成菱形,它有一个进入点和两个退出点.3.思考:教材第7页图521--所示的算法中,哪一步进行了判断? 四.数学运用 1.选择结构举例例1.(教材第10页例3)设计求解一元二次方程20(0)ax bx c a ++=≠的一个算法,并画出流程图.分析:由于一元二次方程未必总有实数根,因此,求解时,要先计算判别式24b ac ∆=-,然后比较∆与0的大小,再决定能否用求根公式求解.所以,在算法中应含有选择结构.解:算法如下:1S 输入,,a b c ;2S 24b ac ∆←-;3S 如果0∆<,则输出“方程无实数根”,否则12b x a -←,22b x a--←,并输出1x ,2x .算法流程图如右.思考:如果要输出根的详细信息(区分是两个相等的实数根还是不等的实数根),如何 修改上述算法和流程图?例2解:1S 输入任意实数x ;2S 若0≥x ,则y x ←;否则y x ←-; 3S 输出y . 算法流程图如右.2.练习:课本第11页练习第1、2、3题.五.回顾小结1.选择结构的概念:先根据条件作出判断,再决定执行哪一种操作的结构称为选择结构.2.理解选择结构的逻辑以及框图的规范画法,选择结构主要用在判断、分类或分情况的问题解决中.说明:[]x表示不大于x的最大整数(或称x的整数部分),如:[2.6]2=.作业中可以使用此符号.六.课外作业:课本第14页习题第2,5题.补充:1.已知函数32,()5x xf xx x+⎧=⎨⎩为奇数,为偶数,写出当x为整数时求()f x的算法,并画出流程图.2.任意给定3个正实数,设计一个算法,判断分别以这3个数为三边边长的三角形是否存在,并画出这个算法的流程图.(第4课时)§1.2 循环结构教学目标:1.了解循环结构的概念,能运用流程图表示循环结构;2.能识别简单的流程图所描述的算法;3.发展学生有条理的思考与表达能力,培养学生的逻辑思维能力.教学重点:运用流程图表示循环结构的算法.教学难点:规范流程图的表示以及循环结构算法的流程图.教学过程:一.问题情境1.情境:北京获得了2008年第29届奥运会的主办权。
高中数学 算法案例教案 苏教版必修3
2014高中数学 算法案例教案 苏教版必修3总 课 题算法案例 总课时 第 9 课时 分 课 题 算法案例 分课时 第 1 课时教学目标 通过了解中国古代算法案例,体会中国古代数学对世界数学发展的贡献.重点难点 通过案例分析,体会算法思想,熟练算法设计.例【案例1】韩信是秦末汉初的著名军事家,据说有一次汉高祖刘邦在卫士的簇拥下来到练兵场,刘邦问韩信有什么办法,不要逐个报数,就能知道场上士兵的人数.韩信先令士兵排成3列纵队,结果有2人多余;接着他立刻下令将队形改为5列纵队,这一改,又多出3人;随后他又下令改为7列纵队,这一次又剩下2人无法成整行.韩信看此情形,立刻报告共有士兵2333人.众人都愣了,不知韩信用什么办法清点出准确人数的.这个故事是否属实,已无从查考,但这个故事却引出一个著名的数学问题,即闻名世界的“孙子问题”. 这种神机妙算,最早出现在我国《算经十书》之一的《孙子算经》中,原文是:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?答曰:二十三.”所以人们将这种问题的通用解法称为“孙子剩余定理”或“中国剩余定理”.【算法设计思想】“孙子问题”相当于求关于z y x ,,的不定方程组⎪⎩⎪⎨⎧+=+=+=273523z m y m x m 的整数解.设所求的数为m ,根据题意,m 应同时满足下列三个条件:(1)m 被3除后余2,即2)3(= ,m Mod ; (2)m 被5除后余3,即3)5(= ,m Mod ; (3)m 被7除后余2,即2)7(= ,m Mod ; 首先,从2=m 开始检验条件,若3个条件中有任何一个不满足,则m 递增1,当m 同时满足3个条件时,输出m .【流程图】 【伪代码】【案例2】写出求两个正整数)(,b a b a >的最大公约数的一个算法.公元前3世纪,欧几里得介绍了求两个正整数)(b a b a >,的最大公约数的方法,即求出一列数:0121 -,,,,,,,n n r r r r b a ,这列数从第三项开始,每一项都是前两项相除所得的余数(即)(12--=n n n r r Mod r ,),余数等于0的前一项n r ,即是a 和b 的最大公约数,这种方法称为“欧几里得辗转相除法”.【算法设计思想】欧几里得展转相除法求两个正整数b a ,的最大公约数的步骤是:计算出b a ÷的余数r ,若0=r ,则b 即为b a ,的最大公约数;若0≠r ,则把前面的除数b 作为新的被除数,把余数r 作为新的除数,继续运算,直到余数为0,此时的除数即为b a ,的最大公约数.求)(b a b a >,的最大公约数的算法为:1S 输入两个正整数b a ,;2S 如果0)(≠b a Mod ,,那么转3S ,否则转6S ;3S )(b a Mod r ,←;4S b a ←;5S r b ←,转2S ;6S 输出b .【流程图】 【伪代码】【案例3】写出方程013=--x x 在区间]511[., 内的一个近似解(误差不超过001.0)的一个算法. 【算法设计思想】如下图:如果设计出方程0)(=x f 在某区间[]b a ,内有一个根*x ,就能用二分搜索求得符合误差限制c 的近似解.算法步骤可表示为:1S 取[]b a ,的中点)(210b a x +=,将区间一分为二; 2S 若0)(=x f ,则0x 就是方程的根,否则判断根*x 在0x 的左侧还是右侧;若0)()(0>x f a f ,则),(0b x x ∈*,以0x 代替a ;若0)()(0<x f a f ,则),(0x a x ∈*,以0x 代替b ;3S 若c b a <-,计算终止,此时0x x ≈*,否则转1S .【流程图】 【伪代码】巩固练习1.下面一段伪代码的目的是______________________________________________.ad Re m ,n While )(nm Int n m ≠ c ←m )(n m Int n ⨯- m n ←n c ← a 0x*x b0)(>b f )(x f y = O注明:案例3的图2.在直角坐标系中作出函数x y 2=和x y -=4的图像,根据图像判断方程x x -=42的解的范围,再用二分法求这个方程的近似解(误差不超过001.0),并写出这个算法的伪代码,画出流程图.课堂小结通过案例分析,体会算法思想,熟练算法设计,进一步理解算法的基本思想,在分析案例的过程中设计规范合理的算法.课后训练班级:高二( )班 姓名:____________一 基础题1.一种放射性物质不断变化为其它物质,每经过一年剩留下来的物质的质量约为原来,那么,约经过多少年,剩留的质量是原来的一半?试写出运用二分法计算这个近似值的伪代码.2.设计一个算法,计算两个正整数b a ,的最小公倍数.二 提高题3.判断某年份是否为闰年,要看此年份数能否被4整除.若不能被4整除则是平年,2月是28天;若能被4整除但不能被100整除,则该年是闰年,2月是29天;若能被4整除又能被100整除,还要看能否被400整除,若能则为闰年,否则为平年. 画出上述算法的流程图,并写出伪代码.4.我国古代劳动人民对不定方程的研究作出过重要贡献,其中《张丘建算经》中的“百鸡问题”就是一个很有影响力的不定方程问题,今有鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一,凡百钱买百只,问鸡翁、鸡母、鸡雏各几何.其意思是:一只公鸡的价格是5钱,一只母鸡的价格是3钱,三只小鸡的价格是1钱,想用100钱买100只鸡,问公鸡、母鸡、小鸡个买几只.设z y x ,,分别代表公鸡、母鸡、小鸡的只数,我们可以大致确定z y x ,,的取值范围:若100钱全买公鸡,则最多可买20只,即x 的取值范围是20~0;若100钱全买母鸡,则最多可买33只,即y 的取值范围是33~0;当y x ,在各自的范围内确定后,小鸡的只数y x z --=100也就确定了.根据上述算法思想,画出求解的流程图,并写出相应的伪代码.。
高中数学新苏教版精品教案《苏教版高中数学必修3 1.4.1 算法案例》
算法案例〔第三课时〕——进位制一、教学目标(1)知识与技能:学生了解进位制的概念,学会表示进位制数,理解各种进位制与十进制之间的转换规律,会利用各种进位制与十进制之间的联系,进行各种进位制之间的转换。
(2)过程与方法:学生经历得出各种进位制与十进制之间转换的规律过程,进一步掌握进位制之间的转换方法。
(3)情感态度价值观:学生通过合作完成任务,领悟十进制、二进制的特点,了解计算机在电路与二进制的联系,进一步认识到计算机与数学的联系,培养他们合作精神和严谨的态度。
二、教学重点与难点重点:各进位制表示数的方法及各进位制之间的转换难点:“除取余法〞的理解三、教学方法与手段讲授法、归纳式、讨论法、类比法、多媒体展示四、教学过程设计1、创设情境引入课题小故事:很久很久以前,我们的祖先如何清点猎物?2、新课讲授〔1〕进位制的概念:进位制是人们为了计数和运算方便而约定的记数系统。
约定满二进一,就是二进制;满十进一,就是十进制;满十二进一,就是十二进制;等等,也就是说,“满几进一〞就是几进制,几进制的基数就是几。
我们常见的数字都是十进制的,但是并不是生活中的每一种数字都是十进制的你能举出一些实例么生活中的进位制: 如:60进制在时间上,1小时分成60分钟,1分钟分成60秒;在角度上,1度分成60分,1分分成60秒、12进制〔月份、生肖、一打〕、七进制〔一周七天〕、16进制〔古称一斤为16两,故而有了半斤八两之说〕、24进制〔节气〕等等不同的进位制之间又有什么联系呢〔2〕探究十进制问题1、日常生活中,常用的是十进制数,十进制数用哪些数字进行记数?答:0、1、2、3、4、5、6、7、8、9问题2、结构特征?答:满十进一问题3、十进制数3578表示的数可以写成位权:个位、十位、百位、千位〔3〕探究二进制特征(4)进制转化成十进制例1、二进制数110011〔2〕四进制数 123〔4〕(5)十进制转化成进制〔除取余法〕例2、十进制数191化为五进制数是什么数?例3、将十进制数458分别转化为四进制数和六进制数?3、综合提高:将五进制数3241〔5〕转化为七进制数小组讨论,合作交流。
高中数学算法案例苏教版必修三
算法案例民间谚语说,不了解过去,就不可能懂得现在的真正涵义和未来的目的.这对于数学也是适用的.事实上,从世界文明古代数学到我国古代数学,它们中都蕴藏着大量丰富的“寓理于算”的引人入胜的数学问题、趣题,这些问题的“算法化”解决,可帮助同学们进一步体会“算法”的概念,提高逻辑思维能力和算法设计水平,进而为上机实践作好更为充分的准备并节省计算机资源.同时,不仅在古代,就是在当今,也有着许多充满了挑战意味的(算法)问题,值得我们去开拓去玩味去思索.现在,同学们肯定也一定很想知道到底有哪些问题是如此地吸引着我们的眼球吧.那就请你随着我们一起去走进数学问题的算法大观圆吧.学法建议“数学来源于实践”.作为算法,也不例外,它是许多优秀成果(无论是古代的,还是当今的)的浓缩、抽象与概括.追根溯源,我们再用“算法”理念来研究体验一下充满着体现古代数学对现代数学的伟大贡献的成果,那就不仅具有深远的现实意义,而且同样具有深远的教育意义.在本节的学习中,要能综合运用所学的算法知识解决实际问题,会用自然语言、流程图和伪代码表述问题的算法过程. 一、知识网络南宋数学家秦九韶对《孙子算经》中的“物不知数”问题产生了兴趣并进行了研究,提出了一种新的算法——大衍求一术,该法和高斯的算法在本质上完全一致,但比高斯早了500余年,可见中国古代数学史对世界古代数学史的贡献.二、知识归纳 1.辗转相除法①所谓辗转相除法,就是对于给定的两个数,用较大的数除以较小的数,若余数不为零,则将余数和较小的数构成新的一对数,继续上面的除法,直到大数被小数除尽,则这时的较小的数就是原来两个数的最大公约数.②算法步骤(以求两正整数a ,b 的最大公约数为例)S 1 输入两个正整数a ,b (a >b );S 2 r ←a ÷b 的余数; S 3 a ←b ;中国剩余定算法案例更相减损二 分 法辗转相除法S 4 b ←r ;S 5 如果r =0,则输出最大公约数a ;若r ≠0,则转S 2.所示.mod(a ,b )表示所得的余数,例如,mod(5,2)=1,mod(46,20)=6. ⑤取整函数int(x )的最大整数,例如int(4.3)=4,int(-3.6)= -4. 2①所谓更相减损术就是对于给定的两个数,以两数中较大的数减去较小的数,然后将差和较小的数构成一对新数,再用较大的数减去较小的数,反此时相等的两数便为原两数的最大公约数.②算法步骤:()S 1 输入两个正整数a ,b (a >b );S 2 若a 不等于b ,则执行S 3;否则执行S 5;S 3 r ←a -b ;S 4 如果b >r ,a ←b ,b ←r ;否则,a ←r ,执行S 2;S 5 输出最大公约数b .③流程图和伪代码如图5-4-2所示.3.中国剩余定理中国剩余定理,也称为孙子剩余定理.该定理在近代数学和电子计算机程序设计中有着广泛的应用.①剩余问题在整数除法里,一个数同时除以几个数,整数商后,均有剩余;已知各除数及其对应的余数,从而要求出适合条件的这个被除数的问题,叫做剩余问题.②两个性质性质1 几个数相加,如果只有一个加数,不能被数a 整除,而其他加数均能被数a 整除,那么它们的和,就不能被数a 整除.10 Read a ,b 20r ←mod (a ,b ) 30 a ←b 40 b ←r 50 If r ≠0 then 80 60 Print a 70 Goto 90 80 Goto 20 90 End if 100 End 5-4-1 Read a ,b While a ≠b r ←a -bIf b >r thena ←b b ←r Else a ←r End ifEnd while Print b 5-4-2如:10能被5整除,15能被5整除,但7不能被5整除,所以(10+15+7)不能被5整除.性质2 二数不能整除,若被除数扩大(或缩小)了几倍,而除数不变,则其余数也同时扩大(或缩小)相同的倍数(余数必小于除数).如:22÷7=3 (1)(22×4)÷7=12……1×4(=4)(要余2:22×2÷7=6……2;(22×9)÷7=28……1×9-7(=2))(想余5,则22×5÷7=15……5)③中国剩余定理中国数学史书上记载:在两千多年前的我国古代算书《孙子算经》中,有这样一个问题(称为“物不知数”问题)及其解法:今有物不知其数,三三数之剩二;五五数之剩三:七七数之剩二.问物几何?答曰:23.术曰:“三三数之剩二,置一百四十;五五数之剩三,置六十三;七七数之剩二,置三十.并之,得二百三十三,以二百一十减之即得.”“术”即解法.书中还介绍了上述问题中余数为一的一般解法:凡三三数之剩一,则置七十;五五数之剩一,则置二十一;七七数之剩一则置十五;一百六以上,以一百五减之即得.在明朝程大位著《算术统宗》一书中,把上述问题的基本解法,用诗句概括为:三人同行七十稀,五树梅花廿一枝,七子团圆正半月,除百令五便得知.解依定理译成算式解为:70×2+21×3+15×2=233,233-105×2=23.这就是享誉中外的《中国剩余定理》.④至于“物不知数”问题的算法分析与算法的流程图与伪代码表示,请直接参见教材相关部分.三、图解重点算法思想——程序化思想算法的思想方法,题的习惯.潜能开发将1092作为大数,468作为小数,执行辗转相除法和更相减损术的步骤即可.[解答]用辗转相除法:1248=585×2+78, 585=78×7+39, 78=39×2+0. 故1248和585的最大公约数是39. 用更相减损术检验:(1248,585)→(663,585)→(78,585)→(78,507)→(78,429)→(78,351)→(78,273)→(78,195)→(78,117)→(78,39)→(39,39)∴1248和585的最大公约数是39.先引入三人各自舀米的次数变量,写出它们所满足的条件,变形后写出算法分析. [解答]设x 、y 、z 分别表示用木勺、本盒、大碗舀米的次数,依题意必须求:方程19x +1=17y +14=12z +1的正整数解. 解题规律1.用辗转相除法求两数最大公约数时,是当大数恰好被小数整除时停止除法,这时的小数就是要求的两数的最大公约数.2.用更相减损术求两数最大公约数时,是当大数减小数恰好等于小数时停止减法,这时的小数就是要求的两数的最大公约数.知识延伸本问题的算法如下:S 1 t ←1;S 2 判断17能否整除228t -13.若能,转S 5;若不能,转S 3;S 3 t ←t +1; S 4 转S 2;S 5 输出“甲偷米”;19×12×t ;S 6 输出 “乙偷米”;228×t -13;S 7 输出 “丙偷米”;19×12×t .课外拓展中国数学著作《数书九章》编纂于变形可得19x=12z,1219x z .由于x、y、z均为整数,故可令z=19t,t为整数.进而可得17y+13=228t.因此,只须让t分别取1,2,3,…,直至y为整数为止.现用伪代码写出算法如图5-4-4所示.分析清晰这里的数据的个数及其关系即可.[解答]用伪代码表示算法如图5-4-5所示.借助计算机用穷举法来完成.[解答]设直角三角形的两直角边分别为a,b,则依题意有宋代.下面问题也来自该书:5头牛和2只羊共值银11俩,2头牛和8只羊共值银8俩,每头牛和每只羊各值多少?(答案:一头牛值银2俩,一只羊值银半俩.)历史片断埃及是世界第二个古代文化中心,而第一个则是巴比伦.埃及是一个金字塔的国度,远在公元前数千年就出现了庙宇和金字塔等巨大建筑,其中一部分一直保存到今天.各种建筑工作以及以人工灌溉为基础的土地耕作,很早就引起需要数学知识,特别是对几何学的需要.感悟方法计算机最大的特点就是利用穷举进行重复计算,本题便是借助了计算机的这一特点,对所有可能的情形进行了穷举.显然这在手工阶段是难以完成的.这t←1While int((228t-13)/17)≠(228t-13)/17t←t+1End whilePrint “甲偷米”;19×12×tPrint “乙偷米”;228×t-13Print “丙偷米”;19×12×tEndS←0a←1For I from 1 to 5a←7×aPrint aS←S+aEnd forPrint SEnd图5-4-5a ,b ≤100,a ,b 为正整数,且a 2+b 2为完全平方数,ab =2(a +b.因a 2+b 2为完全平方数,为整数的判断可借助于取整函数来实现.于是我们可以有如下的算法(用伪代码来表示,图形示意为图5-4-6)就是高科技带来的计算革命. 问题变式请你设计一个算法,找出这样的矩形,使它满足以下三个条件:第一,四条边长均为整数;第二,面积数与周长数相等;第三,周长不超过400.请你根据左边的算法分析,独立给出上述问题的解答.(要求写出伪代码)体验探究一、科海拾贝刘微——割圆术——π的近似值的计算刘微,我国魏晋时期的数学家,他在注《九章算术》中采用正边形面积逐渐逼近圆面积的算法计算了圆周率π.刘微说“割之弥细,所失弥少,割之又割,以至于不可割,则与圆合体而无所失矣.”刘微的这一思想后来又得到祖冲之的推进和发展,计算出的圆周率近似值在世界上很长时间里处于领先地位.刘微从圆内接六边形开始,让边数逐次加倍,逐个算出这些圆内接正多边形的面积,从而得到一系列逐渐递增的数值,来一步一步地逼近圆面积,最后求出圆周率的近似值.可以想象,在当时需要付出多少艰辛的劳动.计算机的最大的特点是运算速度快,能做重复计算,而刘微的思想恰是重复的基础.我们先对单位圆内接正六边形、正十二边形、正二十四边形、……的面积关系进行一个分析,找出它们之间的关系. 如图5-4-7所示,设圆的半径为1,面积为S ,圆内接正n 边形的面积为S n ,边长为x n ,边心距为h n ,则由勾股定理有n h =For a from 1 to 100 For b from 1 to 100 Ifint(sqr(a 2+b 2))=sqr(a 2+b 2)and ab =2(a +b +sqr(a 2+b 2))Print a ,b ,sqr(a 2+b 2) Else End if Next b Next aEndD图5-4-7正2n 边形的面积为正n 边形的面积S n 再加上n 个等腰三角形(ADB )的面积和,即21(1)2n n n n S S n x h =+-. ① 正2n 边形的边长为2n x从正六边形的面积开始计算,即n =6,则正六边形的面积66S = 用公式①重复计算,就可得到正十二边形、正二十四边形、……的面积.由于圆的半径为1,所以随着n 的增大,S 2n 的值就无限逼近于圆周率,这样不断计算下去,就可以得到越来越精密的圆周率的值. 如图,5-4-8便是用伪代码写出的算法.其中m 为正偶数. 运行以上的程序,当边数为192时,就可以得到刘微求得的圆周率的近似值3.14;当边数为24576时,就得到了祖冲之计算的结果3.1415926.由于是用圆内接正多边形逼近圆的,因而得到的圆周率总是小于π的实际值的.那当然如果用圆外接正多边形去逼近圆的面积,则所得到的圆周率总应大于π的实际值的.用圆外接正多边形去逼近圆的面积求圆周率的近似值的方法,请读者自行去分析去解决. 二、智慧列车正方体的所有棱长都相等,故必须将钢筋剪裁成长度相等的钢筋条;又必须不浪费,这就说明必须剪后无剩余.于是为了保证正方体的体积最大,故剪得钢筋的最大长度为3.6m 和7.8m 的最大公约数.可用更相减损术求最大公约数.[解答]先求36与78的最大公约数:(36,78)→ (36,42)→(36,6)→(30,6)→(24,6)→(18,6)→(12,6)→(6,6).故36与78的最大公约数为6.∴3.6与7.8的最大公约数为0.6,即当剪成的正方体的棱长为0.6m 米时,正方体的体积最大且不浪费.Read m n ←6 S ←6×sqr(3)/4 For I from 1 to mh ←sqr(1-x ×x /4)S ←S +n ×x ×(1-h )/2 n ←2×nx ←sqr(x ×x /4+(1-h )×(1-h ))End forPrint n ,S 图5-4-8。
高中数学苏教版必修三教学案:第1章 1.4 算法案例含答案
问题1:如何求12与20的最大公约数? 提示:短除法.一般情况下数字不应过大.问题2:若求6 750与3 492的最大公约数,上述方法还奏效吗? 提示:数值很大时短除法不方便用.问题3:对于问题1中12与20的最大公约数是4.若用20除以12余8,再用8去除12余4,再用4去除8余数为0,也可求得最大公约数为4.若对较大两数可否用此法求公约数?提示:可以.1.孙子问题(1)问题名称:人们将“韩信点兵——孙子问题”这种问题的通用解法称为“孙子剩余定理”或“中国剩余定理”.(2)问题思想:“孙子问题”相当于求关于x ,y ,z 的不定方程组⎩⎪⎨⎪⎧m =3x +2m =5y +3的正整数解.m =7z +22.欧几里得辗转相除法(1)含义:公元前3世纪,欧几里得在《原本》第七篇中介绍了求两个正整数a ,b (a >b )的最大公约数的方法,这种方法称为“欧几里得辗转相除法”.(2)步骤:计算出a ÷b 的余数r ,若r =0,则b 即为a ,b 的最大公约数;若r ≠0,则把前面的除数b 作为新的被除数,把余数r 作为新的除数,继续运算,直到余数为0,此时的除数即为a ,b 的最大公约数.3.两个常用函数(1)Mod(a ,b )表示a 除以b 所得的余数. (2)Int(x )表示不超过x 的最大整数.1.由除法和减法的性质可知,对于任意两个正整数,辗转相除法或更相减损术总可以在有限步之后完成,故总能用这两种方法求出任意两个正整数的最大公约数.2.辗转相除法的理论依据是:由a=nb+r⇒r=a-nb得a、b与b、r有相同的公约数.[例1] 有3个连续的正整数,其中最小的能被15整除,中间的能被17整除,最大的能被19整除,画出求满足要求的一组三个连续正整数的流程图,并写出伪代码.[思路点拨] 设这三个数分别为m,m+1,m+2,则m满足的条件是Mod(m,15)=0且Mod(m +1,17)=0且Mod(m+2,19)=0.[精解详析] 流程图:伪代码:m←2While Mod(m,15)≠0orMod(m+1,17)≠0orMod(m+2,19)≠0m←m+1End WhilePrint m,m+1,m+2[一点通]解决此类问题的方法就是从m=2开始,对每一个正整数逐一检验,当m满足所有已知条件时,结束循环,输出m.1.如图所示的流程图,输出的结果是________.解析:m =10时,不满足条件,则m ←10+7.m =17时,Mod(m,3)=2且Mod(m,5)=2成立,故输出17. 答案:172.下面一段伪代码的功能是________.m ←2While Mod(m,2)≠1 orMod(m,3)≠2 or Mod(m,5)≠3m ←m +1End While Print m解析:由代码含义可知,m 满足的条件是除以2余1,除以3余2,除以5余3,又m 逐个增大,故输出的m 是满足条件的最小正整数.答案:求关于x 、y 、z 的不定方程组⎩⎪⎨⎪⎧m =2x +1m =3y +2m =5z +3的最小正整数解[例2] 设计用辗转相除法求8 251与6 105的最大公约数的算法,并画出流程图,写出伪代码.[思路点拨] 按照辗转相除法的步骤设计算法、画流程图,根据流程图,写出伪代码. [精解详析] 算法如下S1 a←8 251;S2 b←6 105;S3 如果Mod(a,b)≠0,那么转S4,否则转S7;S4 r←Mod(a,b);S5 a←b;S6 b←r,转S3;S7 输出b.流程图与伪代码:a←8 251b←6 105While Mod(a,b)≠0r←Mod(a,b)a←bb←rEnd WhilePrint b[一点通] 辗转相除法是当大数被小数除尽时,结束除法运算,较小的数就是最大公约数.3.下图表示的流程图,输出的结果是________.解析:第一次执行循环体:r=34,a=119,b=34,第二次执行循环体r=17,a=34,b=17.第三次执行循环体r=0,输出b=17.答案:174.求三个数168,56,264的最大公约数.解:先求168与56的最大公约数.∵168=56×3,故168与56的最大公约数是56.再求56与264的最大公约数.∵264=56×4+40,56=40×1+16,40=16×2+8,16=8×2.故56与264的最大公约数是8.因此168,56,264的最大公约数是8.[例3] (12分)设计用二分法求方程x3-2=0在区间[1,2]内的近似解(误差不超过0.005)的流程图,写出伪代码.[思路点拨] 根据二分法求方程近似解的步骤画出流程图,然后根据流程图写出算法伪代码.[精解详析] 流程图如图:(6分)伪代码如下:a ←1b ←2c ←0.005Do x 0←2a b+ f a ←a 3-2f x 0←30x -2If f x 0=0 ThenExit DoIf f a f x 0<0Thenb ←x 0Elsea ←x 0End If Until |a -b |<c End Do Print x 0(12分)[一点通] 针对这个类型的题目书写伪代码时一定要注意伪代码的具体格式,另外循环语句中一定包含有条件结构的语句.求高次方程近似解时,一定要给出精确度.5.下面的流程图表示的算法的功能是________.答案:用二分法求方程x2-3x+1=0在区间[0,1]内的一个近似解(误差不超过0.001) 6.写出用区间二分法求方程x3-2x-3=0在区间[1,2]内的一个近似解(误差不超过0.001)的算法伪代码,并画出流程图.解:该问题的流程图如图所示.伪代码:Read a ,b ,c Dox 0←a +b 2f (a )←a 3-2a -3 f (x 0)←x 30-2x 0-3If f (x 0)=0 Then Exit DoIf f (a )×f (x 0)<0Thenb ←x 0 Else a ←x 0 End If Until |a -b |<c End Do Print x 01.用辗转相除法求两个数最大公约数的操作过程是先用较大的数除以较小的数,得商和余数,再用除数除以余数,重复操作,直到余数为零.这时小数就是要求的最大公约数,终止循环的条件是余数为零.2.用二分法求方程的近似解就是逐步把“解”所在的区间缩短,直到求出近似解或方程的解所在的区间长度小于误差为止.课下能力提升(七)一、填空题1.用辗转相除法求294和84的最大公约数时,需要做除法的次数是________. 解析:294=84×3+42,84=42×2, 故需要做2次. 答案:22.下列伪代码运行的一个结果是________.m ←2While Mod(m,4)≠2 orMod(m,5)≠3 or Mod(m,7)≠3m ←m +1End While Print m解析:此伪代码的功能是求⎩⎪⎨⎪⎧m =4x +2,m =5x +3,m =7x +3的最小正整数∴m =38. 答案: 383.如图所示的流程图,输出的结果是________.解析:由86>68得a =18,b =68,由68>18得b =50,a =18;由50>18得b =32,a =18;由32>18得b =14,a =18;由18>14得a =4,b =14;由14>4得b =10,a =4;由10>4得b =6,a =4;由6>4得b =2,a =4;由4>2得a =2,b =2.满足a =b ,输出2.答案:24.84和32的最小公倍数是________. 解析:先求84和32的最大公约数. 84=32×2+20 32=20+12 20=12+812=8+48=4×2.故84和32的最大公约数是4.所以84和32的最小公倍数为84×32÷4=672.答案:6725.下列伪代码的运行结果是________.a←120b←252While a≠bIf a>ba←a-bElseb←b-aEnd IfEnd WhilePrint a解析:此伪代码的功能是求两个正整数的最大公约数.a,b的值依次是:(120,252)→(120,132)→(120,12)→(108,12)→(96,12)→(84,12)→(72,12)→(60,12)→( 48,12)→(36,12)→(24,12)→(12,12),∴输出12.答案:12二、解答题6.已知如图所示的流程图(其中的m、n为正整数):(1)这个算法的功能是什么?(2)当m=286,n=91时,运行的结果是什么?解:(1)这个算法的功能是用辗转相除法求两个正整数的最大公约数.(2)∵286=91×3+13,91=13×7,∴286与91的最大公约数是13.故运行结果为13.7.试写出用二分法求方程x3+x2-1=0在[0,1]上的近似解的伪代码(精确度为0.01).解:伪代码如下:a←0b←1ε←0.01Dox0←(a+b)/2f(a)←a3+a2-1f(x0)←x30+x20-1If f(x0)=0 Then Exit DoIf f(a)f(x0)>0 Thena←x0Elseb←x0End IfUntil |a-b|<εEnd DoPrint x08.有一堆围棋子,5个5个地数余2,7个7个地数余3,9个9个地数余4,请画出求这堆围棋子共有多少个的流程图,并写出伪代码.解:流程图:伪代码:m←2While Mod(m,5)≠2orMod(m,7)≠3orMod(m,9)≠4m←m+1End WhilePrint m。
高中数学算法的含义教案苏教版必修3
课题:算法的含义教学目的: 1.通过实例体会算法的思想,了解算法的含义2.能按步骤用自然语言写出简单问题的算法过程教学重点:将问题的解决过程用自然语言表示为算法过程教学过程:一、问题情景:1.电视节目中,有一种有趣的“猜数”游戏: 现有一商品,价格在0-8000元之间,釆取怎样的策略才能在较短的时间内说出正确的答案呢?如果从报1开始若不对再报2若不对再报3直到报到正确答案.这样行不行? 这是不是最好的策略?调整策略:第一步:报“4000”;第二步:若答"高了",就报“2000”;否则报“6000”;第三步:重复第二步的报数方法,直至得到正确结果.我们做任何一件事,都是在一定的条件下按某种顺序执行的一系列操作。
解决数学问题也常常如此。
例如:用加减消元法解二元一次方程组时,就可以按照某一程序进行操作;用配方法解一元二次方程,也是按一定程序操作的。
将上述程序换成计算机能识别的语言后,就能借助计算机极大地提高解决问题的速度。
因此探索解决问题的统一程序的思想是十分重要的,对一类问题的机械的、统一的求解程序就是算法。
面对一个需要解决的问题●如何设计解决问题的操作步骤?●怎样用数学语言描述这些操作序列?二、实例体验例1给出求1+2+3+4+5的一个算法.注:可以有不同的算法,算法一、算法二见课本思考:下列算法能解决问题吗?第一步:使s=1;第二步:使n=2;第三步:使s=s+n ;第四步:使n=n+1第五步:若n≤5则返回第三步,否则输出s例2 解二元一次方程组:②y x ①y x1212分析:解二元一次方程组的主要思想是消元的思想,有代入消元和加减消元两种消元的方法,下面用加减消元法写出它的求解过程.解:第一步:② - ①×2,得: 5y =3;③第二步:解③得53y ;第三步:将53y 代入①,得51x .思考:你能用代入消元法设计算法吗?(选讲)例3一位商人有9枚银元,其中有1枚略轻的是假银元.你能用天平(不用砝码)将假银元找出来吗? 三、课时小结算法的特点:(1)有限性:一个算法的步骤序列是有限的,必须在有限操作之后停止,不能是无限的.(2)确定性:算法中的每一步应该是确定的并且能有效地执行且得到确定的结果,而不应当是模棱两可. 四、课外作业。
高中数学 1.4 算法案例学案 苏教版必修3(2021年整理)
高中数学1.4 算法案例学案苏教版必修3编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(高中数学1.4 算法案例学案苏教版必修3)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为高中数学1.4 算法案例学案苏教版必修3的全部内容。
1。
4 算法案例3.会用二分法求方程的近似解。
1.孙子剩余定理“韩信点兵—孙子问题"的算法最早出现在我国《算经十书》之一的《孙子算经》中.原文是:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二.问物几何?答曰:二十三.”自从《孙子算经》中提出这个“物不知数”问题之后,它便引起了人们很大的兴趣.南宋数学家秦九韶对此加以推广,又发现了一种新的解法,叫“大衍求一术”.这种解法后来传入欧洲,欧洲学者发现此解法和高斯的解法本质上是一致的,但比高斯早了500余年.所以,人们将这种问题的通用解法称为“孙子剩余定理”或“中国剩余定理”.预习交流1孙子剩余定理的实质是什么问题? 提示:孙子剩余定理一般解决的是求总数问题,其实质就是利用求余的方法求不定方程(组)的整数解问题.2辗转相除法与更相减损术有何区别与联系?提示:它们虽然来源于西、东方古代数学名著,但二者的算理却是相似的,都突出了“辗转"两字.两者的主要区别在于辗转相除法进行的是除法运算,即辗转相除;而更相减损术进行的是减法运算,即辗转相减.它们的步骤虽略有不同,但理论是一致的,都是一个不断地递推过程,两法相比,更相减损术思路更简单,计算更容易.预习交流3(1)下列说法中正确的个数为__________.①辗转相除法也叫欧几里得辗转相除法;②辗转相除法的基本步骤是用较大的数除以较小的数;③求最大公约数的方法,除辗转相除法之外,没有其他方法;④编写辗转相除法的程序时,要用到循环语句.(2)372与684的最大公约数是__________.(3)用辗转相除法求两个正整数a,b(a>b)的最大公约数时,得到表达式a=nb+r(n∈N),这里r的取值范围是__________.提示:(1)3 (2)12 (3)0≤r<b一、孙子剩余定理的理解及应用有3个连续的自然数,其中最小的能被15整除,中间的能被17整除,最大的能被19整除,求满足要求的一组3个连续的自然数,画出流程图,并用伪代码表示算法.思路分析:本题其实就是求关于x,y,z的不定方程组错误!的正整数解.解:流程图如图所示:伪代码如下:1.下列各式中正确的个数是________.①Mod(3,2)=2;②Mod(3,2)=1;③Mod(2,3)=1;④Mod(105,7)=0;⑤Mod(8,3)=2。
1.4.算法案例-苏教版必修3教案
1.4.算法案例-苏教版必修3教案
算法背景
在高中数学学科中,算法是一个重要的概念。
算法是一系列解决问题的指令集合,用于将输入转换为输出。
在本次课程中,我们将以苏教版必修3教材为基础,介绍几个与算法相关的案例。
算法案例
线性规划问题
对于一个线性规划问题,我们只需要确定一个线性目标函数,并解决线性不等式或等式约束条件。
这是一个常见的优化问题,它可以在材料管理、运输和分配
等方面得到应用。
在苏教版必修3教材中,还包括针对线性规划问题的单纯形法。
这是一个基于松弛变量搜索所有角点的方法。
图论算法
在图论中,我们需要学习多个不同的算法,例如:最短路径算法、最小生成树算法等。
最短路径算法用于查找两点之间的最短路径,最小生成树算法用于查找图中的最小生成树。
在苏教版必修3教材中,介绍了两个常用的算法:迪杰斯特拉
算法和克鲁斯卡尔算法。
这两个算法都在查找图中的最短路径方面应用广泛。
字符串匹配算法
在计算机科学中,字符串匹配是一个基本的问题。
字符串匹配的主要目标是确定一个字符串是否包含另一个字符串。
在苏教版必修3教材中,介绍了KMP算法。
它是一种比较高效的字符串匹配算法,通常用于在较长的文本中查找子串。
本章小结
这篇教案中,我们介绍了苏教版必修3教材中的一些算法案例。
通过学习这
些案例,学生可以更好地理解算法的基本概念以及如何应用这些概念来解决不同的问题。
同时,通过对算法案例的学习,学生可以增强自己的数学思维能力,更好地应对复杂的问题和考试。
苏教版高中数学必修三《算法案例:辗转相除法》教案
1.4 算法案例重点难点重点:通过案例分析理解辗转相除法与更相减损术求最大公约数的方法,体会算法思想.难点:把辗转相除法与更相减损术的方法转换成程序框图与程序语言. 学习要求1.理解辗转相除法与更相减损术中蕴含的数学原理,并能根据这些原理进行算法分析.2.基本能根据算法语句与程序框图的知识设计完整的程序框图并写出算法程序.【课堂互动】问题:写出求两个正整数a,b(a>b)的最大公约数的一个算法。
1.辗转相除法公元前3世纪,欧几里得介绍了求两个正整数a,b(a>b)的最大公约数的方法,求出一列数:0,,,,,,121n n r r r r b a - ,这列数从第三项开始,每一项都是前两项相除所得的余数(即),(12--=n n n r r Mod r ),余数等于0的前一项n r ,即是a 和b 的最大公约数,这种方法称为“欧几里得辗转相除法”。
例1 求两个正数8 251和6 105的最大公约数.(分析:8 251与6 105两数都比较大,而且没有明显的公约数,如能把它们都变小一点,根据已有的知识即可求出最大公约数)【解】8 251=6 105×1+2 146显然8 251和的2 146最大公约数也必是2 146的约数,同样6 105与2 146的公约数也必是8 251的约数,所以8 251与6 105的最大公约数也是6 105与2 146的最大公约数.6 105=2146×2+18132 146=1813×1+3331 813=333×5+148333=148×2+37148=37×4+0则37为8 251与6 105的最大公约数.【小结】以上我们求最大公约数的方法就是欧几里得辗转相除法.其求最大公约数的步骤如下:第一步:用较大的数m 除以较小的数n ,得到一个商0q 和一个余数0r ;第二步:若00r =,则n 为,m n 的最大公约数;若00r ≠,则用除数n 除以余数0r ,得到一个商1q 和一个余数1r ;第三步:若10r =,则1r 为,m n 的最大公约数;若10r ≠,则用除数0r 除以余数1r 得到一个商2q 和一个余数2r ;……依次计算直至0n r =,此时所得到的1n r -即为所求的最大公约数.【练习】求a=204,b=85的最大公约数,步骤为:S1 204÷85的余数为34,S2 85÷34的余数为17,S3 34÷17的余数为0。
高中数学 5.4.3算法案例3教案 苏教版必修3
第13课时5.4 算法案例重点难点重点:理解区间二分法的意义;学会分析类似的问题;通过案例分析,体会算法思想,难点:理解二分法的算法思想和算法表示学习要求1.理解区间二分法的意义,二分法主要是采用了循环结构处理问题要会分析类似的问题。
2.能由流程图分析出期所含有的结构并用为代码表示出相应的算法. 3.GoTo 语句的认识及其他语句的进一步熟悉。
【课堂互动】问题:用区间二分法写出方程013=--x x 在区间[1,1.5]内的一个近似解(误差不超过0.001)的一个算法。
算法设计思想:令函数1)(3--=x x x f .如图,如果估计出方程()0f x =在某区间[,]a b 内有一个根*x ,就能用二分法搜索求得符合误差限制c 的近似解.取[a ,b]的中点0x ,如果f(0x )=0,则0x 就是方程的根;否则判断根*x 在0x 的左侧还是右侧,如果在左侧,就用[a ,0x ]代替区间 [a ,b]。
如果在右侧,就用[0x ,b]代替区间[a ,b],如此循环下去,直到|a-b|<(c 是约定的误差范围,本例中为0.001)时终止,此时*x ≈0x 。
算法步骤:S1 取[a ,b]的中点)(210b a x +=,将区间一分为二; S2 若0)(0=x f ,则0x 就是方程的根;否则判断根*x 在0x 的左侧还是右侧:若)()(0x f a f >0,则),(0*b x x ∈,以0x 代替a ; 若)()(0x f a f <0,则),(0*x a x ∈,以0x 代替b ; S3 若b a -<c ,计算终止,此时*x ≈0x ,否则转S1。
【流程图】【伪代码】代码1:Read a,b,c02a bx +←While ||a b c -≥ And 30010x x --≠ If 3(1)a a --⨯300(1)x x --<00b x ← Else 0a x ←End If02a bx +←End WhilePrint 0x代码2:0)(0=x f )()(0x f a f <0 开始Y结束输入a ,b ,c )(a f ←13--a a )(0x f ←1030--x x 输出0x )(210b a x +=a ←0x b ←0xb a -<cNY N Y N10 Read ,,a b c20 0()2a b x +←30 3()1f a a a ←--40 3000()1f x x x ←--50 If 0()0f x = Then GoTo 120 60 If 0()()0f a f x < Then 70 0b x ← 80 Else90 0a x ←100 End If110 If ||a b c -≥ Then GoTo 20 120 Print 0x【追踪训练】1.在直角坐标系中作出函数x y 2=和x y -=4的图象,根据图象判断方程x x-=42的解的范围,再用二分法求这个方程的近似解(误差不超过0.001),并写出这个算法的伪代码,画出流程图。
苏教版必修三算法全套教案--流程图(3).docx
课题:流程图(三)教学目标:了解算法的循环结构的概念,能写出算法并画出含循环结构算法的流程图。
教学重点:写出算法并画出含循环结构算法的流程图。
教学过程一、问题情境北京获得了2008年第29届奥林匹克运动会的主办权.申奥最后阶段对遴选出的5个申办城市进行表决的操作程序是:首先进行第一轮投票,如果有一个城市的得票数超过总票数的一半,那么该城市获得举办权;如果所有城市得票数都不超过总票数的一半,则将,然后重复上述过程,直到选出一个举办城市为止。
请用一个算法结构表述上面的操作过程.算法:S1投票S2统计票数,若有一个城市的得票数超过总票数的一半,那么该城市获得举办权,转S3,否则淘汰票数最少的城市,转S1;S3宣布主办城市.流程图:二、建构数学1.循环结构的概念:需要重复执行同一操作的结构称为循环结构.某项工作没做好,有时必须从头开始,还没做好,再从头开始,直到做好为止•循环结构体现的就是在某条件下反复从头处理某步骤的情况.2.注意:①循环结构有两类常见结构一直到型循环与当型循环. 如图2就是常见的一种循环结构:先执行A框,再判断给定的条件P是否为“假”:若P为“假”,则再执行A,如此反复,真到p为“真”,该循环过程结束.这种结构属于直到型循环.如图3的循环结构属于当型循环.所谓当型循环是指:当给定的条件P成立(“真”)时,反复执彳丁A框操作,直到条件p为“假”时才停止循环.L图彳②两类循环结构的功能比较直到型的循环结构,其功能是:先执行A框,然后判断给定的条件P是否成立•如果P不成立,则执行A框,然后再对条件p作判断:如果P仍不成立,又执行A, 如此反复执彳亍A,直到给定的条件p成立为止.当型循环结构,其功能是:当给定的条件p成立时’执行A框操作,执彳亍完A后’再判断条件P是否成立:如果P仍成立,又执行A框,……如此反复执行A框,直到某一次p不成立为止.三、数学应用例1阅读课本例4,读懂流程图.变:写出求2x4x6x8x10的一个算法,画出流程图例2阅读课本例5,读懂流程图.四、课堂练习:1.课本第14页练习22.如图的流程图的作用是_________________3._____________________________ 图中是求50个数中的最大数并输出最大数的流程图.则①中的条件应为 _____________________________ ,②中的条件第3题图应为 _____4.下列四个流程图,都是为计算22+42+62+—+1002而设计的.正确的流程图为____________ ;图③中,输出的结果为 __________________ (只须给出算式表达式);在错误的流程图中,不能执行到底的为________ .图①图②图③图④。
高中数学 基本算法语句教案 苏教版必修3
高中数学 基本算法语句教案 苏教版必修3教学目标:通过伪代码学习基本的算法语句,更好地了解算法思想. 教学重点:如何进行算法分析. 教学难点:如何进行算法分析. 教学过程: Ⅰ.课题导入算法基本语句包括赋值语句、输入输出语句、条件语句、循环语句. 伪代码问题:已知某学生一次考试中语文、数学和英语学科的得分分别为85,90,95,试设计适当的算法求出这名学生三科的总分和平均分.解:sum ←0 C ←85 M ←90 E ←95sum ←C +M +EA ←sum /3 Print sum ,A endⅡ.讲授新课例1:设计一个解二元一次方程组的通同算法. 设二元一次方程组为⎩⎨⎧a 1x +b 1y =c 1a 2x +b 2y =c 2(a 1b 2-a 2b 1≠0) 用消元法解得⎩⎨⎧x =b 2c 1-b 1c 2a 1b 2-a 2b 1y =a 1c 2-a 2c 1a 1b 2-a 2b 1用伪代码表示为 用伪代码表示为 Read a 1,b 1,c 1,a 2,b 2,c 2x ← b 2c 1-b 1c 2a 1b 2-a 2b 1y ← a 1c 2-a 2c 1a 1b 2-a 2b 1Print x ,y例2:已知三角形的三边,试用流程图和伪代码表示求这个三角形的周长的算法. 解:流程图 伪代码Read a ,b ,c M ← a +b +c Print M例3:已知一匀变速运动的物体的初速度、末速度和加速度分别为V 1,V 2,a ,求物体运动的距离s .试编写求解这个问题的一个算法的流程图,并用伪代码表示这个算法.解:由题意可知,V 2=V 1+a t ,故运动时间t =V 2-V 1a所以,物体运动的距离s =V 1 t +12 a t 2=V 22-V 122a.据此,可设计算法如下: 将此算法程序用伪代码表示为:Read V 1,V 2,as ← V 22-V 122aPrint s End例4:写出下列用伪代码描述的算法执行后的结果. (1)算法开始 a ←2; a ←4; a ←a +a ; 输出a 的值; 算法结束 执行结果:( ) 答案:8(2)算法开始 n ←10; i ←2; sum ←0;while (i ≤n ) sum ←sum+i ; i ←i +2;输出sum 的值; 算法结束 执行结果:( ) 答案:30点评:本题主要考查学生对基本算法语句的灵活准确应用和自然语言与符号语言的转化,让学生理解用伪代码表示的算法. Ⅲ.课堂练习课本P 17 1,2,3. Ⅳ.课时小结Read 是输入语句的一种,输入数据还有其它方式;输入语句与赋值语句不同,赋值语句可以将一个代数表达式的赋于一个变量,而输入语句只能读入具体的数据.Ⅴ.课后作业课本P 24 1,2.基本算法语句(二)教学目标:使学生能结合选择结构的流程图学习条件语句,能用条件语句编写程序. 教学重点:如何在伪代码中运用条件语句. 教学难点:如何在伪代码中运用条件语句. 教学过程: Ⅰ.课题导入某百货公司为了促销,采用购物打折的优惠办法:每位顾客一次购物 (1)在1000元以上者,按九五折优惠. (2)在2000元以上者,按九折优惠. (3)在3000元以上者,按八五折优惠. (4)在5000元以上者,按八折优惠. 编写程序求优惠价.解析:设购物款数为x 元,优惠价为y 元,则优惠付款公式为y =⎪⎪⎪⎩⎪⎪⎪⎨⎧≥<≤<≤<≤<.5000)( 8.0)5000(3000 85.0)3000(2000 9.0)2000(1000 95.0)1000( x x x x x x x x x x 用条件语句表示为: Read xIf x <1000 then y =x ElseIf x <2000 then y =0.95x ElseIf x <3000 then y =0.9x ElseIf x <5000 then y =0.85x Else y =0.8x End if Print y点评:在准确理解算法的基础上,学会条件语句的使用.Ⅱ.讲授新课例1:写出下面流程图所表述的算法的功能并用伪代码表示.开始结束答案:解:输出两个不同的数中小的一个数.用伪代码表示为 Begin Read a ,b If a >b then Print b Else Print a End if End例2:某市电力公司为了鼓励居民用电,采用分段计费的方法计算电费:每月用电不超过100度时,按每度0.57元计算;每月用电超过100度时,其中的100度仍按原标准收费,超过部分每度按0.50元计算.问:如何设计一个计算应交电费的算法?答案:解:设月用电x 度时,应交电费y 元,当x ≤100和x >100时,写出y 关于x 的函数关系式为y =⎩⎨⎧>-+≤<.100 )100(5.057,1000 57.0x x x x所以,计算应交电费的算法可以用伪代码表示为 Begin Read xIf x ≤100 then y ←0.57x Elsey ←57+0.5(x -100) End if Print y End例3:试用条件语句描述计算应纳税所得额的算法过程,其算法如下: S1 输入工资x (x ≤5000); S2 如果x ≤800,那么y =0;如果800<x ≤1300,那么y =0.05(x -800); 如果1300<x ≤2800, 那么y =25+0.1(x -1300), 否则y =175+0.15(x -2800);S3 输出税收y ,结束.答案:解:这个算法用条件语句描述为 Begin Read xIf x ≤800 then y ←0Else if 800<x ≤1300 then y ←0.05(x -800)Else if 1300<x ≤2800 then y ←25+0.1(x -1300) Elsey ←175+0.15(x -2800) End if Print y End例4:在水果产地批发水果,100 kg 为批发起点,每100 kg 40元;100 kg 至1000 kg 8折优惠;1000 kg 至5000 kg ,超过1000 kg 部分7折优惠;5000 kg 至10000 kg ,超过5000 kg 的部分6折优惠;超过10000 kg ,超过部分5折优惠.请写出销售金额y 与销售量x 之间的函数关系,并用伪代码表示计算销售金额的算法.答案:y =⎪⎪⎩⎪⎪⎨⎧>+≤<+≤<+≤<.10000 6402.0,100005000 24024.0,50001000 4028.0,1000100 32.0x x x x x x x x这个算法用条件语句描述为Begin Read xIf 100<x ≤1000 then y ←0.32xElse if 1000<x ≤5000 then y ←0.28x +40Else if 5000<x ≤10000 then y ←0.24x +240 Elsey ←0.2x +640 End if Print y End Ⅲ.课堂练习课本P 20 1,2,3. Ⅳ.课时小结算法中的选择结构可以用条件语句实现. if 选择结构:if/else 选择结构:开始Ⅴ.课后作业课本P24 3,4.基本算法语句(三)教学目标:使学生能结合选择结构的流程图学习条件语句,能用条件语句编写程序.教学重点:如何在伪代码中运用条件语句.教学难点:如何在伪代码中运用条件语句.教学过程:Ⅰ.课题导入写出计算1+2+3+4+…+100之和的伪代码.答案:解:此问题可以用循环语句表示为S←1For I from 2 to 100S←S+IEnd ForPrint SⅡ.讲授新课例1:依次将十个数输入,要求将其中最大的数打印出来.试用流程图和伪代码表示问题的算法.用伪代码设计算法如下:BeginRead Xmax←XFor I from 2 to 10Read XIf X>max thenmax←XEnd ifEnd forPrint maxEnd流程图:N结束…+1500,请用流程图描述求S 的算法并用伪代码表示. 解析:流程图如下图所示:从流程图可以看出这是一个循环结构,我们可以运用循环语句来实现. Begin S ←5For I from 10 to 1500 step 5 S ←S +I End For Print S End点评:在准确理解算法的基础上,学会循环语句的使用.循环语句包括for 循环、While 循环和Until 循环.解题时要根据需要灵活运用.循环语句包括if …then ,if …then …else ,并且if …then …else 可以嵌套,解题时要根据需要灵活运用.例3:伪代码算法填空.有一列数:1,1,2,3,5,8,13,21,….这列数有个特点,前两个数都是1,从第3个数开始,每个数都是前两个数的和,例如:3是1和2的和;13是5和8的和等等,这样的一列数一般称为斐波那契数.下列伪代码所描述的算法功能是输出前10个斐波那契数,请把这个算法填写完整. a ←1; b ←1;输出a ,b ; n ←2;while n <10; n ←n +1; c ←a +b ; 输出c ; 编号①; 编号②; end while答案:①a ←b ②b ←c例4:求1-21+31-41+…+91-101的值. 算法分析:第一步是选择一个变量S 表示和,并赋给初值0,再选一个变量H ,并赋给初值0;第二步开始进入for 循环语句,首先设i 为循环变量,并设初值、步长、终值; 第三步为循环表达式(循环体);第四步用“end for ”控制一次循环,开始一次新的循环. 伪代码如下: S ←0 H ←0For i from 1 to 10 H ←(-1)i +1/i S ←S +H End for Print S 例5:小明第一天背一个单词,第二天背两个单词,以后每一天比前一天多背一个单词,问他前十天共背了多少个单词?解:第一步是选择一个变量S 表示和,并赋给初值0,第二步开始进入for 循环语句,首先设i 为循环变量,并设初值、步长、终值; 第三步为循环表达式(循环体);第四步用“end for ”控制一次循环,开始一次新的循环. 伪代码如下: S ←0For i from 1 to 10 S ←S +i End for Print S例6:求平方值小于2000的最大整数. 解:伪代码: j ←1While j2<2000j←j+1End whilej←j-1Print j例7:用伪代码描述求解S=1×2×3×…×(n-1)×n的算法.解:此问题可以用循环语句表示为BeginRead nS←1For I from 1 to nS←S×IEnd forPrint SEnd例8:输入一个正整数n,并计算S=11×22×33×…×n n的值.解:第一步是选择一个变量n,并要求输入初值;第二步是选择一个变量S表示和,并赋给初值0;第三步开始进入for循环语句,首先设i为循环变量,并设初值、步长、终值;第四步为循环表达式(循环体);第五步用“end”控制一次循环,开始一次新的循环.伪代码如下:Read nS←0For i from 1 to nS←S×i iEnd forPrint SEnd例9:某城市现有人口总数为100万人,如果年自然增长率为1.2%,试解答下面的问题:(1)写出该城市人口数y(万人)与年份x(年)的函数关系式;(2)用伪代码写出计算10年以后该城市人口总数的算法;(3)用伪代码写出计算大约多少年以后该城市人口将达到120万人.答案:(1)y=100×(1+0.012)x.(2)10年后该城市人口总数为y=100×(1+0.012)10.算法如下:Beginy←100t←1.012For I from 1 to 10y←y×tEnd forPrint yEnd(3)设x 年后该城市人口将达到120万人,即100×(1+0.012)x=120. 算法如下: Begin S ←100 I ←1.012 T ←0While S <120 S ←S ×I T ←T +1 End while Print T End Ⅲ.课堂练习课本P 23 1,2,3,4. Ⅳ.课时小结算法中的循环结构可以用循环语句实现.正确理解两种循环语句:for 循环、当型循环和直到型循环.当型循环:while (条件表达式)循环体语句;直到型循环:do 循环体语句;for 循环:for(表达式1;表达式2;表达式3)循环体语句;开始课本P 24 5,6.。
苏教版高中数学必修三《算法案例:二分法求方程近似解》教案
1.4 算法案例重点难点重点:理解区间二分法的意义;学会分析类似的问题;通过案例分析,体会算法思想难点:理解二分法的算法思想和算法表示 学习要求1.理解区间二分法的意义,二分法主要是采用了循环结构处理问题要会分析类似的问题。
2.能由流程图分析出期所含有的结构并用为代码表示出相应的算法.3.GoTo 语句的认识及其他语句的进一步熟悉。
【课堂互动】问题:用区间二分法写出方程013=--x x 在区间[1,1.5]内的一个近似解(误差不超过0.001)的一个算法。
算法设计思想:令函数1)(3--=x x x f .如图,如果估计出方程()0f x =在某区间[,]a b 内有一个根*x ,就能用二分法搜索求得符合误差限制c 的近似解.取[a ,b]的中点0x ,如果f(0x )=0,则0x 就是方程的根;否则判断根*x 在0x 的左侧还是右侧,如果在左侧,就用[a ,0x ]代替区间 [a ,b]。
如果在右侧,就用[0x ,b]代替区间[a ,b],如此循环下去,直到|a-b|<(c 是约定的误差范围,本例中为0.001)时终止,此时*x ≈0x 。
算法步骤:S1 取[a ,b]的中点)(210b a x +=,将区间一分为二; S2 若0)(0=x f ,则0x 就是方程的根;否则判断根*x 在0x 的左侧还是右侧: 若)()(0x f a f >0,则),(0*b x x ∈,以0x 代替a ; 若)()(0x f a f <0,则),(0*x a x ∈,以0x 代替b ; S3 若b a -<c ,计算终止,此时*x ≈0x ,否则转S1。
【流程图】0)(0=x f)()(0x f a f <0开始 Y结束输入a ,b ,c)(a f ←13--a a)(0x f ←1030--x x输出0x )(210b a x +=a ←0xb ←0xb a -<cNY NY N【伪代码】代码1: Read a,b,c02a bx +←While ||a b c -≥ And 30010x x --≠ If 3(1)a a --⨯300(1)x x --<00b x ← Else 0a x ← End If02a bx +←End While Print 0x 代码2:10 Read ,,a b c 20 0()2a b x +←30 3()1f a a a ←--40 3000()1f x x x ←--50 If 0()0f x = Then GoTo 120 60 If 0()()0f a f x < Then 70 0b x ← 80 Else 90 0a x ← 100 End If110 If ||a b c -≥ Then GoTo 20 120 Print 0x【追踪训练】1.在直角坐标系中作出函数x y 2=和x y -=4的图象,根据图象判断方程x x -=42的解的范围,再用二分法求这个方程的近似解(误差不超过0.001),并写出这个算法的伪代码,画出流程图。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§1.4 算法案例(1)教学目标:(1)介绍中国古代算法的案例-韩信点兵-孙子问题; (2)用三种方法熟练的表示一个算法; (3)让学生感受算法的意义和价值.教学重点、难点:不定方程解法的算法. 教学过程:一、问题情境(韩信点兵-孙子问题):韩信是秦末汉初的著名军事家。
据说有一次汉高祖刘邦在卫士的簇拥下来到练兵场,刘邦问韩信有什么方法,不要逐个报数,就能知道场上的士兵的人数。
韩信先令士兵排成3列纵队,结果有2个人多余;接着立即下令将队形改为5列纵队,这一改,又多出3人;随后他又下令改为7列纵队,这次又剩下2人无法成整行。
在场的人都哈哈大笑,以为韩信不能清点出准确的人数,不料笑声刚落,韩信高声报告共有士兵2333人。
众人听了一愣,不知道韩信用什么方法这么快就能得出正确的结果的。
同学们,你知道吗? 背景说明:1.类似的问题最早出现在我国的《算经十书》之一的《孙子算经》中原文是:“今有物,不知其数,三三数之,剩二,五五数之,剩三,七七数之,剩二,问物几何?答曰:「二十三」” 2.孙子算经的作者及确实着作年代均不可考,不过根据考证,着作年代不会在晋朝之後,以这个考证来说上面这种问题的解法,中国人发现得比西方早,所以这个问题的推广及其解法,被称为中国剩余定理(孙子定理)。
中国剩余定理在近代抽象代数学中占有一席非常重要的地位; 3.该问题的完整的表述,后来经过宋朝数学家秦九韶的推广,又发现了一种算法,叫做“大衍求一术”。
在中国还流传着这么一首歌诀: 三人同行七十稀,五树梅花廿一枝, 七子团圆月正半,除百零五便得知。
它的意思是说:将某数(正整数)除以3所得的余数乘以70,除以5所得的余数乘以21,除以7所得的余数乘以15,再将所得的三个积相加,并逐次减去105,减到差小于105为止。
所得结果就是某数的最小正整数值。
用上面的歌诀来算《孙子算经》中的问题,便得到算式: 2×70+3×21+2×15=233, 233-105×2=23, 即所求物品最少是23件。
二.算法设计思想:“孙子问题”相当于求关于,,x y z 的不定方程组的325372m x m y m z =+⎧⎪=+⎨⎪=+⎩的正整数解;设所求的数为m ,根据题意m 应该同时满足下列三个条件: ①m 被3除后余2,即mod(,3)2m =; ②m 被5除后余3,即mod(,5)3m =; ③m 被7除后余2,即mod(,7)2m =;用自然语言可以将算法写为:1S 1m ←2S 1m m ←+3S 如果mod(,3)2m =且mod(,5)3m =且mod(,7)2m =则执行4S ,否则执行2S ; 4S 输出m三.流程图和伪代码:伪代码: m ← 2While Mod (m ,3)≠2or Mod (m ,5)≠3 or Mod (m ,7)≠2 m ← m +1 End WhilePrint m练习: 有3个连续的自然数,其中最小的能被15整除,中间的能被17整除,最大的能被19整除,求满足要求的一组三个连续的自然数。
伪代码:m ← 2While Mod (m ,15)=0or Mod (m +1,17)=0 or Mod (m+2,19)=0 m ← m +1 End WhilePrint m, m+1, m+2思考:以下伪代码是否可行? k ←1 a ←15kWhile Mod(a +1,17)≠0 or_ Mod(a +2,19)≠0 k ←k +1 a ←15k End WhilePrint a ,a +1,a +2四、回顾小结:1.中国数学在世界数学史上的巨大贡献,韩信点兵-孙子问题的求解算法; 2.利用循环结构实现整数的搜索;3.利用逻辑运算符Or 和And 实现多条件的判断。
五【随堂演练】:1.下列各数中,被3,5,9除都余2的正整数是( A )A.17B.47C.29D.112.有一堆火柴棒,三根三根的数,最后余下两根;五根无根的数,最后余下三根;七根七根的数,最后余下两根。
那么这对火柴棒最少是__23________根.3._____1_____)37.0(____2__)56.2(-=-=Int Int_____6___)15,6(______3___)6,15(==Mod Mod4.有一把围棋子,5个5个地数,最后余下2个;7个7个地数,最后余下3个;9个9个地数,最后余下4个.请设计一种算法,求出这把棋子至少有多少个.伪代码:m ← 2While Mod (m ,3)≠2or Mod (m ,7)≠3 or Mod (m ,9)≠4 m ← m +1 End WhilePrint m§1.4 算法案例(2)教学目标:(1)理解辗转相除法与更相减损术中蕴含的数学原理,并能根据这些原理进行算法分析; (2)基本能根据算法语句与程序框图的知识设计完整的程序框图并写出算法程序;教学重点:理解辗转相除法与更相减损术求最大公约数的方法教学难点:把辗转相除法与更相减损术的方法转换成程序框图与程序语言. 教学过程: 一、问题情境在初中,我们已经学过求最大公约数的知识,你能求出18与30的公约数吗?我们都是利用找公约数的方法来求最大公约数,如果公约数比较大而且根据我们的观察又不能得到一些公约数,我们又应该怎样求它们的最大公约数?比如求8251与6105的最大公约数?这就是我们这一堂课所要探讨的内容.二、算法设计思想:1.辗转相除法:例1.求两个正数8251和6105的最大公约数.(分析:8251与6105两数都比较大,而且没有明显的公约数,如能把它们都变小一点,根据已有的知识即可求出最大公约数)解:8251=6105×1+2146显然8251和的2146最大公约数也必是2146的约数,同样6105与2146的公约数也必是8251的约数,所以8251与6105的最大公约数也是6105与2146的最大公约数.6105=2146×2+1813 2146=1813×1+333 1813=333×5+148 333=148×2+37 148=37×4+0则37为8251与6105的最大公约数.以上我们求最大公约数的方法就是辗转相除法.也叫欧几里德算法,它是由欧几里德在公元前300年左右首先提出的.利用辗转相除法求最大公约数的步骤如下:第一步:用较大的数m 除以较小的数n 得到一个商0q 和一个余数0r ;第二步:若00r =,则n 为,m n 的最大公约数;若00r ≠,则用除数n 除以余数0r 得到一个商1q 和一个余数1r ;第三步:若10r =,则1r 为,m n 的最大公约数;若10r ≠,则用除数0r 除以余数1r 得到一个商2q 和一个余数2r ;……依次计算直至0n r =,此时所得到的1n r -即为所求的最大公约数. 练习:利用辗转相除法求两数4081与20723的最大公约数(答案:53) 2.更相减损术我国早期也有解决求最大公约数问题的算法,就是更相减损术.更相减损术求最大公约数的步骤如下:可半者半之,不可半者,副置分母之数,以少减多,更相减损,求其等也,以等数约之.翻译出来为:第一步:任意给出两个正数;判断它们是否都是偶数.若是,用2约简;若不是,执行第二步.第二步:以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数.继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数. 例2. 用更相减损术求98与63的最大公约数.解:由于63不是偶数,把98和63以大数减小数,并辗转相减, 即:98-63=3563-35=28 35-28=7 28-7=21 21-7=14 14-7=7所以,98与63的最大公约数是7.练习:用更相减损术求两个正数84与72的最大公约数.(答案:12) 3.比较辗转相除法与更相减损术的区别(1)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显.(2)从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到.三.辗转相除法的流程图及伪代码(1)算理:所谓辗转相除法,就是对于给定的两个数,用较大的数除以较小的数。
若余数不为零,则将余数和较小的数构成新的一对数,继续上面的除法,直到大数被小数除尽,则这时较小的数就是原来两个数的最大公约数。
(2)算法步骤第一步:输入两个正整数m,n(m>n). 第二步:计算a 除以b 所得的余数r. 第三步:a=b,b=r.第四步:若r =0,则a,b 的最大公约数等于b ;否则转到第二步. 第五步:输出最大公约数b.(3)辗转相除法的程序框图及程序 程序框图:伪代码:Read ,While Mod(,)0 Mod(,) End While Print a ba b r a b a b b r b≠←←←用较大的数除以较小的数,得到除式r nq m +=)0(n r <≤,直到0=r .例1 试画出求两个正整数a ,b 最小公倍数的流程图,并写出其伪代码。
三个正整数? 伪代码: Read a ,bc ←abWhile Mod(a ,b )≠0 r ← Mod(a ,b ) a ←bb←rEnd WhilePrint c/b2.更相减损术(1)算理:所谓更相减损术,就是对于给定的两个数,用较大的数减去较小的数,然后将差和较小的数构成新的一对数,再用较大的数减去较小的数,反复执行此步骤直到差数和较小的数相等,此时相等的两数便为原来两个数的最大公约数。
(2)算法步骤第一步:输入两个正整数a,b(a>b);第二步:若a不等于b ,则执行第三步;否则转到第五步;第三步:把a-b的差赋予r;第四步:如果b>r, 那么把b赋给a,把r赋给b;否则把r赋给a,执行第二步;第五步:输出最大公约数b.程序框图:伪代码:Read a,bWhile a=br ← a-bIf b>r Thena ← bb ← rElsea ← rEnd IfEnd WhilePrint bEnd3.比较辗转相除法与更相减损术的区别(1)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显.(2)从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到.四、回顾小结:比较辗转相除法与更相减损术的区别(1)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显。