- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
什么是枚举法
信息工程学院
基本思想
枚举也称穷举,指的是从问题可能的解的集合中一一列举各元素。
用题目给定的条件判定哪些是无用的,哪些是有用的。能使命题成立,即为其解。
本质上属于搜索算法
第1页/共16页
什么是枚举法
信息工程学院
特点
容易理解,步骤单一。
得到的结果肯定是正确的。
通常会涉及到求极值(如最大,最小等)。
数据量大的话,可能会造成时间崩溃。
第2页/共16页
引子
信息工程学院
【例1】以下式子中的每个汉字代表一个数字,求出这些汉字代表的数字分别是多少?
慕课制作组
X 慕
组组组组组组
第3页/共16页
枚举法
信息工程学院
计算机解决枚举问题
算法简单、精确度高。
常用多重循环解决枚举问题(while循环、for循环)。
效率低——当问题的规模变大,循环的阶数增加,执行的速度严重变慢。
第4页/共16页
百元买百鸡问题
【例2】鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?
解题思路:
设鸡翁、鸡母、鸡雏的数量分别为x,y,z,则有以下方程
x+y+z=100
5x+3y+z/3=100
此三元一次方程有多个解,可用枚举法求解。
信息工程学院
第5页/共16页
百元买百鸡问题
C语言解法一:
main()
{
int x, y, z;
for(x=1;x=100;x++)
for(y=1;y=100;y++)
for(z=1;z=100;z++)
if((z%3==0)(x+y+z==100)(5*x+3*y+z/3==100))
printf(“鸡翁%d只,鸡母%d只,鸡雏%d只\n,x,y,z);
}
信息工程学院
第6页/共16页
百元买百鸡问题
C语言解法一:
信息工程学院
main()
{
int x, y, z;
for(x=1;x=100;x++)
for(y=1;y=100;y++)
for(z=1;z=100;z++)
if((z%3==0)(x+y+z==100)(5*x+3*y+z/3==100))
printf(“鸡翁%d只,鸡母%d只,鸡雏%d只\n,x,y,z);
}
第7页/共16页
百元买百鸡问题
限定变量的取值范围
x的取值范围是1=x=20
y的取值范围是1=y=33
减少循环的层数、判断时间
z=100-x-y
信息工程学院
第8页/共16页
百元买百鸡问题
C语言解法二:
main()
{
int x,y,z;
for(x=1;x=20;x++)
for(y=1;y=33;y++)
if(((100-x-y)%3==0)(5*x+3*y+(100-x-y)/3==100))
{z=100-x-y;
printf(“鸡翁%d只,鸡母%d只,鸡雏%d只\n,x,y,z);
}
}
第9页/共16页
百元买百鸡问题
信息工程学院
第10页/共16页
百元买百鸡问题
x+y+z=100
5x+3y+z/3=100
y=25-7/4*x
z=75+3/4*x
x=4k
y=25-7k
z=75+3k
化简
令x=4k
分析题意可知:
k只能取1,2,3
信息工程学院
第11页/共16页
百元买百鸡问题
C语言解法三:
main()
{
int k;
for(k=1;k=3;k++)
printf(“鸡翁%d只,鸡母%d只,鸡雏%d只\n,4k,25-7k,z);
}
信息工程学院
第12页/共16页
枚举法
信息工程学院
优化策略
对问题多加分析,减少循环重数和次数。
合理选择用于枚举的变量。
减少每种情况的判断时间。
是否有其他更好的方法。
第13页/共16页
知识拓展
信息工程学院
试用枚举法解决以下两个问题
从1—10的10个数中,每次取2个数,要使它们的和大于10,一共有多少种取法?
从学校到少年宫有4条东西走向的马路和3条南北走向的马路,小明从学校步行到少年宫(只许向东或向南行走),最多有多少种走法?
第14页/共16页
信息工程学院
主讲教师:门瑞
第15页/共16页
感谢您的观看!
第16页/共16页
文档评论(0)