《4-2用穷举法设计程序.ppt》由会员分享,可在线阅读,更多相关《4-2用穷举法设计程序.ppt(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、4-2 用穷举法设计程序用穷举法设计程序栽树数量问题的求解:栽树数量问题的求解:问题:a,b,c是三个整数,100abc10,a*b*c=30723,且ab+c,试确定a,b,c的值。解决:(1)分析问题 P104(2)设计算法 P104(3)编写程序 P104(4)调试程序private sub form_click()dim a as integer,b as integern=30723for c=10 to sqr(n)for b=c to sqr(n)if n mod(c*b)=0 then a=ncb if ab+c then print a=;b=;b,c=;c end if n
2、ext b next cend sub程序:程序:问题问题1:公元前5世纪,我国数学家张丘建在算经一书中提出了一个“百钱买百鸡问题”。问题如下:鸡翁一值5,鸡母一值钱3,鸡雏三值钱1。百钱买百鸡,问鸡翁、鸡母和鸡雏各几何?列出了解析式:列出了解析式:设公鸡数为x,母鸡数为y,小鸡数为z,则有方程:X+y+z=100 5*x+3*y+z/3=100问:三个未知数,两个方程,如何求解?穷举法的基本思想:穷举法的基本思想:列举出所有可能的情况,逐个判断有哪些是符合问题所要求的条件,从而得到问题的全部解答。即将x、y、z的各种可能的值代入方程,看是否满足两个方程,如果满足,就是一组解。百钱买百鸡问题的
3、求解百钱买百鸡问题的求解设公鸡数为x,母鸡数为y,小鸡数为z,则有方程:X+y+z=1005*x+3*y+z/3=100根据题目意思可知:0 X 1000 Y 1000 Z 100根据题目意思上式可优化为:0 X 100/50 y 100/3(1)分析问题(2)设计算法设计算法 X=0 Y=0 z=100-x y 判断5*x+3*y+1/3*z=100成立,则打印x,y,z 如果y 33,则 y=y+1返回 如果x 20,则x=x+1返回 结束(3)编写程序编写程序(带下划线部分由学生完成)(带下划线部分由学生完成)Private Sub Command1_Click()Dim x,y,z As Integer Print 公鸡,母鸡,小鸡 Print For x=For y=z=If Then Print x,y,z Next y Next xEnd Sub0 To 200 To 33100-x-y5*x+3*y+1/3*z=100(4)调试程序调试程序穷举法小结:穷举法小结:(1)用穷举算法解决问题,通常可以从两个方面进行分析:确定范围;问题所涉及的情况有哪些,情况的种数可不可以确定。验证条件:分析出来的这些情况,需要满足什么条件,才成为问题的答案。(3)要使用多重循环。(4)如何评价一个算法的好坏,在考虑效率的同时,也要考虑程序的易读性。