- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
07解析与枚举算法
解析算法 华埠中学 裴志华 解析算法概念引入 找出表示问题的前提条件与结果之间关系的数学表达式,并通过表达式的计算来实现问题求解。 解析算法的程序实现 例如:已知圆锥的半径R和高度H, 求出圆锥体的体积。 前提条件 结果 1、建立数学模型(数学计算式) 2、将数学计算式转换为VB表达式 V=1/3*pi*r^2*h 3、编写VB程序 例1:求一元二次方程的解 分析: 问题的前提条件是什么? 要求的解是什么? a、b、c的值 x的值 例1:求一元二次方程的解 分析: a、b、c的值与x存在怎样的等量关系? 根据a,b,c取值的不同,x的值有三种可能。 1)d0,x无解 2)d=0, 3)d0, 应该使用什么算法结构? (1)分析问题。 1+4+7+10+……+3n-2这个算式中数的特点,与其和有什么关系? (2)建立数学模型。 数学模型(等差数列N项的和公式): 特点:是一个等差数列 例2:计算s=1+4+7+10+……+3n-2的和,使用解析算法实现vb程序。 (3)使用解析算法实现vb程序: 例2:计算s=1+4+7+10+……+3n-2的和,使用解析算法实现vb程序。 Private Sub Command1_Click() End Sub Dim s as single Dim n as integer ‘定义两个变量 ‘使用解析算法,将等差数列的求和公式转化为VB表达式 s=n*1+n*(n-1)*3/2 s=0 n=val(Text1.text) ‘在text1中输入n Label1.Caption=str(s) ‘在标签label1中显示数列的和S 课堂小结 解析算法的解题思路: 1)明确问题的前提条件 2)明确要求的解 3)寻找前提条件与结果之间的数学表达式 输入 输出 处理 ① ② ③ 枚举算法 华埠中学 裴志华 枚举算法概念引入 枚举算法也称穷举算法。基本思想是根据问题本身的性质,一一举例该问题所有可能的情况,并根据条件逐一作出判断,从中找出符合条件的解。 解析算法的程序实现 例如:要求出100以内所有的素数。 (素数是指只能被1和本身整除的数) 1、一一举例:例如判断n是不是素数,则要从2到n-1去除n; 2、逐一判断:如果没有一个能整除n,那么n就是素数。 3、一般的程序结构:循环 例1:鸡兔同笼问题。一群鸡和兔关在一个笼子里,其中共有头30个,脚60只,问鸡和兔各有几只?现用VB程序求出所有可能的解。 Private Sub Command1_Click() dim i,j,m as integer ‘i表示鸡的只数,j表示兔的只数,m为几种可能 For i=1 to 30 j=___________ if _______________then list1.Additem “鸡”+str(i)+“只,兔”+str(j)+“只。” _______ Next i End Sub 30 – i ‘兔的只数 i * 2 + j * 4 = 60 ‘鸡和兔的脚共60只 End if
文档评论(0)