用穷举法解决问题(课件PPT)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13
为什么系统要限制输入密码的次数?
14
小结
1、穷举法特点: 求解对象有限,按照某种规则
2、穷举法分析: ⑴确定范围 ⑵验证条件
15
16
放映结束 感谢各位的批评指导!
谢 谢!
让我们共同进步
17
’定义变量x,a,b,c为整数型 ’循环变量范围 ’ 百位数字赋值给a ’十位数字赋值给b ’个位数字赋值给c ’如果条件成立,则 ’输出水仙花数x
8
水仙花数算法:
穷举范围
❖ For 某整数=100 to 999
❖ If 该数百位数字的立方+该数十位数字的立 方+该数个位数字的立方=该数 Then
一算就给出了答案,第二天照数送到宰相府。宰相见难不倒
“小神童”,又让仆人给张老汉一百文钱,要求再买一百只
鸡,搭配方法不能和上次一样。结果“小神童”又很快给出
了答案,宰相暗暗称奇,想最后再试一次,谁知还是没有难
倒“小神童”。

这个故事就是我国古代数学名著《张邱建算经》里的百
鸡百钱问题。请用穷举法求解所有的组合方法。
解析法解决问题步骤
1、问题分析 未知----已知 数学表达式 2、编程实现
1
2
3.2 用穷举法解决问题
马征征 2011年4月
3
3.2 用穷举法解决问题
1.什么是穷举法? 也叫枚举法、列举法
——将求解对象一一列举出来,然后逐一加以分 析、处理,并验证结果是否满足给定的条件,穷举 完所有对象,问题将最终得以解决。
11
百钱买百鸡
❖ ⑴确定范围 公鸡 母鸡 小鸡
⑵验证条件:
5*x +3*y+1/3*z=100 x+y+z=100
12
百钱百鸡代码:
Dim x, y, z As Integer For x = 1 To 20 For y = 1 To 33 For z = 1 To 100 If (5 * x + 3 * y + 1 / 3 * z = 100) And (x + y + z = 100) Then Print x, y, z End If Next z Next y Next x End Sub
名的“小神童”了。当朝宰相听说后想试探个究竟,于是派
仆人到张老汉的店里打听鸡的价钱,张老汉告知“公鸡五文
钱一只,母鸡三文一只,小鸡一文三只”。于是,仆人给他
一百文钱,要求公鸡、母鸡、小鸡都要,数量不多不少正好
一百只,命他次日送到府上。这可难为了张老汉,他怎么凑
也凑不够这个数,只好问儿子。“小神童”不慌不忙,掐指
❖ print 该数
❖ End if ❖ Next 某整数
满足条件
9
穷举法的适用条件:
①求解对象应该是有限的; ②可以按照某种规则列举对象 ③一时找不出解决问题的更好途径时;
穷举法解决问题步骤:
⑴确定范围:
⑵验证条件: 10
任务三:百钱买百鸡”

相传我国南北朝时,京城有个卖鸡的张姓老汉,他有一
个儿子非常聪明,尤其擅长算术,到十二三岁时已是远近闻
4
任务一:水仙花数
❖ 水仙花数是指一个三位数,它的各位数的立方和正 好等于该数本身。如:153=13+53+33。
❖ 请设计算法求解“水仙花数问题”。
⑴确定范围:
⑵验证条Fra Baidu bibliotek:
5
水仙花数算法:
穷举范围
❖ For 某整数=100 to 999
❖ If 该数百位数字的立方+该数十位数字的立 方+该数个位数字的立方=该数 Then
❖ print 该数
❖ End if ❖ Next 某整数
满足条件
6
任务二:实践求三位水仙花数程序
❖ a=x\100 ❖ b=(x-a*100)\10 ❖ c=x-a*100-
b*10
7
水仙花数代码:
Dim x, a, b,c As Integer For x = 100 To 999
a = x \ 100 b = (x - a * 100) \ 10 c= x - a * 100 - b * 10 If a^3 + b^3 + c^3 = x Then Print x End If Next x
相关文档
最新文档