资源预览内容
第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
第9页 / 共17页
第10页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
解析法、枚举法解析法、枚举法例例例例1 1:某超市规定,顾客购买同种商品:某超市规定,顾客购买同种商品:某超市规定,顾客购买同种商品:某超市规定,顾客购买同种商品1010件以上(含件以上(含件以上(含件以上(含1010件)件)件)件)可享受批发价。请设计一个收款机程序,输入顾客所购买商可享受批发价。请设计一个收款机程序,输入顾客所购买商可享受批发价。请设计一个收款机程序,输入顾客所购买商可享受批发价。请设计一个收款机程序,输入顾客所购买商品的零售价、批发价、购买数量、及付款数,计算出顾客的品的零售价、批发价、购买数量、及付款数,计算出顾客的品的零售价、批发价、购买数量、及付款数,计算出顾客的品的零售价、批发价、购买数量、及付款数,计算出顾客的应付款及找零。应付款及找零。应付款及找零。应付款及找零。变量分析:变量分析:数学模型:数学模型: 应付款应付款 找零付款应付款找零付款应付款零售价*数量 ,当数量=10解析表达式解析表达式程序代码:程序代码:程序代码:程序代码:Private Sub Command1_Click()Private Sub Command1_Click()零售价零售价 = = Val(InputBoxVal(InputBox( (输入零售价:输入零售价:)批发价批发价 = = Val(InputBoxVal(InputBox( (输入批发价:输入批发价:)数量数量 = = Val(InputBoxVal(InputBox( (输入购买数量:输入购买数量:)付款付款 = = Val(InputBoxVal(InputBox( (输入付款数:输入付款数:)If If 数量数量 10 Then 10 Then 应付款应付款 = = 零售价零售价 * * 数量数量ElseElse _ _End IfEnd If _ _Print Print 应付款:应付款:, , 应付款应付款Print Print 找零找零, , 找零找零End SubEnd Sub应付款应付款 = = 批发价批发价 * * 数量数量找零找零 = = 付款付款 - - 应付款应付款解析法:解析法:就是在分析具体问题的基础上,抽取出一个就是在分析具体问题的基础上,抽取出一个数学模型数学模型数学模型数学模型,这个数学模型能用若干,这个数学模型能用若干解析表达解析表达解析表达解析表达式式式式表示出来,解决了这些表达式,问题也就表示出来,解决了这些表达式,问题也就得以解决。得以解决。用解析法解决问题的用解析法解决问题的关键关键关键关键是寻找是寻找_。解析表达式解析表达式练习:已有的研究成果表明,海拔每升高练习:已有的研究成果表明,海拔每升高练习:已有的研究成果表明,海拔每升高练习:已有的研究成果表明,海拔每升高100100米,年米,年米,年米,年平均气温降低平均气温降低平均气温降低平均气温降低0.50.5。编写程序输入山下的气温及山。编写程序输入山下的气温及山。编写程序输入山下的气温及山。编写程序输入山下的气温及山顶的相对海拔高度,输出山顶的气温。顶的相对海拔高度,输出山顶的气温。顶的相对海拔高度,输出山顶的气温。顶的相对海拔高度,输出山顶的气温。Private Sub Command1_Click()Private Sub Command1_Click()t t0 0 = = Val(InputBoxVal(InputBox(“ (“输入山下的气温:输入山下的气温:)h= h= Val(InputBoxVal(InputBox(“ (“输入山顶的相对海拔高度:输入山顶的相对海拔高度:)t=_t=_ Print “Print “山顶的气温为:山顶的气温为:, t, tEnd SubEnd Subt0-h/100*0.5绘制钻石绘制钻石问题分析:钻石是由点和线构成的,如图所示。图形四周的点位于同一个圆周上,点与点之间都有一条线段相连,因此只要绘制出各点间的线段就能绘出这个图形。绘制钻石绘制钻石建立坐标系。平均取N个点,将圆N等分,各点坐标为:x1=r*cos() y1=r*sin()x2=r*cos(2) y2=r*sin(2)其中,=360/N绘制钻石绘制钻石伪代码如下Private Sub Command1_Click()Const pi = 3.14159265Dim i As Integer, j As IntegerDim x1 As Single, y1 As SingleDim x2 As Single, y2 As SingleDim a As SingleDim r As SingleDim nodes As IntegerPicture1.Scale (-1.5, 1.5)-(1.5, -1.5) 建立坐标系Picture1.Clsr = 1nodes = 15a = 2 * pi / nodes 弧度数For i = 1 To nodes 枚举 求(x1,y1) x1 = r * Cos(a * i) y1 = r * Sin(a * i) For j = 1 To nodes 枚举 求(x2,y2) If i j Then x2 = r * Cos(a * j) y2 = r * Sin(a * j) Picture1.Line (x1, y1)-(x2, y2), vbBlue 画线 End If Next jNext iEnd Sub注意:需要添加picture1和command1例:韩信点兵例:韩信点兵今有物不知其数,三三数之余二,五五数之余三,七七数之余二,问物几何? 求符合条件的最小的数。 尝试用尝试用解析法解析法解决:解决: x mod 3=2x mod 3=2 x mod 5=3 x mod 5=3 x mod 7=2 x mod 7=2 采取从小到大一一尝试的办法。采取从小到大一一尝试的办法。 很难得到有效的解析式。枚举法枚举法解韩信点兵问题:枚举法解韩信点兵问题:Private Sub Command1_Click()Private Sub Command1_Click()i = 0i = 0DoDo i = i + 1i = i + 1Loop Until Loop Until (i Mod 3=2) And (i Mod 5=3)And (i Mod 7=2)(i Mod 3=2) And (i Mod 5=3)And (i Mod 7=2)Print iPrint iEnd SubEnd Sub枚举范围?枚举范围?条件?条件? Not(Not(i (i Mod 3=2) And (i Mod 5=3)And (i Mod 7=2) Mod 3=2) And (i Mod 5=3)And (i Mod 7=2) )1x1x枚举法:(穷举法、列举法)枚举法:(穷举法、列举法)将求解对象一一列举出来,然后逐一加以分将求解对象一一列举出来,然后逐一加以分析、处理,并验证结果是否满足给定的条件,析、处理,并验证结果是否满足给定的条件,枚举完所有对象,问题最终得以解决。枚举完所有对象,问题最终得以解决。注意判断枚举的注意判断枚举的范围范围和和条件条件。 练习:水仙花数练习:水仙花数水仙花是指一个三位数,它的各个位数的立方和正好等于该数本身。如:153=13+53+33求所有的水仙花数。分析:可能的数的范围是_数x(abc)需要满足的关系式是_100999a3+b3+c3=xFor x = 100 To 999 a = x 100 b = (x Mod 100) 10 c = x Mod 10 If x = a 3 + b 3 + c 3 Then Print x End IfNext x水仙花数解法二:水仙花数解法二:X(abc)Private Sub Command2_Click() For a = 1 To 9 For b = 0 To 9 For c = 0 To 9 If a * 100 + b * 10 + c = a 3 + b 3 + c 3 Then Print a * 100 + b * 10 + c End If Next c Next b Next aEnd Sub1 1、求解二元一次方程组。、求解二元一次方程组。、求解二元一次方程组。、求解二元一次方程组。 a1*x+b1*y=c1 a2*x+b2*y=c2x=(c2-b2*c1)/(a2-a1*b2/b1)y=(c1-a1*x)/b1达标练习:判断用解析法还是枚举法。达标练习:判断用解析法还是枚举法。解析法解析法x,yx,y为实数,无法枚举。为实数,无法枚举。枚举法?枚举法?2 2、百钱百鸡问题:、百钱百鸡问题:“ “公鸡五文钱一只,母鸡三文公鸡五文钱一只,母鸡三文钱一只,小鸡一文钱三只钱一只,小鸡一文钱三只” ”,一百文钱买一百只,一百文钱买一百只鸡,问买公鸡、母鸡、小鸡各多少只?鸡,问买公鸡、母鸡、小鸡各多少只?分析:分析:x+y+zx+y+z=100=1005x+3y+z/3=1005x+3y+z/3=100Private Sub Command1_Click()For x = 1 To 20 For y = 1 To 33 z = 100 - x - y If x * 5 + y * 3 + z / 3 = 100 Then Print x, y, z End If Next yNext xEnd Sub达标练习:判断用解析法还是枚举法。达标练习:判断用解析法还是枚举法。枚举法枚举法小结:枚举法的适用范围小结:枚举法的适用范围求解对象是_(有限/无限)的;_(可/不可)按规则列举。一元二次方程求根_(可/不可)用枚举法。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号