1、1.1.1算法的概念 问题情境 【 1】 一个农夫带着一只狼 、 一头山羊和一篮蔬菜要过河 ,但只有一条小船 .乘船时 ,农夫只能带一样东西 .当农夫在场的时候 ,这三样东西相安无事 .一旦农夫不在 ,狼会吃羊 ,羊会吃菜 .请设计一个方案 ,使农夫能安全地将这三样东西带过河 . 人鬼过河 现在河的岸边有三个人和三个鬼,河上只有一条小船,船上最多能坐两个 “ 人 ” ,在河的任何一边,当鬼的个数比人多时,鬼就会吃掉人。请问如何才能使人和鬼都平安的到达对岸。 在中央电视台幸运 52节目中 ,有一个猜商品价格的环节 ,竟猜者如在规定的时间内大体猜出某种商品的价格 ,就可获得该件商品 .现有一商品
2、,价格在 0-8000元之间 ,采取怎样的策略才能在短的时间内说出正确 (大体上 )的答案呢 ? 第一步 :报“ 4000”; 第二步 :若主持人说高了 第三步 :重复第二步的报数方法取中间数 ,直至得到正确结果 . (说明答案在 04000之间 ), 就报 “ 2000”, 否则 : (答数在 40008000之间 ) 报 “ 6000”; 例 .写出交换两个大小相同的杯子中 的液体 (A 水、 B 酒 ) 的一个过程 例 .写出交换两个大小相同的杯子中 的液体 (A 水、 B 酒 ) 的一个过程 第一步 ,找一个大小与 A相同的空杯子 C. 第二步 ,将 A 中的水倒入 C中 . 第三步
3、,将 B中的酒精倒入 A中 . 第四步 ,将 C中的水倒入 B中 ,结束 . 问题情境 【 2】 “鸡兔同笼”是我国隋朝时期的数学著作 孙子算经 中的一个有趣而具有深远影响的题目: “ 今有鸡兔同笼,上有三十五头,下有九十四足,问:鸡兔各几何? ” 解决问题 【 2】 “鸡兔同笼”是我国隋朝时期的数学著作 孙子算经 中的一个有趣而具有深远影响的题目: “ 今有鸡兔同笼,上有三十五头,下有九十四足,问:鸡兔各几何? ” 解: 设 笼子里有鸡 只,兔子 只 . x y列 得 352 4 9 4xyxy解 得 2 3 , 1 2xy答: 笼子中有鸡 23只,兔 12只 . 式 设列解答:提出问题 3
4、 5 ( 1 )2 4 9 4 ( 2 )xyxy解方程 解决问题 3 5 ( 1 )2 4 9 4 ( 2 )xyxy解方程 第一步 , 由( 1)得 35 ( 3 )xy第二步 , 将( 3)代入( 2)得 2 ( 3 5 ) 4 9 4 ( 4 )yy 第三步 , 解( 4)得 12 ( 5 )y 第四步 , 将( 5)代入( 3)得 23x 第五步 , 得到方程组的解得 2312xy解决问题 3 5 ( 1 )2 4 9 4 ( 2 )xyxy解方程 第一步 , ( 1 ) 2 ( 2) 2 2 4 ( 3 )y 得 : 第二步 , 第三步 , 第四步 , 第五步 , 得到方程组的解得
5、 2312xy(3 ) 1 2y 解 得 :( 1 ) 4 ( 2) 2 4 6 ( 4)x 得 :( 4) 2 3x 解 得 :步骤: S1 设未知数; S2 根据题意列方程组; S3 解方程组; S4 还原实际问题,得到实际问题的答案。 提出问题 【 3】 写出一般二元一次方程组的解法步骤 . 1 1 1 1 2 2 12 2 2( 1 )0( 2 )a x b y ca b a ba x b y c第一步 , 21( 1 ) ( 2 )bb 得 : 1 2 2 1 1 2 2 1a b a b x c b c b ( 3 )第二步 ,解( 3)得 1 2 2 11 2 2 1c b c
6、bxa b a b解决问题 【 3】 写出一般二元一次方程组的解法步骤 . 1 1 1 1 2 2 12 2 2( 1 )0( 2 )a x b y ca b a ba x b y c2 1 1 22 1 1 2a c a cya b a b第四步 ,解( 4)得 21( 1 ) ( 2 )aa 得 :第三步 , 2 1 1 2 2 1 1 2a b a b y a c a c ( 4 )第五步 ,得到方程组的解为 1 2 2 11 2 2 12 1 1 22 1 1 2c b c bxa b a ba c a cya b a b 算法的概念 算法: 在数学中算法通常指 按照一定 规则 解决某
7、一类问题的 明确和 有限 的步骤 . 现在 ,算法通常可以编成计算机程序 ,让计算机执行并解决问题 . 算法的概念 理解 算法 (algorithm)一词源于算术 (algorism),即算术方法,是指一个 由已知推求未知 的运算过程。后来,人们把它推广到一般,把 进行某一工作的方法和步骤 称为算法。 算法 作为一个名词,在中学教科书中并没有出现过,我们在基础教育阶段还没有接触算法概念。但是我们却从小学就开始接触算法,熟悉许多问题的算法。如,做四则运算要 先乘除后加减 ,从里往外脱括弧,竖式笔算等都是算法,至于 乘法口诀 、 珠算口诀 更是算法的具体体现。 广义地说, 算法就是做某一件事的步骤
8、或程序 。菜谱是做菜肴的算法,洗衣机的使用说明书是操作洗衣机的算法,歌谱是一首歌曲的算法。 在数学中, 主要研究计算机能实现的算法 ,即按照某种机械程序步骤一定可以得到结果的解决问题的程序。比如解方程的算法、函数求值的算法、作图的算法,等等。 我们知道 解一元二次方程 的算法,求解一元一次不等式、一元二次函数图象的画法,解线性方程组的算法,求两个数的最大公因数的算法等。因此, 算法其实是重要的数学对象 。 巩固概念 例 1.写出求一元二次方程 ax2+bx+c=0 的根的算法 . 第一步 ,计算 = b2-4ac. 第二步 ,如果 2) 是否为质数 . 应用举例 例 3.用二分法设计一个求方程
9、 2 20x 的近似根的算法 . ( 0 )x 分析问题 二分法 对于区间 a,b 上连续不断、且 f(a)f(b)0的函数 y=f(x),通过不断地 把函数 f(x)的零点所在的区间一分 为二,使区间的两个端点逐步逼近 零点,进而得到零点近似值的方法 叫做 二分法 . 探究解决 2 2 ( 0 )y x x 解决问题 第四步 , 若 f(a) f(m) 0,则含零点的区间为 a,m; 第一步 , 令 .给定精确度 d. 2( ) 2f x x第二步 , 给定区间 a,b ,满足 f(a) f(b) 0 第三步 , 取中间点 2abm 第五步 , 判断 a,b的长度是否小于 d或者 f(m)是
10、否等于 . 将新得到的含零点的仍然记为 a,b . 否则,含零点的区间为 m, b . 若是,则 m是方程的近似 解 ;否则,返回第三步 解决问题 a b m f(m) d 1 2 1.5 0.25 1 1 1.5 1.25 -0.4375 0.5 1.25 1.5 1.375 -0.109375 0.25 1.375 1.5 1.4375 0.06640625 0.125 1.375 1.4375 1.40625 -0.02246094 0.0625 1.40625 1.4375 1.421875 0.021728516 0.03125 1.40625 1.421875 1.4140625 -0.00042725 0.015625 1.4140625 1.421875 1.41796875 0.010635376 0.0078125 1.4140625 1.417969 1.41601563 0.00510025 0.00390625 当 d=0.005时