(共24张PPT)
算法自古就有,中国古代数学在
世界数学史上一度占居领先地位.她
注重实际问题的解决,以算法为中心,
寓理于算,其中蕴涵了丰富的算法思
想.算筹是中国古代的计算工具,在春秋时期已经很普遍,算盘在明代开始盛行.中国古代涌现了许多著名的数学家,如三国、两晋的赵爽、刘徽,南北朝的祖冲之、祖暅父子,宋、元的秦九韶、杨辉、朱世杰等.著名的数学专著有《九章算术》、《周髀算经》、《数书九章》、《四元玉鉴》、《黄帝九章算法细草》、《议古根源》、《数书九章》、《详解九章算法》和《杨辉算法》等.
内容简介
随着计算科学和信息技术的飞速发展,算法思想已经渗透到社会的方方面.在以前的学习中,虽然没有出现算法这个名词,但实际上在数学学习中已经渗透了大量的算法思想,如四则运算的过程、求解方程的步骤等等.完成这些工作都需要一系列程序化的步骤,这就是算法的思想.
1.1.1 算法的概念
用不同方法解二元一次方程组 ,并写出具体求解步骤
①
②
一、实例
代入法、消元法
第一步:
第二步:
第三步:
第四步:
第五步:
①+②×2,得:
③
解③,得:
②-①×2,得:
④
解④,得:
得到方程组的解为
算法:就是解决一个特定问题的方法与步骤.
二、归类
对于一般的二元一次方程组
您能写出一般的求解步骤么
第一步:
第二步:
第三步:
第四步:
第五步:
解(3)得:
解(4)得:
得到方程组的解为:
三、算法的基本思想及特征
一般地,对于一类问题的机械式地、统一地、按部就班地求解过程称为算法(algorithm).它是解决某一问题的程序或步骤.
按照这样的理解,我们可以设计出很多具体数学问题的算法.下面看几个例子:
所谓 “算法”就是解题方法的精确描述.从更广义的角度来看,并不是只有“计算”的问题才有算法,日常生活中处处都有.如乐谱是乐队演奏的算法,菜谱是做菜肴的算法,珠算口诀是使用算盘的算法.
第一步:农夫带羊过河;
第二步:农夫独自回来;
第三步:农夫带狼过河;
第四步:农夫带羊回来;
第五步:农夫带蔬菜过河;
第六步:农夫独自回来;
第七步:农夫带羊过河.
1、一个 带着一条 、一头 和一篮 要过河,但只有一条小船.乘船时,农夫只能带一样东西.当农夫在场的时候,这三样东西相安无事.一旦农夫不在,狼会吃羊,羊会吃菜.请设计一个算法,使农夫能安全地将这三样东西带过河.
2、把大象装进冰箱里,一共分几步?
第一步:把冰箱门打开
第二步:把大象装进冰箱
第三步:把冰箱门关上
3、思考以下问题的算法:
一位商人有9枚银元,其中有1枚略轻的是假银元.你能用天平(不用砝码)将假银元找出来吗?
解: 1.把银元分成3组,每组3枚.
2.先将两组分别放在天平的两边.如果天平不平衡,那么假银元就放在轻的那一组;如果天平左右平衡,则假银元就在末称的第3组里.
3.取出含假银元的那一组,从中任取两枚放在天平的两边.如果左右不平衡,则轻的那一边就是假银元;如果天平两边平衡,则没称的那一枚就是假银元.
算法的特点:
1.通用性:能用来解决同一类问题;
2.确定性:每一步都应该是能有效执行且有确定的结果,而不应该是模棱两可的;
3.有穷性:应能在有限步内解决问题.
4.可行性:计算机可以解决.
算法:在数学中,现代意义上的“算法”通常是指可以用计算机来解决的某一类问题的程序或步骤,这些程序和步骤必须是明确和有效的,而且能够在有限步之内完成.
算法的表示形式有三种:自然语言、程序框图、程序设计语言
自然语言就是人们日常使用的语言,可以是汉语、英语或数学语言等.用自然语言描述算法的优点是通俗易懂,当算法中的操作步骤都是顺序执行时比较容易理解.缺点是如果算法中包含判断和转向,并且操作步骤较多时,就不那么直观清晰了.
(1)自然语言
(2)程序框图
(3)程序语言
(1)设计一个算法,判断7是否为质数.
【例1】
只能被1和它本身整除的大于1的整数叫质数.
判断一个大于1的整数n是否为质数,用比这个整数小比1大的数去除n,如果不能整除,则n就是质数.
第一步:用2除7,得余数为1,所以2不能整除7.
第二步:用3除7,得余数为1,所以3不能整除7.
第三步:用4除7,得余数为3,所以4不能整除7.
第四步:用5除7,得余数为2,所以5不能整除7.
第五步:用6除7,得余数为1,所以6不能整除7.
因此,7是质数.
第一步:用2除35,得余数为1,所以2不能整除35.
(2)设计一个算法,判断35是否为质数.
第二步:用3除35,得余数为2,所以3不能整除35.
第三步:用4除35,得余数为3,所以4不能整除35.
第四步:用5除35,得余数为0,所以5能整除35.
因此,35不是质数.
探究
您能写出“判断整数n(n>2)是否为质数”的算法么?
第一步:给定大于2的整数n.
第二步:令i=2
第三步:用i除n,得余数r.判断余数r是否为0,若是,则n不是质数,结束算法;否则,将i的值增加1,仍用i表示这个数.
第四步:判断i是否大于n-1,若是,则n是质数;否则,返回第三步.
【例2】
写出用“二分法”求方程 近似解的算法.
“一分为二”为区间 ,根据 是否,找出零点所在的区间,仍记做 .对所得的区间重复以上步骤,直到包含零点的区间 “足够小”,那么此区间 内的数即为方程的近似解.
二分法:把满足 的函数 的零点所在的区间
【例2】
写出用“二分法”求方程 近似解的算法.
第一步:令
给定精确度d.
第三步:取区间中点
含零点的区间为
第四步:若
则含零点的区间为
否则,
将新得到的含零点的区间仍记为
第二步:确定区间
满足
第五步:判断
的长度是否小于d或f(m)是否等于0.
若是,则m是方程的近似值;否则,返回第三步.
取d=0.005,可以得到以下表格:
a b |a-b|
1 2 1
1 1.5 0.5
1.25 1.5 0.25
1.375 1.5 0.125
1.375 1.4375 0.0625
1.40625 1.4375 0.03125
1.40625 1.421875 0.015625
1.4140625 1.421875 0.0078125
1.4140625 1.41796875 0.00390625
区间(1.4140625,1.41796875)中的实数都是当精确度为0.005时的原方程的近似解.
1、给出求1+2+3+4+5+6的一个算法.
解法1.按照逐一相加的程序进行.
第一步:计算1+2,得3;
第二步:将第一步中的运算结果3与3相加得6;
第三步:将第二步中的运算结果6与4相加得10;
第四步:将第三步中的运算结果10与5相加得15;
第五步:将第四步中的运算结果15与6相加得21.
思考:您能举出更多的算法的例子吗?
解法2.可以运用下面公式直接计算.
第一步:取n =6
第二步:计算
第三步:输出计算结果.
点评:解法1繁琐,步骤较多; 解法2简单,步骤较少. 找出好的算法是我们的追求目标.
2、任意给定一个正实数,设计一个算法求以这个数为半径的圆的面积.
第一步:输入任意一个正实数r;
第二步:计算圆的面积: S=πr 2;
第三步:输出圆的面积S.
3、任意给定一个大于1 的正整数n,设计一个算法求出n的所有因数.
第一步:依次以2~(n-1)为除数去除n,检查余数是否为0,若是,则是n的因数;若不是,则不是n的因数.
第二步:在n的因数中加入1和n.
第三步:输出n的所有因数.
作业:学法第一课