内容正文:
用穷举法解决问题
手机解锁密码忘记了,只记得后两位是16,请同学们帮我找回前两位密码!
穷举算法的概念:
穷举算法就是按问题本身的性质,通过多重循环一一列举出该问题所有可能的解(不能遗漏,也不能重复),并在逐一列举的过程中,检验每个可能的解是否是问题的真正解,若是,我们采用这个解,否则抛弃它。
用穷举法设计算法
穷举算法的要点:
列举所有可能的解(不能遗漏,也不能重
复),检验每个可能的解。
中国古代数学《算经》中的“百钱买百鸡” “鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,翁、母、雏各几何?”意思是说:一只公鸡卖5枚钱,一只母鸡卖3枚钱,三只小鸡卖1枚钱,用100枚钱买100只鸡,能买到公鸡、母鸡、小鸡各多少只?
5
具体问题
分析问题
设计算法
编写程序
调试程序
检测结果
修改
应用穷举法解决问题的特点:
①求解对象应该是有限的;
②可以按某种规则列举对象;
③适用于一时找不出解决问题的更好途径时;
④有明显的穷举范围;
⑤有穷举规则;
⑥花费时间较多,工作量较大。
归纳与总结
8
1、确定穷举对象的范围(用for / next循环结构实现)
穷举法解决问题
步骤
2、确定穷举对象的条件(用if分支选择结构实现)
练习导航
9
计算年龄
1
整钱兑零
2
9
计算丢番图的年龄
课本P49 实践2
10
算法分析:
第一步:确定穷举对象的范围:
9-200
第二步:确定穷举对象的条件:
age = (age / 6) + (age / 12) + (age / 7) + 5 + (age / 2) + 4
整钱兑零
小明的爸爸给小明出了一道难题:把一张百元大钞换成5元、2元、1元的零钱,且2元的张数要多于1元的张数,但要少于5元的张数。问有多少种兑换方法?
11
谢 谢!
$$