知识讲解_算法案例_基础
- 格式:doc
- 大小:244.00 KB
- 文档页数:8
《生活中的算法-查找与排》教学设计方案(第一课时)一、教学目标1. 理解查找和排序算法的基本原理。
2. 掌握使用条件语句进行查找和排序的方法。
3. 能够应用所学知识解决生活中的实际问题。
二、教学重难点1. 教学重点:学习使用条件语句进行查找和排序。
2. 教学难点:在实际生活中运用所学算法解决实际问题。
三、教学准备1. 准备教学PPT和相关视频素材。
2. 准备计算机和相关软件,如Excel、Scratch等。
3. 准备一些实际问题,供学生实践。
4. 安排小组讨论和展示的时间。
5. 准备一些练习题,供学生巩固所学知识。
四、教学过程:本节课我们主要通过以下四个环节来完成教学任务:1. 引入环节首先,我会通过一个简单的例子来引入查找和排序的概念。
例如,假设我们有一个班级的名单,我们需要找到某个学生的名字,或者将某个学生排在前面。
这个过程就是查找和排序。
通过这个例子,可以让学生们对算法有一个初步的认识,并且能够激发他们的学习兴趣。
2. 探究环节接下来,我会给学生们一些具体的任务,让他们自己动手实践查找和排序算法的实现。
我会给出一些常见的查找和排序算法,例如线性查找、二分查找、冒泡排序、插入排序等,并给出一个简单的代码示例。
学生们可以通过阅读代码、调试代码来理解这些算法的实现过程,并且能够自己动手编写代码进行实践。
在探究过程中,我会引导学生们思考一些问题,例如:* 这些算法的优缺点是什么?* 如何优化这些算法以提高效率?* 查找和排序算法在哪些情况下适用?通过这些问题,可以让学生们更好地理解算法的本质,并且能够培养他们的思考能力和解决问题的能力。
3. 实践环节在学生们掌握了基本的查找和排序算法之后,我会给他们一些实际生活中的问题,例如:* 如何快速查找手机号码簿中的某个电话号码?* 如何将购物清单按照价格从低到高进行排序?* 如何快速定位网站中的某个关键字?学生们需要自己动手编写代码来实现这些算法,并且能够在实践中应用所学知识。
基本算法语句【学习目标】1、正确理解输入语句、输出语句、赋值语句的结构.2、会写一些简单的程序.3、掌握赋值语句中的“=”号的作用.4、正确理解条件语句和循环语句的概念,并掌握其结构的区别与联系.5、会应用条件语句和循环语句编写程序.【要点梳理】要点一、输入语句在程序中的INPUT语句就是输入语句.这个语句的一般格式是:其中,“提示内容”一般是提示用户输入什么样的信息.功能:可对程序中的变量赋值.要点诠释:①“提示内容”提示用户输入什么样的信息,必须加双引号,提示内容“原原本本”的在计算机屏幕上显示,提示内容与变量之间要用分号隔开;②变量是指程序在运行时其值是可以变化的量;③一个语句可以给多个变量赋值,中间用“,”分隔,但最后的变量的后面不需要;④要求输入的数据必须是常量,而不能是函数、变量或表达式;⑤无计算功能.例如,输入一个学生数学,语文,英语三门课的成绩,可以写成:INPUT “数学,语文,英语”;a,b,c要点二、输出语句在程序中的PRINT语句是输出语句.它的一般格式是:同输入语句一样,表达式前也可以有“提示内容”.功能:可输出表达式的值,计算.要点诠释:①“提示内容”提示用户输出什么样的信息,提示内容必须加双引号,提示内容要用分号和表达式分开;②表达式是指程序要输出的数据,可以是变量、计算公式或系统信息;③一个语句可以输出多个表达式,不同的表达式之间可用“,”分隔;④有计算功能,可以输出常量、变量或表达式的值以及字符.要点三、赋值语句用来表明赋给某一个变量一个具体的确定值的语句.它的一般格式是:赋值语句中的“=”叫做赋值号.功能:先计算出赋值号右边表达式的值,然后把这个值赋给赋值号左边的变量,使该变量的值等于表达式的值.要点诠释:①赋值号的左右两边不能对换,如“A=B”“B=A”的含义运行结果是不同的;②格式中右边“表达式”可以是一个数据、常量和算式,如果“表达式”是一个算式时,赋值语句的作用是先计算出“=”右边表达式的值,然后将该值赋给“=”左边的变量;③赋值号左边只能是变量名字,而不能是表达式,如:2=X 是错误的;④不能利用赋值语句进行代数式的演算(如化简、因式分解等);⑤对于一个变量可以多次赋值;⑥有计算功能;⑦赋值号与数学中的等号的意义是不同的.赋值号左边的变量如果原来没有值,则执行赋值语句后,获得一个值,如果已有值,则执行该语句后,以赋值号右边表达式的值代替该变量的原值,即将“原值”冲掉.要点四、条件语句算法中的条件结构是由条件语句来表达的,是处理条件分支逻辑结构的算法语句.它的一般格式是:(IF-THEN-ELSE 格式)当计算机执行上述语句时,首先对IF 后的条件进行判断,如果条件符合,就执行THEN 后的语句1,否则执行ELSE 后的语句2.其对应的程序框图为:(如上右图)在某些情况下,也可以只使用IF-THEN 语句:(即IF-THEN 格式)计算机执行这种形式的条件语句时,也是首先对IF 后的条件进行判断,如果条件符合,就执行THEN 后的语句,如果条件不符合,则直接结束该条件语句,转而执行其他语句.其对应的程序框图为:(如上右图)要点诠释:条件语句的作用:在程序执行过程中,根据判断是否满足约定的条件而决定是否需要转换到何处去.需要计算机按条件进行分析、比较、判断,并按判断后的不同情况进行不同的处理.IF 条件 THEN 语句END IF要点五、循环语句算法中的循环结构是由循环语句来实现的.对应于程序框图中的两种循环结构,一般程序设计语言中也有当型(WHILE 型)和直到型(UNTIL 型)两种语句结构.即WHILE 语句和UNTIL 语句.1.WHILE 语句的一般格式是:其中循环体是由计算机反复执行的一组语句构成的.WHLIE 后面的“条件”是用于控制计算机执行循环体或跳出循环体的.当计算机遇到WHILE 语句时,先判断条件的真假,如果条件符合,就执行WHILE 与WEND 之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止.这时,计算机将不执行循环体,直接跳到WEND 语句后,接着执行WEND 之后的语句.因此,当型循环有时也称为“前测试型”循环.其对应的程序结构框图为:(如上右图)2.UNTIL 语句的一般格式是:其对应的程序结构框图为:(如上右图)直到型循环又称为“后测试型”循环,从UNTIL 型循环结构分析,计算机执行该语句时,先执行一次循环体,然后进行条件的判断,如果条件不满足,继续返回执行循环体,然后再进行条件的判断,这个过程反复进行,直到某一次条件满足时,不再执行循环体,跳到LOOP UNTIL 语句后执行其他语句,是先执行循环体后进行条件判断的循环语句.要点诠释当型循环与直到型循环的区别①当型循环是先判断后执行,直到型循环是先执行后判断;②当型循环用WHILE 语句,直到型循环用UNTIL 语句;③对同一算法来说,当型循环和直到型循环的条件互为反条件.【典型例题】类型一:输入语句、输出语句和赋值语句例1.判断下列输入、输出语句是否正确?为什么?(1)输入语句INPUT a ;b ;cWHILE 条件 循环体 WENDDO 循环体 LOOP UNTIL 条件(2)输入语句INPUT x=3(3)输出语句PRINT A=4(4)输出语句PRINT 20,3*2【解析】(1)错,变量之应用“,”隔开;(2)错,INPUT语句中只能是变量而不能是表达;(3)错,PRINT语句中不能用赋值号“=”;(4)对,PRINT语句可以输出常量、变量、表达的值。
第1篇一、背景随着信息技术的飞速发展,算法已经成为现代社会不可或缺的一部分。
在计算机科学、数据科学、人工智能等领域,算法的应用越来越广泛。
为了培养学生的逻辑思维能力、问题解决能力和创新意识,将算法融入教学实践显得尤为重要。
本文以某高校计算机科学与技术专业为例,介绍一种算法的教学实践案例。
二、教学目标1. 理解算法的基本概念和特性。
2. 掌握常用算法的设计与实现方法。
3. 能够运用算法解决实际问题。
4. 培养学生的团队合作精神和创新能力。
三、教学内容1. 算法的基本概念:算法的定义、特性、复杂度等。
2. 常用算法:排序算法(冒泡排序、选择排序、插入排序等)、查找算法(二分查找、顺序查找等)、图算法(广度优先搜索、深度优先搜索等)。
3. 算法设计方法:分治法、动态规划、贪心算法等。
4. 算法实现:使用Python语言实现各种算法。
四、教学实践案例1. 案例背景某高校计算机科学与技术专业开设了一门《数据结构与算法》课程,课程内容涉及算法的基本概念、常用算法、算法设计方法以及算法实现等。
为了提高学生的实践能力,教师决定采用案例教学法,通过一个具体的案例让学生在实践中学习算法。
2. 案例描述案例:某公司需要开发一个图书管理系统,实现以下功能:(1)图书信息录入:包括书名、作者、出版社、出版日期、价格等信息。
(2)图书查询:根据书名、作者、出版社等信息进行查询。
(3)图书借阅:实现图书的借阅、归还功能。
(4)图书统计:统计图书的借阅次数、库存数量等信息。
3. 教学过程(1)引入案例教师首先向学生介绍案例背景,让学生了解图书管理系统的功能和需求。
(2)分析问题教师引导学生分析案例中的问题,明确需要解决的问题,如图书信息录入、查询、借阅、统计等。
(3)设计算法教师带领学生一起设计解决案例中问题的算法,如图书信息录入可以使用链表实现,图书查询可以使用二分查找算法,图书借阅可以使用栈实现,图书统计可以使用哈希表实现。
算法案例——辗转相除法算法案例——辗转相除法育才中学潘敏⼀、教材分析选⾃苏教版普通⾼中课程标准实验教科书必修3第⼀章第4节。
1、地位作⽤:与传统教学内容相⽐,《算法初步》为新增内容,算法是计算机科学的重要基础,从⽇常⽣活的电⼦邮件发送到繁忙的交通管理,从与⼈们⽣产、⽣活息息相关的天⽓预报到没有硝烟的战争模拟等等都离不开计算机算法。
算法思想已经渗透到社会的⽅⽅⾯⾯,算法思想也逐渐成为每个现代⼈应具有的数学素养。
在以前的学习中,虽然没有出现算法这个名词,但实际上在数学教学中已经渗透了⼤量的算法思想,如四则运算的过程,求解⽅程的步骤,以及将要学习的数列求和等等,完成这些⼯作都需要⼀系列程序化的步骤,这就是算法思想。
本节内容是探究古代算法案例――辗转相除法,巩固算法三种描述性语⾔(⾃然语⾔、流程图和伪代码),提⾼学⽣分析和解决问题的能⼒。
2、教学⽬标:(1)知识⽬标:①理解辗转相除法原理;②能⽤⾃然语⾔、流程图和伪代码表达辗转相除法;③能应⽤迭代算法思想。
(2)能⼒⽬标:①培养学⽣把具体问题抽象转化为算法语⾔的能⼒;②培养学⽣⾃主探索和合作学习的能⼒。
(3)情感⽬标:①使学⽣进⼀步了解从具体到抽象,抽象到具体的辨证思想⽅法,对学⽣进⾏辨证唯物主义教育;②创设和谐融洽的教学氛围和阶梯形问题,使学⽣在活动中获得成功感,从⽽培养学⽣热爱数学、积极学习数学、应⽤数学的热情。
3、教学重点与难点:(1)教学重点:①理解辗转相除法原理;②能⽤⾃然语⾔、流程图和伪代码表达辗转相除法。
(2)教学难点:①理解和区分两种循环结构表达辗转相除法;②能应⽤迭代算法思想。
⼆、教法学法1、教法:以问题为载体,有引导的对话,让学⽣经历知识的形成过程和发展过程,从⽽突出教学重点,并采⽤多媒体教学,增加课堂容量,有利于学⽣活动的充分展开。
2、学法:以观察、讨论、思考、分析、动⼿操作、⾃主探索、合作学习多种形式相结合,引导学⽣多⾓度、多层⾯认识事物,突破教学难点。
第1篇一、背景随着信息技术的飞速发展,算法在各个领域的应用越来越广泛。
为了培养学生的算法思维和编程能力,提高学生的综合素质,我国高校纷纷开设了算法课程。
然而,传统的算法教学方式往往过于理论化,学生难以将理论知识与实践相结合。
为了解决这一问题,本文提出一种基于项目驱动的算法实践教学设计案例。
二、教学目标1. 让学生掌握基本的算法设计方法,包括分治法、贪心法、动态规划法等。
2. 培养学生的编程能力,使学生能够熟练运用编程语言实现算法。
3. 提高学生的团队合作能力,使学生能够与团队成员有效沟通,共同解决问题。
4. 增强学生的创新意识,使学生能够针对实际问题提出新的解决方案。
三、教学内容1. 基本算法设计方法:分治法、贪心法、动态规划法等。
2. 编程语言:Python、Java、C++等。
3. 项目驱动:设计并实现一个具有实际应用背景的算法项目。
四、教学过程1. 项目选题与需求分析教师根据学生的专业背景和兴趣,选取一个具有实际应用背景的算法项目。
例如,设计一个在线图书馆系统,实现图书借阅、归还、查询等功能。
教师引导学生分析项目需求,明确项目目标。
2. 算法设计与实现(1)分治法:以图书借阅功能为例,将图书按照类别进行划分,然后对每个类别分别进行借阅操作。
(2)贪心法:以图书归还功能为例,根据图书归还时间排序,优先归还最早归还的图书。
(3)动态规划法:以图书查询功能为例,采用动态规划法实现关键词搜索,提高查询效率。
(4)编程实现:教师引导学生使用Python、Java、C++等编程语言实现算法,并进行调试和优化。
3. 团队合作与沟通教师将学生分成若干小组,每组负责项目的一个模块。
小组成员之间进行沟通,明确各自的任务和责任。
教师定期组织小组会议,了解项目进展,解决团队协作中的问题。
4. 项目测试与评价教师组织学生进行项目测试,确保项目功能的完整性和稳定性。
同时,对学生进行评价,包括编程能力、算法设计能力、团队合作能力等方面。
高中信息技术算法教案教案标题:高中信息技术-算法教案目标:1. 了解算法的基本概念和作用。
2. 掌握算法设计和分析的基本方法。
3. 能够运用算法解决实际问题。
教学重点:1. 算法的定义和特性。
2. 常见的算法设计方法。
3. 算法的时间复杂度和空间复杂度分析。
教学难点:1. 理解和应用递归算法。
2. 学会使用分治法解决问题。
3. 理解动态规划算法的原理和应用。
教学准备:1. 电脑和投影仪。
2. 相关教学PPT和示例代码。
3. 学生练习作业。
教学过程:一、导入(5分钟)1. 利用教学PPT引入算法的概念,提出问题:“什么是算法?为什么需要学习算法?”2. 引导学生思考并讨论,梳理出算法的定义和作用。
二、算法基础知识讲解(15分钟)1. 通过教学PPT介绍算法的基本特性,如输入、输出、确定性和有限性。
2. 解释算法的设计方法,如穷举法、贪心法、分治法、动态规划等,并举例说明各种方法的应用场景和特点。
三、算法复杂度分析(20分钟)1. 讲解算法的时间复杂度和空间复杂度的概念和意义。
2. 通过示例代码演示如何计算算法的时间复杂度和空间复杂度。
3. 强调优化算法的重要性,引导学生思考如何改进算法以提高效率。
四、算法设计与实践(30分钟)1. 分组讨论或小组合作,给学生分发练习作业,要求设计一个算法解决实际问题。
2. 学生根据所学算法设计方法,尝试解决问题,并编写相应的代码。
3. 学生展示自己的算法设计思路和实现结果,进行互相评价和讨论。
五、总结与拓展(10分钟)1. 教师总结本节课的重点内容和学习收获。
2. 提供相关拓展资源,如推荐书籍、网站等,供学生进一步学习和探索。
教学延伸:1. 鼓励学生参与算法竞赛,提高算法设计和分析能力。
2. 组织学生参观相关企业或机构,了解算法在实际应用中的重要性和发展前景。
教学评估:1. 学生课堂参与度和讨论质量。
2. 学生完成的练习作业和代码质量。
3. 学生对算法概念和应用的理解程度。
算法案例【学习目标】1.理解辗转相除法与更相减损术中蕴含的数学原理,并能根据这些原理进行算法分析;2.基本能根据算法语句与程序框图的知识设计完整的程序框图并写出算法程序;3.了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质;4.了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进行各种进位制之间的转换.【要点梳理】要点一:辗转相除法也叫欧几里德算法,它是由欧几里德在公元前300年左右首先提出的.利用辗转相除法求最大公约数的步骤如下:第一步:用较大的数m除以较小的数n得到一个商q0和一个余数r0;第二步:若r0=0,则n为m,n的最大公约数;若r0≠0,则用除数n除以余数r0得到一个商q1和一个余数r1;第三步:若r1=0,则r0为m,n的最大公约数;若r1≠0,则用除数r0除以余数r1得到一个商q2和一个余数r2;……依次计算直至r n=0,此时所得到的r n-1即为所求的最大公约数.用辗转相除法求最大公约数的程序框图为:INPUT “m=”;m INPUT “n=”;n IF m<n THEN x=m m=n n=x END IF r=m MOD n WHILE r<>0 r=m MOD n m=n n=r WEND PRINT n END要点诠释:辗转相除法的基本步骤是用较大的数除以较小的数,考虑到算法中的赋值语句可以对同一变量多次赋值,我们可以把较大的数用变量m 表示,把较小的数用变量n 表示,这样式子)0(n r r q n m <≤+⋅=就是一个反复执行的步骤,因此可以用循环结构实现算法. 要点二:更相减损术我国早期也有解决求最大公约数问题的算法,就是更相减损术.更相减损术求最大公约数的步骤如下:可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也.以等数约之.翻译出来为:第一步:任意给出两个正整数;判断它们是否都是偶数.若是,用2约简;若不是,执行第二步. 第二步:以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数.继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数.理论依据:由r b a r b a +=→=-,得b a ,与r b ,有相同的公约数 更相减损术一般算法:第一步,输入两个正整数)(,b a b a >;第二步,如果b a ≠,则执行3S ,否则转到5S ; 第三步,将b a -的值赋予r ;第四步,若r b >,则把b 赋予a ,把r 赋予b ,否则把r 赋予a ,重新执行2S ; 第五步,输出最大公约数b . 程序:INPUT “a=”,a INPUT “b=”,b WHILE a<>b IF a>=bELSE b=b-a WEND ENDPRINT b 或者INPUT “请输入两个不相等的正整数”;a ,b i=0WHILE a MOD 2=0 AND b MOD 2=0 a=a/2 b=b/2 i=i+1 WEND DOIF b<a THEN t=a a=b b=t END IF c=a -b a=b b=cLOOP UNTIL a=b PRINT a^i END要点诠释:用辗转相除法步骤较少,而更相减损术虽然有些步骤较长,但运算简单. 要点三:秦九韶计算多项式的方法12121012312102312101210()()(())((()))n n n n n n n n n n n n n n n n n n n f x a x a x a x a x a a x a x a x a x a a x a x a x a x a a x a x a x a x a --------------=+++++=+++++=+++++==+++++令12(1)((()))k n n n n k n k v a x a x a x a x a -----=+++++,则有01nk k nkv a v v x a--=⎧⎨=+⎩,其中n k ,2,1=.这样,我们便可由0v 依次求出n v v v ,,21;1323212101,,,a x v v a x v v a x v v a x v v n n n n n +=+=+=+=----要点诠释:显然,用秦九韶算法求n 次多项式的值时只需要做n 次乘法和n 次加法运算 要点四:进位制进位制是一种记数方式,用有限的数字在不同的位置表示不同的数值.可使用数字符号的个数称为基数,基数为n ,即可称n 进位制,简称n 进制.现在最常用的是十进制,通常使用10个阿拉伯数字0-9进行记数.对于任何一个数,我们可以用不同的进位制来表示.比如:十进数57,可以用二进制表示为111001,也可以用八进制表示为71、用十六进制表示为39,它们所代表的数值都是一样的.表示各种进位制数一般在数字右下角加注来表示,如111001(2)表示二进制数,34(5)表示5进制数. 1.k 进制转换为十进制的方法:012211)(0121a k a k a k a k a a a a a a a n n n n k n n +⨯+⨯++⨯+⨯=--- ,把k 进制数a 转化为十进制数b 的算法程序为:INPUT “ a,k,n=”;a,k,n i=1 b=0WHILE i<=n t=GET a[i] b=b+t*k^(i-1) i=i+1 WEND PRINT b END2.十进制转化为k 进制数b 的步骤为:第一步,将给定的十进制整数除以基数k ,余数便是等值的k 进制的最低位; 第二步,将上一步的商再除以基数k ,余数便是等值的k 进制数的次低位;第三步,重复第二步,直到最后所得的商等于0为止,各次所得的余数,便是k 进制各位的数,最后一次余数是最高位,即除k 取余法.要点诠释:1、在k 进制中,具有k 个数字符号.如二进制有0,1两个数字.2、在k 进制中,由低位向高位是按“逢k 进一”的规则进行计数.3、非k 进制数之间的转化一般应先转化成十进制,再将这个十进制数转化为另一种进制的数,有的也可以相互转化.【典型例题】类型一:辗转相除法与更相减损术例1.分别用辗转相除法和更相减损术求378与90的最大公约数. 【答案】18【解析】 用辗转相除法:378=90×4+18,90=18×5.∴378与90的最大公约数是18.用更相减损术:∵378与90都是偶数,∴用2约分后得189和45.189-45=144,144-45=99,99-45=54,54-45=9,45-9=36,36-9=27,27-9=18,18-9=9.∴378与90的最大公约数为2×9=18.【总结升华】比较辗转相除法与更相减损术的区别(1)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显;(2)从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到.由该题可以看出,辗转相除法得最大公约数的步骤较少.对比两种方法控制好算法的结束,辗转相除法是到达余数为0,更相减损术是到达减数和差相等.举一反三:【变式1】(1)用更相减损术求两个正数84与72的最大公约数.(2)利用辗转相除法求3869与6497的最大公约数与最小公倍数.【解析】(1)因为84=21×4,72=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.【总结升华】先约简,再求21与18的最大公约数,然后乘以约简的4得84与72的最大公约数.(2)6497=3869×1+2628,3869=2628×1+1241,2628=1241×2+146,1241=146×8+73,146=73×2+0.所以3 869与6 497的最大公约数为73,最小公倍数为3 869×6497÷73=344341.例2.求三个数:168,54,264的最大公约数.【思路点拨】运用更相减损术或辗转相除法,先求168和54的最大公约数a,再求a与264的最大公约数.【答案】6【解析】采用更相减损术先求168和54的最大公约数.(168,54)→(114,54)→(60,54)→(6,54)→(6,48)→(6,42)→(6,36)→(6,30)→(6,24)→(6,18)→(6,12)→(6,6).故168和54的最大公约数为6.采用辗转相除法求6和264的最大公约数.∵264=44×6+0,∴6为264与6的最大公约数,也是这三个数的最大公约数.【总结升华】求最大公约数通常有两种方法:一是辗转相除法;二是更相减损术,对于3个数的最大公约数的求法,则是先求其中两个数的最大公约数m,再求m与第三个数的最大公约数.同样可推广到求3个以上数的最大公约数.举一反三:【变式1】求三个数324,243,135的最大公约数.【答案】27【解析】∵324=243×1+81,243=81×3+0,∴324与243的最大公约数为81.又135=81×1+54,81=54×1+27,54=27×2+0,∴81与135的最大公约数为27.∴三个数324,243,135的最大公约数为27.更相减损术:∵324-243=81,243-81=162,162-81=81,∴81是324和243的最大公约数.又135-81=54,81-54=27,54-27=27,∴27是81与135的最大公约数.∴三个数324,243,135的最大公约数为27.例3.甲、乙、丙三种溶液分别重147g、343g、133g,现要将它们分别全部装入小瓶中,每个小瓶装入液体的质量相同,问每瓶最多装多少?【思路点拨】由题意,每个小瓶最多能装的溶液的质量应是三种溶液质量的最大公约数.【答案】7g【解析】先求147与343的最大公约数.343-147=196,196-147=49,147-49=98,98-49=49,∴147与343的最大公约数是49.再求49与133的最大公约数.133-49=84,84-49=35,49-35=14,35-14=21,21-14=7, 14-7=7.∴147,343,133的最大公约数是7. 故每瓶最多装7g .【总结升华】本题关键是分析清楚题意,找出三个数的最大公约数.求三个以上(含三个数)的数的最大公约数时,可依次通过求两个数的最大公约数与第三个数的最大公约数来求得.类型二:秦九韶算法例4.(2018春 河北邯郸月考)用秦九韶算法求多项式5432()254367f x x x x x x =--+-+当x =5时的值.【思路点拨】利用秦九韶算法计算多项式的值,先将多项式转化为((((25)4)3)6)7x x x x x --+-+的形式,然后逐步计算0v 到5v 的值,即可得到答案.【答案】2677【解析】5432()254367((((25)4)3)6)7f x x x x x x x x x x x =--+-+=--+-+12555v =⨯-=, 255421v =⨯-=, 32153108v =⨯+=, 410856534v =⨯-=, 5534572677v =⨯+=.所以f (5)=2677.【总结升华】秦九韶算法的原理是01(1,2,3,,)nk k nk v a v v x ak n --=⎧⎨=+=⎩.在运用秦九韶算法进行计算时,应注意每一步的运算结果,像这种一环扣一环的运算,如果错一步,则下一步,一直到最后一步就会全部算错.同学们在计算这种题时应格外小心. 举一反三:【变式1】用秦九韶算法求多项式764()85321f x x x x x =++++当x=2时的值. 【答案】1397 【解析】765432()85030021((((((85)0)3)0)0)2)1f x x x x x x x x x x x x x x x =++⋅++⋅+⋅++=+++++++.v 0=8,v 1=8×2+5=21,v 2=21×2 -0=42, v 3=42×2 -3=87, v 4=87×2+0=174, v 5=174×2+0=348, v 6=348×2+2=698, v 7=698×2+1=1397,所以,当x=2时,多项式的值为1397.【变式2】用秦九韶算法计算多项式65432()654327f x x x x x x x =++++++在x=0.4时的值时,需做加法和乘法的次数和是( )A .10B .9C .12D .8 【答案】 C【解析】 ()(((((65)4)3)2)1f x x x x x x x =++++++.∴加法6次,乘法6次, ∴6+6=12(次),故选C .类型三:进位制 例5.(1)试把十进制数136转化为二进制数; (2)试把十进制数1 234转化为七进制数. 【答案】(1)10001000(2)(2)3412(7) 【解析】 (1)由于136=2×68+0, 68=2×34+0. 34=2×17+0. 17=2×8+1. 8=2×4+0. 4=2×2+0. 2=2×1+0. 1=2×0+1.所以136=10001000(2). (2)1234=7×176+2, 176=7×25+1. 25=7×3+4. 3=7×0+3.所以1234=3412(7). 【总结升华】(1)应注意搞清每一次除法中的被除数、除数,当商为零时停止除法,把每步所得的余数倒着排成一个数,就是相应的二进制数.(2)十进制数转化为七进制数与转化为二进制数的方法类似,要认真体会其原理. 举一反三: 【变式1】(1)把十进制数89转化为二进制数; (2)将十进制数2l 转化为五进制数. 【解析】(1)用除2取余法:∴89=2×(2×(2×(2×(2×(2×(2×0+1)+0)+1)+1)+0)+0)+1=2×(2×(2×(2×2×(22×0+2+0)+1)+1)+0)+0)+1 =……=1×26+0×25+1×24+1×23+0×22×0×21+1×20=1011001(2)(2)用除5取余法,可得∴21=41(5). 例6.(2017春 湖南娄底月考)若二进制数100y 011和八进制数x 03相等,求x +y 的值. 【思路点拨】直接利用进位制运算法则化简求解即可. 【答案】1【解析】63100011122121678y y y =⨯+⨯+⨯+=+,20383643x x x =⨯+=+,∴67+8y =64x +3,∵y =0或1,x 可以取1、2、3、4、5、6、7, y =0时,x =1;y =1时,64x =72,无解; ∴x +y =1. 举一反三:【变式1】在十进制中,01232004410010010210=⨯+⨯+⨯+⨯,那么在五进制中数码2 004折合成十进制为( )A .29B .254C .602D .2 004 【答案】B解析:0123200445050525254=⨯+⨯+⨯+⨯=,故选B . 【变式2】把四进制数2132化为七进制数________. 【答案】314(7)【解析】先将“四进制”数2132(5)化为十进制数为32124143424158(1)⨯+⨯+⨯+⨯= 然后将十进制的158化为七进制: 158÷7=22余4, 22÷7=3余1, 3÷7=0余3,所以,结果是314(7) 故答案为:314(7)【巩固练习】1.1337与382的最大公约数是( ). A .3 B .382 C .191 D .2012.用辗转相除法求得459和357的最大公约数是( ). A .3 B .9 C .17 D .51 3.下列各数中最小的是( )A .)2(111111B .)6(210C .)4(1000D .(9)814.(2017春 河南灵宝市月考)若用秦九韶算法求多项求52()42f x x x =-+当x =3时的值,则需要做乘法运算和加减法运算的次数分别为( ) A .4,2 B .5,3 C .5,2 D .6,2 5.把67转化为二进制数为( ).A .1100001(2)B .1000011(2)C .110000(2)D .100011l (2)6.(2018 湖北天门模拟)已知多项式5432()42 3.5 2.6 1.70.8f x x x x x x =++-+-,用秦九韶算法算f (5)时的1v 值为( )A .22B .564.9C .20D .14130.27.已知一个k 进制数132与十进制数30相等,那么k 等于( ). A .-7或4 B .-7 C .4 D .都不对 8. 计算机中常用的十六进制是逢16进1的计数制,采用数字0~9和字母A ~F 共16个计数符号,A .6EB .72C .5FD .B09.三个数72,120,168的最大公约数是 .10.(2018春 河南期中)若a =111111(2),b =210(6),c =1000(4),d =110(8),则a ,b ,c ,d 的大小顺序为________.11.已知a=333,b=24,则使得a=bq+r (q ,r 均为自然数,且0≤r <b )成立的q 和r 的值分别为________.12. 秦九韶的算法中有n 个一次式,若令0n v a =,我们可以得到01___(12).n k k v a v v x k n -=⎧⎨=+=⎩,,,,我们可以利用 结构来实现.13.(2018春 河北卢龙县期中)用“更相减损术”求(1)中两数的最大公约数,用“辗转相除法”求(2)中两数的最大公约数.用秦九韶算法求函数532()1f x x x x x =++++,当x =3时的函数值.(1)72,168; (2)98,280.14.古时候,当边境有敌人来犯时,守边的官兵通过在烽火台上举火向国内报告,如下图,若烽火台上点火,则用数字1表示,若不点火用数字0表示,约定二进制数对应的十进制数的单位是1000,请你计算一下,这组烽火台表示边境有多少敌人入侵?15.设有甲、乙、丙三种溶液,质量分别为146kg 、334kg 、229kg .要将它们分别全部装入小瓶中,每个小瓶装入液体的质量相同.每瓶最多装多少?16.(2017春 甘肃临夏州月考)比较85(9)、210(6)、1000(4)、111111(2)这四个数的大小.【答案与解析】1.【答案】C【解析】 1337=382×3+191,382=191×2+0,1337与382的最大公约数为191.2.【答案】D【解析】 ∵459=357×1+102,357=102×3+51,102=51×2+0,即51为459和357的最大公约数.3.【答案】A【解析】把这四个数都化为十进制数63111111)2(=,78210)6(=,641000)4(=,(9)8173=,故选A .4.【答案】C【解析】∵f (x )=((((4x )x )x -1)x )x +2,∴乘法要运算5次,加减法要运算2次.故选C .5.【答案】B【解析】利用除2取余法易得67=1000011(2).6.【答案】A【解析】∵f (x )=((((4x +2)x +3.5)x ―2.6)x +1.7)x ―0.8,∴04v =,145222v =⨯+=.故选:A .7. 【答案】C【解析】∵132(k )=1×k2+3k+2=30,∴k=-7或k=4.又∵k >0,∴k=4.故选C .8. 【答案】A【解析】A×B 用十进制可以表示为10×11=110,而110=6×16+14,所以用十六进制表示为6E ,故选A .9. 【答案】24【解析】12072148,7248124,48242,168247=⨯+=⨯+=⨯=⨯10.【答案】b >d >a >c .【解析】∵2345111111(2)112121212121248163263a ==+⨯+⨯+⨯+⨯+⨯=+++++=; 12210(6)162667278b ==⨯+⨯=+=;31000(4)1448c ==⨯=;2110(8)181886472d ==⨯+⨯=+=.∴b >d >a >c .故答案为:b >d >a >c .11.【答案】13,21【解析】 用333除以24,商即为q ,余数就是r .333=24×13+21.12.【答案】n k a -;循环13.【答案】(1)24;(2)14;(3)283【解析】(1)∵168―72=96,96―72=24,72―24=4848―24=24,故72和168的最大公约数是24;(2)∵280=2×98+84,98=1×84+14,84=6×14,故98和280的最大公约数是14;(3)532()1((((0)1)1)1)1f x x x x x x x x x x =++++=+++++,当x =3时 01v =,10303v v =⨯+=;213110v v =⨯+=;323131v v =⨯+=;433194v v =⨯+=;5431283v v =⨯+=,即x =3时的函数值为283.14.【答案】27000【解析】由题图可知,从左到右的五个烽火台,表示二进制数的自左到右的五个数位.这组烽火台表示的二进制数是11011(2),转化为十进制数为11011(2)=1×24+1×23+0×22+1×21+1×20=16+8+2+1=27.又27×1000=27000,所以,这组烽火台表示边境共有27000个敌人入侵.15.【答案】536【解析】12515046636==,31513534436==,2208029936==.15013515363636-=,13515120363636-=,12015105363636-=, 1051590363636-=,901575363636-=,751560363636-=, 601545363636-=,451530363636-=,301515363636-=, 即146与334的最大公约数为1536. 801565363636-=,651550363636-=,501535363636-=, 351520363636-=,20155363636-=,155********-=,1055363636-=. 综上所述,146、334、229的最大公约数是536. 16.【答案】210(6)>85(9)>1000(4)>111111(2).【解析】85(9)=8×9+5=77,2(6)210261678=⨯+⨯=,3(4)10001464=⨯=,6(2)11111112163=⨯-=,故210(6)>85(9)>1000(4)>111111(2).。
新课程人教A版数学必修(Ⅲ)教案1.3 算法案例——进位制一、教学目标:1.了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进行各种进位制之间的转换。
2.学习各种进位制转换成十进制的计算方法,,研究十进制转换为各种进位制的除k去余法,掌握不同进位制之间的互化,并理解其中的数学规律。
3.能写出进位制之间的互化程序,理解数学算法与计算机算法的区别。
二、教学重点:各进位制表示数的形式(方法)及各进位制之间的转换。
三、教学难点:除k取余法的理解以及各进位制之间转换的程序框图及其程序的设计。
学法:学习各种进位制特点的同时探讨进位制表示数与十进制表示数的区别与联系,熟悉各种进位制表示数的方法,从而理解十进制转换为各种进位制的除k取余法。
四、教学过程1、【问题引入】我们常见的数字都是十进制的,比如一般的数值计算,但是并不是生活中的每一种数字都是十进制的。
比如时间和角度的单位用六十进位制,电子计算机用的是二进制,旧式的称是十六进制的,计算一打数值时是12进制的......阅读课本P32--33,思考以下问题:(1)、什么是进位制?(2)、最常见的进位制是什么?除此之外还有哪些常见的进位制?请举例说明.(3)、不同的进位制之间又又什么联系呢?2、【知识讲解】(1)进位制:进位制是人们为了计数和运算方便而约定的记数系统,它用有限的数字在不同的位置表示不同的数值。
约定满二进一,就是二进制;满六十进一,就是六十进制;也就是说“满k进一”,就是k进制;可使用数字符号的个数称为基数,基数为k,即可称k进位制,简称k进制。
k进制需要使用k个数字。
比如现在最常用的是十进制,通常使用10个阿拉伯数字0-9进行记数。
如:23450123105104103102⨯+⨯+⨯+⨯=。
对于任何一个数,我们可以用不同的进位制来表示。
比如:十进数57,可以用二进制表示为111001,也可以用八进制表示为71、用十六进制表示为39,它们所代表的数值都是一样的。
知识1.求两个正整数的最大公约数的算法 (1)辗转相除法①定义:辗转相除法是用于求_____________的最大公约数的一种算法,这种算法是由欧几里得在公元前300年左右首先提出的,因而又叫欧几里得算法.就是对于给定的两个正整数,用较大的数除以较小的数,若余数不为零,则将余数和较小的数构成一对新数,继续上面的除法,直到余数为零,则这时较小的数就是原来两个数的最大公约数. ②算法步骤用辗转相除法求两个正整数的最大公约数,其算法步骤如下: 第一步,给定两个正整数,m n . 第二步,计算m 除以n 所得的余数r . 第三步,,m n n r ==.第四步,若0r =,则,m n 的最大公约数等于m ;否则,返回第二步. ③程序框图如图所示:④程序如下:INPUT m ,n DOr=m MOD n m=n n=rPRINT m END或INPUT m ,nr=1 While r>0 r=m MOD n m=n n=rPRINT m END(2)更相减损术①定义:中国古代的数学专著《九章算术》中记载着“更相减损术”,即“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也.以等数约之.” ②算法步骤第一步,任意给定两个正整数,判断它们是否都是偶数.若是,用2约简;若不是,执行第二步. 第二步,以较大的数减去较小的数,接着把所得的差与较小的数比较,并以大数减小数.继续这个操作,直到所得的数相等为止,则这个数(等数)或这个数与约简的数的乘积就是所求的最大公约数. ③程序框图④程序如下:INPUT “a ,b=”;a ,b WHILE a≠b r=a-bIF b>r THEN a=b b=r ELSE a=r END IF WEND PRINT b END2.秦九韶算法(1)定义及原理:把一个n 次多项式1110()n n n n f a x a x x a x a --=++⋅⋅⋅++改写成如下形式:2110()((()))n n n f a x a x x a x a x a --=⋅⋅⋅+++⋅⋅+⋅+.求多项式的值时,首先计算最内层括号内一次多项式的值,即11n n v a x a -=+,然后由内向外逐层计算一次多项式的值,即212323,n n v v x a v v x a --=+=+,…,10n n v v x a -=+,这种求n 次多项式()f x 的值的方法叫做秦九韶算法.(2)秦九韶算法程序化的可行性探讨:观察秦九韶算法中的n 个一次式,可见计算k v 时要用到1k v -的值,若令0n v a =,我们可以得到下面的递推公式:0____________(1,2,,)n k v a v k n =⎧⎨==⋅⋅⋅⎩.这是一个在秦九韶算法中反复执行的步骤,可以用循环结构来实现. (3)算法步骤第一步,输入多项式次数n 、最高次项的系数n a 和x 的值. 第二步,将v 的值初始化为n a ,将i 的值初始化为n -1. 第三步,输入i 次项的系数i a . 第四步,,1i v vx a i i =+=-.第五步,判断i是否大于或等于0.若是,则返回第三步;否则,输出多项式的值v.(4)程序框图如图所示:(5)程序如下:INPUT “n=”;nINPUT “an=”;aINPUT “x=”;xv=ai=n-1WHILE i>=0PRINT “i=”;iINPUT “ai=”;av=v*x+ai=i-1WENDPRINT vEND3.进位制(1)定义:进位制是人们为了计数和运算方便而约定的记数系统,约定满二进一,就是二进制;满十进一,就是十进制;满六十进一,就是六十进制;等等.也就是说,“满几进一”就是几进制,几进制的基数就是几.一般地,若k 是一个大于1的整数,那么以k 为基数的k 进制数可以表示为一串数字连写在一起的形式:1210()110110(,,,,,0<,0,,,)n n n k n n n n a a a a a a a a a a k a a a k ----⋅⋅⋅⋅⋅⋅∈<≤⋅⋅⋅<N .说明:①若一个数为十进制数,其基数可以省略不写.②若是其他进位制的数,在没有特别说明的前提下,其基数必须写出,常在数的右下角标明基数. (2)将k 进制数转化为十进制数 ①算法步骤:计算k 进制数a 的右数第i 位数字i a 与1i k -的乘积1i i a k -⋅,再将其累加,这是一个重复操作的步骤.所以,可以用循环结构来构造算法,算法步骤如下: 第一步,输入,a k 和n 的值.第二步,将b 的值初始化为0,i 的值初始化为1. 第三步,1,1i i b b a k i i -=+⋅=+.第四步,判断i n >是否成立.若是,则执行第五步;否则,返回第三步. 第五步,输出b 的值. ②程序框图如图所示:③程序如下:INPUT “a ,k ,n=”;a ,k ,n b=0 i=1 t=a MOD 10 DOb=b+t*k^(i-1) a=a\10 t=a MOD 10 i=i+1LOOP UNTIL i>n PRINT b END(3)将十进制数转化为k 进制数 ①转化方法:十进制数化为k 进制数用____________,即先把十进制数a 除以k ,商为0q ,余数为0r ,再把0q 除以k ,商为1q ,余数为1r ,…,反复进行这种除法,直到商1n q -除以k 所得的商为0,余数是n r ,即1n n q r -=为止,此时将所有余数按从右到左排列就得到所要求的k 进制数10()n n k r r r -⋅⋅⋅. ②算法步骤:第一步,给定十进制正整数a 和转化后的数的基数k . 第二步,求出a 除以k 所得的商q ,余数r . 第三步,把得到的余数依次从右到左排列.第四步,若0q ≠,则a q =,返回第二步;否则,输出全部余数r 排列得到的k 进制数. ③程序框图如图所示:④程序如下:INPUT “a ,k=”;a ,k b=0 i=0 DO q=a\k r=a MOD k b=b+r*10^i i=i+1 a=qLOOP UNTIL q=0 PRINT b END知识参考答案: 1.(1)两个正整数2.(2)1k n k v x a --+3.(3)①除k 取余法重点重点辗转相除法、更相减损术、秦九韶算法、进位制难点用秦九韶算法求多项式的值,进位制间的转换易错易对秦九韶算法中的运算次数理解错误1.辗转相除法与更相减损术辗转相除法与更相减损术有着相同的算法依据,但要注意运算过程的差别.两者的区别是:(1)辗转相除法进行的是除法运算,即辗转相除,更相减损术进行的是减法运算,即辗转相减,但其实质都是一个不断的递推过程.(2)辗转相除法,下一次进行相除时,由上一次的除数和余数直接相除即可.而更相减损术下一次相减前必须有一个判断大小的过程,以区别谁做被减数.注意:用更相减损术求两正整数的最大公约数时,若两数为偶数,可先约去2,这时莫忘记求得的相等两数乘以约简的数才是所求的最大公约数.【例1】用辗转相除法和更相减损术求840与1764的最大公约数.【答案】840与1764的最大公约数是84.【解析】辗转相除法:1764=840×2+84,840=84×10+0,∴840与1764的最大公约数是84.更相减损术:1764–840=924,924–840=84,840–84=756,756–84=672,672–84=588,588–84=504, 504–84=420, 420–84=336, 336–84=252, 252–84=168, 168–84=84,∴840与1764的最大公约数是84.【例2】利用辗转相除法求3869与6497的最大公约数. 【答案】3869与6497的最大公约数为73.【名师点睛】辗转相除法计算次数少,而更相减损术计算次数多,但是更相减损术每一步的计算都是减法,比做除法运算要简单一些,所以一般当数较小时考虑用更相减损术,当数较大时考虑用辗转相除法. 2.秦九韶算法秦九韶算法的实质是:求多项式1110()n n n n f a x a x x a x a --=++⋅⋅⋅++的值时,转化为求n 个一次多项式的值,共进行n 次乘法运算和n 次加法运算.这种算法的运算次数较少,是多项式求值比较先进的算法. 【例3】 用秦九韶算法计算多项式f (x )=12+35x –8x 2+79x 3+6x 4+5x 5+3x 6在x =–4时的值时,V 3的值为A .–845B .220C .–57D .34【答案】C【解析】∵多项式f (x )=12+35x –8x 2+79x 3+6x 4+5x 5+3x 6=(((((3x +5)x +6)x +79)x –8)x +35)x +12, 当x =–4时,∴v 0=3,v 1=3×(–4)+5=–7,v 2=–7×(–4)+6=34,v 3=34×(–4)+79=–57.故选C .【例4】用秦九韶算法计算函数f (x )=2x 4+3x 3+5x –4在x =2时的函数值.【答案】62【名师点睛】利用秦九韶算法计算多项式的值的策略:(1)正确地将多项式改写,若在多项式中有几项不存在,可将这些项的系数看成0,即把这些项看做0n x ⨯. (2)由内向外逐次计算.(3)每一步计算结果准确,由于下一次计算用到上一次计算的结果,应认真、细致地计算每一步. 3.进位制把一个非十进制数转化为另一种非十进制数,通常是把这个数先转化为十进制数,然后再利用除k 取余法,把十进制数转化为k 进制数. 【例5】将八进制数127(8)化为十进制数. 【答案】87【解析】()21081271828786416787=⨯+⨯+⨯=++=.【例6】已知一个k 进制的数123(k )与十进制的数38相等,求k 的值. 【答案】5【解析】将转化为十进制,()210212312323k k k k k k =⨯+⨯+⨯=++, 由题意,得k 2+2k +3=38, 所以k 2+2k –35=0, 所以k =5或k =–7(舍) 所以k =5.【名师点睛】除k 取余法的两个关注点:①要连续除:用k 连续去除十进制数或所得的商,直到商为零为止. ②若是其他进位制的数,在没有特别说明的前提下,其基数必须写出,常在数的右下角标明基数.基础训练1.秦九韶算法的先进性主要体现在减少运算次数,下列说法正确的是A .可以减少加法运算次数B .可以减少乘法运算次数C .同时减少加法和乘法的运算次数D .加法次数和乘法次数都有可能减少2.用秦九韶算法求多项式652()7632f x x x x =+++,当4x =时的值,先算的是A .4×4=16B .7×4=28C .4×4×4=64D .7×4+6=343.把十进制的23化成二进制数是A .00 110(2)B .10 111(2)C .10 1111(2)D .11 101(2)4.若十进制数26等于k 进制数32,则k 等于A .4B .5C .6D .85.用更相减损术求294和84的最大公约数时,需要做减法的次数是A .3B .4C .5D .66.1 037和425的最大公约数是A .51B .17C .9D .37.已知多项式54321()4322f x x x x x x =++---,用秦九韶算法求(2)f -等于 A .1972-B .1972C .1832D .1832-8.用更相减损术求156与91的最大公约数时,需要做减法的次数是__________. 9.将45(6)改写成十进制数为__________.10.用秦九韶算法计算多项式5432()54321f x x x x x x =+++++当4x =时的值时,乘法运算的次数为__________.11.用更相减损术求288与153的最大公约数.12.用秦九韶算法求多项式5432()3532f x x x x x x =-+-+当2x =时的值.能力提升13.在下列四个数中,最小的数是A .(9)85B .(6)210C .(4)1000D .(2)11111114.用秦九韶算法计算多项式65432()256238103f x x x x x x x =+++-+-当4x =-时的值时,3v 的值为A .742-B .49-C .18D .18815.若98与63的最大公约数为a ,二进制数(2)110011化为十进制数为b ,则a b +=A .53B .54C .58D .6016.用更相减损术求123和48的最大公约数是A .3B .7C .9D .1217.计算机是将信息转换成二进制处理,二进制即“逢二进一”,如(2)1101表示二进制数.将它转化成十进制形式是32101212021213⨯+⨯+⨯+⨯=,那么将二进制数1611111个(2)转换成十进制形式是A .217-2B .216-2C .216-1D .215-118.在下列各数中,最大的数是A .(9)85B .(6)210C .(4)1000D .(2)1111119.完成进位制之间的转化:(5)413=__________(7). 20.(1)把八进制数()87341化为十进制数;(2)把1285化为16进制数.21.先将412(5)化成十进制的数,然后用“除k取余法”再化成七进制的数.22.用辗转相除法和更相减损术求261与319的最大公约数.参考答案1 2 3 4 5 6 7 13 14 15 16 17 18B D B D B B A D BC A C B 1.【答案】B【解析】通过对秦九韶算法的理解,可知它的主要作用是减少乘法的次数,将原来的乘法次数由(1)2n n减少到n,而对加法没有影响.故选B.2.【答案】D3.【答案】B【解析】23÷2=11…1,11÷2=5…1,5÷2=2…1,2÷2=1…0,1÷2=0…1,故23(10)=10111(2).故选B.4.【答案】D【解析】由题意知,10 2632k k =⨯+⨯,解得8k =.故选D . 5.【答案】B【解析】()()()()()294,84210,84126,8484,4242,42→→→→. 6.【答案】B【解析】∵1 037=425×2+187,425=187×2+51,187=51×3+34,51=34×1+17,34=17×2,即1 037和425的最大公约数是17. 7.【答案】A【解析】∵1()((((43)2)1)1)2f x x x x x x =++---,∴197(2)2f -=-.8.【答案】5【解析】求最大公约数的过程如下:1569165-=,916526-=,652639-=,392613-=,261313-=.故13是最大公约数,共进行了5次减法运算. 9.【答案】29(10)【解析】由于45(6)=4×61+5×60=29(10).故答案为:29(10). 10.【答案】5【解析】5432((((54)3)2)1()54321)1f x x x x x x x x x x x =++++++++++=,不难发现要经过5次乘法,5次加法运算. 11.【答案】详见解析.【解析】288-153=135,153-135=18,135-18=117,117-18=99,99-18=81,81-18=63,63-18=45,45-18=27,27-18=9,18-9=9. 因此288与153的最大公约数为9. 12.【答案】详见解析.13.【答案】D【解析】因为(9)8589577=⨯+=,2(6)210261678=⨯+⨯=,3(4)10001464=⨯=,543210(2)11111122222263=+++++=,所以最小的数是(2)111111.故选D .14.【答案】B【解析】65432()256238103f x x x x x x x =+++-+- (((((25)6)23)8)10)3x x x x x x =+++-+-,则010212,52(4)53,63(4)618v v v x v v x ==+=⨯-+=-=+=-⨯-+=,322318(4)v v x =+=⨯-2349+=-,故选B . 15.【答案】C【解析】∵9816335=⨯+,6313528=⨯+,351287=⨯+,2874=⨯,∴98和63的最大公约数是7,即7a =.二进制数(2)110011化为十进制数为54321012120202121251⨯+⨯+⨯+⨯+⨯+⨯=,即51b =,则58a b +=.故选C . 16.【答案】A【解析】123-48=75,75-48=27,48-27=21,27-21=6,21-6=15,15-6=9,9-6=3,6-3=3,所以123和48的最大公约数是3. 17.【答案】C【解析】161111个(2)1514016=12+12++12=21⨯⨯⨯-.18.【答案】B19.【答案】213【解析】∵012(5)41335154535425108=⨯+⨯+⨯=++⨯=,012108371727=⨯+⨯+⨯,∴(7)(5)421313=.20.【答案】(1)3809;(2)()16505.【解析】(1)()87341=3210783848183809⨯+⨯+⨯+⨯=;(2)用16连续去除1285,直到商为0为止,所得到的余数依次从右向左排列,就得到()161285505=. 21.【答案】详见解析.【解析】412(5)=2×50+1×51+4×52=2+5+4×25=107, ∵107=7×15+2, 15=7×2+1, 2=7×0+2.∴把5进制的数412(5)化为7进制是212(7). 22.【答案】详见解析.【解析】辗转相除法: 319=261×1+58, 261=58×4+29, 58=29×2,所以261与319的最大公约数为29.。
算法案例【学习目标】1.理解辗转相除法与更相减损术中蕴含的数学原理,并能根据这些原理进行算法分析;2.基本能根据算法语句与程序框图的知识设计完整的程序框图并写出算法程序;3.了解秦九韶算法的计算过程,并理解利用秦九韶算法可以减少计算次数提高计算效率的实质;4.了解各种进位制与十进制之间转换的规律,会利用各种进位制与十进制之间的联系进行各种进位制之间的转换.【要点梳理】要点一、辗转相除法也叫欧几里德算法,它是由欧几里德在公元前300年左右首先提出的.利用辗转相除法求最大公约数的步骤如下:第一步:用较大的数m除以较小的数n得到一个商q0和一个余数r0;第二步:若r0=0,则n为m,n的最大公约数;若r0≠0,则用除数n除以余数r0得到一个商q1和一个余数r1;第三步:若r1=0,则r0为m,n的最大公约数;若r1≠0,则用除数r0除以余数r1得到一个商q2和一个余数r2;……依次计算直至r n=0,此时所得到的r n-1即为所求的最大公约数.用辗转相除法求最大公约数的程序框图为:程序:INPUT “m=”;m INPUT “n=”;n IF m<n THEN x=m m=n n=x END IF r=m MOD n WHILE r<>0 r=m MOD n m=n n=r WEND PRINT n END要点诠释:辗转相除法的基本步骤是用较大的数除以较小的数,考虑到算法中的赋值语句可以对同一变量多次赋值,我们可以把较大的数用变量m 表示,把较小的数用变量n 表示,这样式子)0(n r r q n m <≤+⋅=就是一个反复执行的步骤,因此可以用循环结构实现算法. 要点二、更相减损术我国早期也有解决求最大公约数问题的算法,就是更相减损术.更相减损术求最大公约数的步骤如下:可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也.以等数约之.翻译出来为:第一步:任意给出两个正整数;判断它们是否都是偶数.若是,用2约简;若不是,执行第二步. 第二步:以较大的数减去较小的数,接着把较小的数与所得的差比较,并以大数减小数.继续这个操作,直到所得的数相等为止,则这个数(等数)就是所求的最大公约数.理论依据:由r b a r b a +=→=-,得b a ,与r b ,有相同的公约数 更相减损术一般算法:第一步,输入两个正整数)(,b a b a >;第二步,如果b a ≠,则执行3S ,否则转到5S ; 第三步,将b a -的值赋予r ;第四步,若r b >,则把b 赋予a ,把r 赋予b ,否则把r 赋予a ,重新执行2S ; 第五步,输出最大公约数b . 程序:INPUT “a=”,a INPUT “b=”,b WHILE a<>b IF a>=b a=a-b;ELSE b=b-a WEND ENDPRINT b 或者INPUT “请输入两个不相等的正整数”;a ,b i=0WHILE a MOD 2=0 AND b MOD 2=0 a=a/2 b=b/2 i=i+1 WEND DOIF b<a THEN t=a a=b b=t END IF c=a -b a=b b=cLOOP UNTIL a=b PRINT a^i END要点诠释:用辗转相除法步骤较少,而更相减损术虽然有些步骤较长,但运算简单. 要点三、秦九韶计算多项式的方法12121012312102312101210()()(())((()))n n n n n n n n n n n n n n n n n n n f x a x a x a x a x a a x a x a x a x a a x a x a x a x a a x a x a x a x a --------------=+++++=+++++=+++++==+++++令12(1)((()))k n n n n k n k v a x a x a x a x a -----=+++++,则有01nk k n kv a v v x a --=⎧⎨=+⎩,其中n k ,2,1=.这样,我们便可由0v 依次求出n v v v ,,21;1323212101,,,a x v v a x v v a x v v a x v v n n n n n +=+=+=+=----要点诠释:显然,用秦九韶算法求n 次多项式的值时只需要做n 次乘法和n 次加法运算 要点四、进位制进位制是一种记数方式,用有限的数字在不同的位置表示不同的数值.可使用数字符号的个数称为基数,基数为n ,即可称n 进位制,简称n 进制.现在最常用的是十进制,通常使用10个阿拉伯数字0-9进行记数.对于任何一个数,我们可以用不同的进位制来表示.比如:十进数57,可以用二进制表示为111001,也可以用八进制表示为71、用十六进制表示为39,它们所代表的数值都是一样的.表示各种进位制数一般在数字右下角加注来表示,如111001(2)表示二进制数,34(5)表示5进制数. 1.k 进制转换为十进制的方法:012211)(0121a k a k a k a k a a a a a a a n n n n k n n +⨯+⨯++⨯+⨯=--- ,把k 进制数a 转化为十进制数b 的算法程序为:INPUT “ a,k,n=”;a,k,n i=1 b=0WHILE i<=n t=GET a[i] b=b+t*k^(i-1) i=i+1 WEND PRINT b END2.十进制转化为k 进制数b 的步骤为:第一步,将给定的十进制整数除以基数k ,余数便是等值的k 进制的最低位; 第二步,将上一步的商再除以基数k ,余数便是等值的k 进制数的次低位;第三步,重复第二步,直到最后所得的商等于0为止,各次所得的余数,便是k 进制各位的数,最后一次余数是最高位,即除k 取余法.要点诠释:1、在k 进制中,具有k 个数字符号.如二进制有0,1两个数字.2、在k 进制中,由低位向高位是按“逢k 进一”的规则进行计数.3、非k 进制数之间的转化一般应先转化成十进制,再将这个十进制数转化为另一种进制的数,有的也可以相互转化.【典型例题】类型一:辗转相除法与更相减损术例1.用辗转相除法求下列两数的最大公约数,并且用更相减损术检验你的结果: (1)80,36;(2)294,84. 【答案】(1)4(2)42【解析】(1)80=36×2+8,36=8×4+4.8=4×2+0.即80与36的最大公约数是4.验证:80-36=44,44-36=8.36-8=28.28-8=20.20-8=12.12-8=4.8-4=4.∴80与36的最大公约数为4.(2)294=84×3+42,84=42×2.即294与84的最大公约数是42.验证:∵294与84都是偶数可同时除以2,即取147与42的最大公约数后再乘2.147-42=105.105-42=63.63-42=21.42-21=21.∴294与84的最大公约数为21×2=42.【总结升华】比较辗转相除法与更相减损术的区别(1)都是求最大公约数的方法,计算上辗转相除法以除法为主,更相减损术以减法为主,计算次数上辗转相除法计算次数相对较少,特别当两个数字大小区别较大时计算次数的区别较明显;(2)从结果体现形式来看,辗转相除法体现结果是以相除余数为0则得到,而更相减损术则以减数与差相等而得到.由该题可以看出,辗转相除法得最大公约数的步骤较少.对比两种方法控制好算法的结束,辗转相除法是到达余数为0,更相减损术是到达减数和差相等.举一反三:【变式1】(1)用辗转相除法求123和48的最大公约数.(2)分别用辗转相除法和更相减损术求105与357的最大公约数.【答案】21【解析】(1)123=2×48+2748=1×27+2127=1×21+621=3×6+36=2×3+0最后6能被3整除,得123和48的最大公约数为3.(2)辗转相除法:357=105×3+42,105=42×2+21,42=21×2.故105与357的最大公约数为21.更相减损术:357-105=252,252-105=147,147-105=42,105-42=63,63-42=21,42-21=21.故105与357的最大公约数为21.例2.求三个数:168,54,264的最大公约数.【思路点拨】运用更相减损术或辗转相除法,先求168与54的最大公约数a ,再求a 与264的最大公约数.【答案】6 【解析】采用更相减损术先求168与54的最大公约数.(168,54)→(114,54)→(60,54)→(6,54)→(6,48)→(6,42)→(6,36)→(6,30)→(6,24)→(6,18)→(6,12)→(6,6) 故168与54的最大公约数为6.采用辗转相除法求6和264的最大公约数.因为264=44×6+0,所以6为264与6的最大公约数,也是三个数的最大公约数.【总结升华】求最大公约数通常有两种方法:一是辗转相除法;二是更相减损术,对于3个数的最大公约数的求法,则是先求其中两个数的最大公约数m ,再求m 与第三个数的最大公约数.同样可推广到求3个数以上的数的最大公约数.举一反三:【变式1】求三个数324,243,135的最大公约数. 【解析】∵324=243×1+81, 243=81×3+0,∴324与243的最大公约数为81. 又135=81×1+54, 81=54×1+27, 54=27×2+0,∴81与135的最大公约数为27.∴三个数324,243,135的最大公约数为27. 更相减损术: ∵324-243=81, 243-81=162, 162-81=81,∴81是324和243的最大公约数. 又135-81=54, 81-54=27, 54-27=27,∴27是81与135的最大公约数.∴三个数324,243,135的最大公约数为27.类型二:秦九韶算法 例3.已知一个一元五次多项式为5432()52 3.5 2.6 1.70.8f x x x x x x =++-+-,用秦九韶算法求这个多项式当x=5时的值.【思路点拨】可根据秦九韶算法原理,先将所给的多项式进行改写,然后由内向外逐层计算即可. 【答案】17255.2 【解析】5432()52 3.5 2.6 1.70.8f x x x x x x =++-+- ((((52) 3.5) 2.6) 1.7)0.8x x x x x =++-+-,v 1=5×5+2=27,v 2=27×5+3.5=138.5, v 3=138.5×5-2.6=689.9, v 4=689.9×5+1.7=3451.2, v 5=3451.2×5-0.8=17255.2.所以,当x=5时,多项式的值等于17255.2.【总结升华】利用秦九韶算法计算多项式的值的关键是能正确地将所给多项式改写,然后由内向外逐层计算,由于下一次计算需用到上一次的结果,故应认真、细心,确保中间结果的准确性. 举一反三:【变式1】用秦九韶算法求多项式764()85321f x x x x x =++++当x=2时的值. 【答案】1397 【解析】765432()85030021((((((85)0)3)0)0)2)1f x x x x x x x x x x x x x x x =++⋅++⋅+⋅++=+++++++.v 0=8,v 1=8×2+5=21, v 2=21×2 4-0=42, v 3=42×2 4-3=87, v 4=87×2+0=174, v 5=174×2+0=348, v 6=348×2+2=698, v 7=698×2+1=1397,所以,当x=2时,多项式的值为1397.【变式2】用秦九韶算法计算多项式65432()654327f x x x x x x x =++++++在x=0.4时的值时,需做加法和乘法的次数和是( )A .10B .9C .12D .8 【答案】 C【解析】 ()(((((65)4)3)2)1)7f x x x x x x x =++++++.∴加法6次,乘法6次, ∴6+6=12(次),故选C .类型三:进位制例4.把87化为二进制数. 【答案】1010111(2)【解析】 因为87=2×43+1,43=2×21+1,21=2×10+1,10=2×5+0,5=2×2+1,2=2×1+0.1=2×0+1.所以87=2×(2×(2×(2×(2×2+1)+0)+1)+1)+1 =2×(2×(2×(2×(22+1)+0)+1)+1)+1 =…=1×26+0×25+1×24+0×23+1×22+1×2+1 =1010111(2). 【总结升华】(1)本题的算法叫除2取余法.上述解法可以推广到把十进制数化为k 进制数的算法,称为除k 取余法.(2)本题还可以用下面的除法算式表示如图: 把上式各步所得的余数从下到上排列,得87=1010111(2).举一反三: 【变式】(1)将十进制数2l 转化为五进制数. (2)把十进制数48转化为二进制数.【解析】(1)用除5取余法,可得∴21=41(5).(2) 将十进制数48转化为二进制数的除法算式如图所示. 把上式中各步所得的余数从下到上排列,得到48=110000(2).【总结升华】在解答过程中常会出现把上图中各步所得的余数从上到下排列的错误,应注意避免. 例5.把下列各数化为十进制数.(1)20121(3);(2)20121(4). 【答案】(1)178 (2)537【解析】 (1)20121(3)=2×34+0×33+1×32+2×3+1=178. (2)20121(4)=2×44+0×43+1×42+2×4+1=537. 【总结升华】k 进制数转化为十进制数的方法是把k 进制数表示为各位上的数字与k 的幂的乘积之和,从右边起,第i 位数字对应k 的幂为1i k-.举一反三:【变式1】在十进制中,01232004410010010210=⨯+⨯+⨯+⨯,那么在五进制中数码2 004折合成十进制为( )A .29B .254C .602D .2 004 【答案】B【解析】0123200445050525254=⨯+⨯+⨯+⨯=,故选B .【变式2】把十进制数48转化为二进制数. 【答案】110000(2)【解析】 将十进制数48转化为二进制数的除法算式如图所示. 把上式中各步所得的余数从下到上排列,得到48=110000(2).【总结升华】在解答过程中常会出现把图中各步所得的余数从上到下排列的错误,应注意避免.。