1、讲解人: 时间:2020.6.1 M E N T A L H E A L T H C O U N S E L I N G P P T 1 . 1 . 1 算 法 的 概 念算 法 的 概 念 第1章 算法初步 人 教 版 高 中 数 学 必 修 3 我国古代的计算工具 世界上第一台电子计算机 算筹、算盘、计算机等从古到今的计算工具的基础都是“算法”.算法对我们而 言并不陌生,其实我们从小学就开始接触算法,例如,做四则运算要先乘除后加 减、从里往外去括号 、竖式笔算等都是算法,至于乘法口诀、珠算口诀更是算法 的具体体现. 在现代社会里,计算机已经成为人们日常生活和工作不可缺少的工具听音乐、 看电
2、影、玩游戏、画卡通画、处理数据计算机几乎可以是一个全能的助手,你 可以用它来做你想做的任何事情那么,计算机是怎样工作呢?要想弄清楚这个 问题,就需要学习算法 知识探究 第一步:把冰箱门打开 第二步:把大象放进去 第三步:把冰箱门带上 情境1:把大象放冰箱,共分几步 ? 知识探究 情境2:农夫过河问题 有一个农夫带三只狼和三只羚羊过河,只有一条船,同船可以容纳一个人和两只动物。没有 人在的时候,如果狼的数量不少于羚羊的数量,狼就会吃掉羚羊。农夫应该如何渡河? 河河 流流 知识探究 第一步:人带两只狼过河,自己返回; 第二步:人带一只羊过河,并带两只狼返回; 第三步:人带两只羊过河,自己返回; 第
3、四步:人带两只狼过河,自己返回; 第五步:人带一只狼过河 算法自然语言描述: 知识探究 如何求解二元一次方程组如何求解二元一次方程组? 回顾 知识探究 二元一次方程组 12 12 yx yx 的求解过程. 归纳它的步骤: 第一步: -2,得 5y=3 第三步: 5 1 5 3 xy,得代入将 第二步: 解得 y= 5 3 知识探究 0 1221 222 111 baba cybxa cybxa 其中 一般的二元一次方程组 第二步:解,得 1221 1221 baba caca y 第一步: - ,得 1 a 2 a 12211221 )(cacaybaba 第三步:将 代入,得 1221 12
4、21 baba caca y 1221 2112 baba cbcb x 知识探究 我们做每件事情都需要设计出“行动步骤”. 上述步骤构成了解二元一次方程组的算法,我们可以进一步根据这一算法编制计 算机程序,让计算机来解二元一次方程组. 知识探究 1.算法的概念: 在数学中“算法”通常是指按照一定的规则来解决的某一类问题的明确和有限的步骤。 3.算法的基本思想与特征: 2.算法的表示方法: 自然语言、程序框图、程序语言 (1)解决某一类问题 (2)在有限步之内完成 (3)每一步都是明确的,有确定的结果和有效性 (4)每一步具有顺序 (5)解决问题的算法不唯一 (普遍性) (有限性) (确定性与
5、可行性) (有序性) (不唯一性) 知识探究 判断下列关于算法的说法是否确: 1、求解某一类问题的算法是唯一的; 2、算法必须在有限步操作之后停止; 3、算法的每一步必须是明确的,不能有歧义或模糊; 4、算法执行后一定产生确定的结果. 练习 (2).设计一个算法,判断35是否为质数? (1).设计一个算法,判断7是否为质数? 只能被1和自身整除的大于1的整数叫质数. 例题1 (1).设计一个算法,判断7是否为质数? 解: 算法分析:由质数的定义,可以这样判断:依次用26除7,若它们中有一个能整除7,则7不是质数, 否则7是质数. 根据以上分析,可以写出如下的算法: 第一步,用2除7, 余数不为
6、0, 第二步,用3除7, 余数不为0, 得到余数1. 2不能整除7. 得到余数1. 3不能整除7. 第三步,用4除7, 余数不为0, 得到余数3. 4不能整除7. 第四步,用5除7, 余数不为0, 得到余数2. 5不能整除7. 第五步,用6除7, 余数不为0, 得到余数1. 6不能整除7. 故7是质数. 例题1 (2).设计一个算法,判断35是否为质数? 解: 根据以上分析,可以写出如下的算法: 第一步,用2除35, 余数不为0, 第二步,用3除35, 余数不为0, 得到余数1. 2不能整除35. 得到余数2. 3不能整除35. 第三步,用4除35, 余数不为0, 得到余数3. 4不能整除35
7、. 第四步,用5除35, 余数为0, 得到余数0. 5能整除35. 故35不是质数. 探究:你能写出“判断整数n(n2)是否为质数”的算法吗? 例题1 【算法分析】 对于任意的整数n(n2),若用i表示2(n-1)中的任意整数,则“判断n是否为质数”的算法包含下面 的重复操作: 用i除n,得到余数r,判断余数r是否为0, 若为0,则n不是质数,否则将i 的值增加1, 再执行同样的操作,一直到i的值等于n-1为止. 写出“判断整数n(n2)是否为质数”的算法。 例题1 解: 第一步:给定大于2的整数n; 第二步:令i=2; 第三步:用i除n,得到余数r; 第四步:判断“r=0”是否成立,若是,则
8、n不是质数,结束算法;否则,将i的值增加1,仍用i表示; 第五步,判断“in-1”是否成立,若成立,则n是质数,结束算法;否则,返回第三步. 写出“判断整数n(n2)是否为质数”的算法。 例题1 分析: 1二分法求方程近似解是通过求对应函数的近似零点得到的,所以首先要建立函数,而且要 有具体精确度要求,因此第一步应该怎么做? 2二分法分的是什么? 3如何确定新区间的端点? 4如何表达出反复二分区间的过程? 例2、用二分法设计一个求方程x2-2=0的近似解的算法(精确度为0.005). 例题2 什么是二分法? 对于区间a,b 上连续不断、且f(a)f(b)0) x 例题2 a b |a-b| 1
9、 2 1 1 1.5 0.5 1.25 1.5 0.25 1.375 1.5 0.125 1.375 1.437 5 0.062 5 1.406 25 1.437 5 0.031 25 1.406 25 1.421 875 0.015 625 1.414 062 5 1.421 875 0.007 812 5 1.414 062 5 1.417 968 75 0.003 906 25 对于方程x2-2=0(x0),给定d=0.005. 此步骤也是求 的近似值的一个算法. 2 例题2 用二分法设计一个求方程x2-2=0的近似根的算法(精确度为0.005). 第一步:令f(x)=x 2-2,给定精
10、确度d. ,0a bf af b第第二二步步:确确定定区区间间满满足足; ; 2 ab m 第第三三步步:取取区区间间中中点点 0, ,. fafma m mba b 第第四四步步:若若,则则含含零零点点的的区区间间为为 否否则则为为,将将新新得得到到的的区区间间仍仍记记为为 ,0a bdfm m 第第五五步步:判判断断区区间间的的长长度度是是否否小小于于 或或是是否否等等于于 ; 若若是是,则则即即为为所所求求方方程程的的近近似似解解,不不是是,则则返返回回第第三三步步。 根据以上分析,可以写出如下的算法: 例题2 1、任意给定一个正实数,设计一个算法求以这个数为半径的圆的面积。 算法步骤:
11、 第一步:给定一个正实数 r. 第二步:计算以r为半径的圆的面积 . 2 Sr 第三步:得到圆的面积S. P5练习 2、任意给定一个大于1的正整数n,设计一个算法求出n的所有因数。 算法步骤: 第一步:给定一个大于1的正整数n. 第二步:令i=1. (i表示1n中的任意整数). 第三步:用i除n,得到余数r. 第四步:判断“r=0”是否成立,若是,则i是n的因数;否则i不是n的因数. 第五步:将i的值增加1,仍用i表示. 第六步,判断“i n”是否成立,若是,则结束算法;否则,返回第三步. P5练习 讲解人: 时间:2020.6.1 M E N T A L H E A L T H C O U N S E L I N G P P T 感谢你的聆听感谢你的聆听 第1章 算法初步 人 教 版 高 中 数 学 必 修 3