用穷举法解决问题
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
任务二:编写求三位水仙花数程序
a=x\100 b=(x-a*100)\10 c=x-a*100-b*10
水仙花数代码:
Dim x, b, s, g As Integer For x = 100 To 999 Step 1 a = i \ 100 b = (i - a * 100) \ 10 c= i - a * 100 - b * 10 If a^3 + b^3 + c^3 = x Then Print x End If Next x
百钱买百鸡
⑴确定范围 ⑵验证条件:
百钱百鸡代码:
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
穷举法的适用条件:
①求解对象应该是有限的; ②有穷举规则 ③一时找不出解决问题的更好途径时;
穷举法解决问题步骤:
通常可以从两个方面进行分析: ⑴确定范围:问题所涉及的情况有哪些,情况 的种数可不可以确定。 ⑵验证条件:分析出来的这些情
Βιβλιοθήκη Baidu
任务三:百钱买百鸡”
相传我国南北朝时,京城有个卖鸡的张姓老汉,他有一 个儿子非常聪明,尤其擅长算术,到十二三岁时已是远近闻 名的“小神童”了。当朝宰相听说后想试探个究竟,于是派 仆人到张老汉的店里打听鸡的价钱,张老汉告知“公鸡五文 钱一只,母鸡三文一只,小鸡一文三只”。于是,仆人给他 一百文钱,要求公鸡、母鸡、小鸡都要,数量不多不少正好 一百只,命他次日送到府上。这可难为了张老汉,他怎么凑 也凑不够这个数,只好问儿子。“小神童”不慌不忙,掐指 一算就给出了答案,第二天照数送到宰相府。宰相见难不倒 “小神童”,又让仆人给张老汉一百文钱,要求再买一百只 鸡,搭配方法不能和上次一样。结果“小神童”又很快给出 了答案,宰相暗暗称奇,想最后再试一次,谁知还是没有难 倒“小神童”。 这个故事就是我国古代数学名著《张邱建算经》里的百 鸡百钱问题。请用穷举法求解所有的组合方法。
解析法解决问题步骤
1、问题分析 未知----已知
数学表达式 S = (a+b)*h/2
2、编程实现
3.2 用穷举法解决问题
3.2 用穷举法解决问题
1.什么是穷举法? 也叫枚举法、列举法 ——将求解对象一一列举出来,然后逐一加以分 析、处理,并验证结果是否满足给定的条件,穷举 完所有对象,问题将最终得以解决。
我们使用信用卡在柜员机上取钱时, 为什么系统要限制输入密码的次数?
小结
1、穷举法分析: ⑴确定范围 ⑵验证条件 2、自觉遵守网络道德与法规
任务一:水仙花数
水仙花数是指一个三位数,它的各位数的立方和正 好等于该数本身。如:153=13+53+33。请设计算法 求解“水仙花数问题”。
水仙花数算法:
穷举范围
For 某整数=100 to 999 If 该数百位数字的立方+该数十位数字的立 方+该数个位数字的立方=该数 Then print 该数 End if 满足条件 Next 某整数