资源描述
单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第二章算法初步,算法的基本思想,【,例,】,在电视台的某个娱乐节目中,要求参与者快速猜出物品的价格。主持人出示某件物品,参与者每次估算出一个价格,主持人只能回答高了、低了或者正确。,在某次节目中,主持人出示了一台价值在,1000,元以内的随身听,并开始了竞猜。下面是主持人和参与者的一段对话:,参与者:,800,元!,主持人:高了!,参与者:,400,元!,主持人:低了!,参与者:,600,元!,主持人:低了!,.,如果你是参与者,你接下来会怎么猜?,算法的基本思想,随着计算科学和信息技术的飞速发展,算法的思想已经渗透到社会的方方面。在以前的学习中,虽然没有出现算法这个名词,但实际上在数学教学中已经渗透了大量的算法思想,如四则运算的过程、求解方程的步骤等等。完成这些工作都需要一系列程序化的步骤,这就是算法的思想。,算法是什么,算法可以理解为由基本运算及规定的运算顺序构成的完整的,解题步骤,,或看成按要求设计好的有限的、确切的,计算序列,,并且这样的步骤或序列能解决一类问题。,【,例,】,写出你在家中烧开水的过程的一个算法。,总结:“,1”,其实大部分事情都是按照一定的程序执行,因此要理清事情的每一步。,“,2”,判断水是否烧开与是否继续烧火的过程是一个反馈与判断过程,因此有必要不断重复过程“,3”,解,:1,、往壶内注水;,2,、点火加热;,3,观察:如果水开,则停止烧火,否则继续烧火;,4,、如果水未开,重复“,3”,直至水开。,请观察下面一个算法:,写出出已知直角三角形两边,a,b,,求斜边的一个算法,解:,输入直角三角形两边,a,b,的值;,计算,=,输出斜边长,L,的值。,写算法的要求,算法不同于求解一个具体问题的方法,是这种方法的高度概括。一个好的算法有如下要求:,写出的算法,必须能解决一类问题(如一元二次方程求根公式),并且能重复使用。,算法过程要能一步一步执行,每一步执行的操作,必须确切,不能含混不清,而且在有限步能得出结果。,算法要简洁,要清晰可读,不能弄搞繁杂,以以致于易程序化。,请试写出一个算法?,写出求一个数绝对值的一个算法,解:,请输入要求绝对值的数,a.,。,大家要注意写算法的要求,若,a=0,则,b=0(b,为,a,的绝对值,),。,若,a0,,则,b=a,;,若,a0,,则,b=-a.,输出,a,的绝对值,b,。,思考以下问题的算法:,一位商人有,9,枚银元,其中有,1,枚略轻的是假银元。你能用天平(不用砝码)将假银元找出来吗?,解,:1.,把银元分成,3,组,每组,3,枚。,2,先将两组分别放在天平的两边。如果天平不平衡,那边假银元就放在轻的那一组;如果天平左右平衡,则假银元就在末称的第,3,组里。,3,取出含假银元的那一组,从中任取两枚放在天平的两边。如果左右不平衡,则轻的那一边就是假银元;如果天平两边平衡,则末称的那一枚就是假银元。,在给定素数表的条件下,设计算法,将,936,分解成素因数的的乘积,.,解,:,算法步骤如下:,判断,936,是否为素数:否。,确定,936,的最小素因数:,2,。,936=2*468,判断,468,是否为素数:否。,确定,468,的最小素因数:,2,。,936=2*2*234,。,判断,234,是否为素数:否。,确定,234,的最小素因数:,2,。,936=2*2*2*117,。,判断,117,是否为素数:否。,确定,117,的最小素因数:,3,。,936=2*2*2*3*39,。,判断,39,是否为素数:否。,确定,39,的最小素因数:,3,。,936=2*2*2*3*3*13,。,判断,13,是否为素数:,13,是素数,所以分解结束。,分解结果是:,936=2*2*2*3*3*13,算法是解决问题的精确的描述,但是并不是所有问题都有算法,有些问题使用形式化、程序化的刻画是最恰当的,这就要求我们在写算法时应精练、简练、清晰地表达清楚,更要善于分析任何可能出现的问题。,程序化的算法共有三大模块:,1,。输入数据;,2,。分析、判断、执行;,3,。输出结果。,
展开阅读全文