姚馨哲
【摘要】算法是计算机科学的核心内容,也是高中数学必学和高考必考内容,而对算法考查经常会与其他数学知识联系起来考查.本文对算法模块和其他数学模块整合进行探讨.
【关键词】算法;高中数学;整合
对于计算机科学来说,算法是至关重要的内容.算法是高中数学必学和必考的知识模块.在高中数学中,算法通常是指按照一定规则解决某类问题的明确和有限的步骤.[1]在设计算法时,要保证算法正确、尽量简单,步骤尽量少,且计算机能够执行.表示一个算法常用的方法有:自然语言、程序框图(传统流程图)、N-S流程图和伪代码等.程序框图表示的算法具有灵活、自由、形象、直观的优点.下面用程序框图表示的算法来探讨算法和其他高中知识的整合.
一、算法与方程、解析几何、导数
求方程在某区间的近似根可以采用二分法,求方程在某实数附近近似根可以用牛顿迭代法.牛顿迭代法思想是:先任意设定一个与真实的根x*接近的值x0作为近似根,由x0求出f(x0),过点(x0,f(x0))作f(x)的切线交x轴于x1,把它作为第二次近似根,再由x1求出f(x1),过点(x1,f(x1))作f(x)的切线交x轴于x2,再由x2求出f(x2),再作切线……如此继续下去,直到足够接近真正的根x*为止.[2]
请画出用牛顿迭代法求方程2x3-4x2+3x-6=0在15附近近似根(精确度10-4)的程序框图.
解 由图1可以看出:过点(x0,f(x0))的切线方程为y-f(x0)=f′(x0)(x-x0),切线方程中令y=0,可以求出切线与x轴的交点横坐标x1=x0-f(x0)f′(x0).为便于计算f(x)=2x3-4x2+3x-6可以写成f(x)=((2x-4)x+3)x-6,则函数在x0处的函数值为f(x0)=((2x0-4)x0+3)x0-6;函数f(x)=2x3-4x2+3x-6的导函数为f′(x)=6x2-8x+3=(6x-8)x+3,函数f(x)当x=x0时的导数为f′(x0)=(6x0-8)x0+3.
程序框图如图2所示.
牛顿迭代法求方程在某值附近的近似根,用到算法、函数、方程、解析几何中的直线,以及用导数求曲线斜率,综合性较强.
二、算法与函数
已知程序框图如图3所示,若f(x)=9,则x=.
分析 本题程序框图中有两个判断框,本质上是分段函数f(x)=(x+2)2(x<0),3(x=0),3x(x>0). 已知f(x)=9,求x的值.
解 (1)当x<0时,由流程图可知f(x)=(x+2)2,要输出的函数值f(x)=9,则(x+2)2=9可得x=-5或x=1(舍去),故输入的x的值应为-5.
(2)当x>0时,由流程图知f(x)=3x要输出的函数值f(x)=9,则3x=9可得x=2,故输入x的值应为2.
综上可知x=2或x=-5.
三、算法与统计
为弘扬民族文化,提高学生国学素养,某中学高二年级举办了一次“我爱古诗词”国学知识竞赛活动,共有500名学生参加了这次竞赛.为了解本次竞赛的成绩情况,从中抽取了50名学生的成绩(得分均为整数,满分为100分)进行统计.请根据频率分布表和算法流程图(图4),求输出S的值.
序号(i)分组(分数)组中值(Gi)频数(人数)频率(Fi)
1[60,70)6560.12
2[70,80)75200.4
3[80,90)85120.24
4[90,100]95120.24
合计501
解 用追踪变量法S=0,i=1.
(1)i≤4成立,
Gi=65,Fi=0.12,S=0+65·0.12=7.8,i=2.
(2)i≤4成立,
Gi=75,Fi=0.4,S=7.8+75·0.4=37.8,i=3.
(3)i≤4成立,
Gi=85,Fi=0.24,S=37.8+85·0.24=58.2,i=4.
(4)i≤4成立,
Gi=95,Fi=0.24,S=58.2+95·0.24=81,i=5.
(5)i≤4不成立,循环结束,输出变量S=81,程序结束.
通过分析还可以得出,此算法是求50名学生分数的近似平均值.
四、算法与排列
某校高二年级某班要从15名候选人中选出7名组成班委会,分别担任班长、学习委员、纪律委员、生活委员、宣传委员、组织委员和体育委员,求组成班委会的方案数目.如图5是计算班委会的方案数目的程序框图.在流程图的判断框内应填的条件是什么?
解 从15名候选人选出7名分别担任一个职位,属于排列问题,不同的班委会方案数目为A715=15×14×13×12×11×10×9.
根据程序框图,此算法中重復执行的指令中目标变量A用累积法求值;不断计入目标变量的是15,14,13,12,11,10,9存放在循环变量n中,则其规律是在前者的基础上减1,即n=n-1;变量i作为计数变量.求7个连续整数的乘积,循环体应执行7次,因此,判断框内应填的条件为i≤7?或i<8?.
算法是高中数学必学内容,是数学体系的重要组成部分,是计算机科学的基础.对于面向过程的程序,著名的计算机科学家沃斯提出,程序=算法+数据结构,算法是程序的灵魂.因此,在学习算法时,要多联系实际,多联系学过的数学知识比如,不等式、数列、概率……体会算法体现的数学思想.通过对算法的学习,可以培养逻辑思维能力,激发学习数学的兴趣,对以后进一步深造也大有裨益.
【参考文献】
[1]刘绍学.普通高中课程标准实验教科书·数学3·必修[M].北京:人民教育出版社,2007.
[2]谭浩强.C程序设计题解与上机指导[M].北京:清华大学出版社,2005.endprint