- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
算法(穷举法)第二讲
穷举法 穷举法的一般模式 列出问题的可能范围,一般用循环或者循环嵌套结构来实现 探究、挖掘出问题解的约束条件 根据约束条件优化算法,尽可能地缩小穷举范围,减少穷举次数,降低算法的时间和空间复杂度。 穷举法的应用举例1 1.判断2000~2500年中的每一年是否为闰年。 自然语言描述: 设y为被检测的年份,则算法可表示如下: S1:2000→y; S2:若y不能被4整除,则输出y“不是闰年”,然后转到S6; S3:若y能被4整除,不能被100整除,则输出y“是闰年”,然后转到S6; S4:若y能被100整除,又能被400整除,输出y“是闰年” ,然后转到S6; S5:输出y“不是闰年”,然后转到S6; S6:y+1→y; S7:当y≤2500时, 返回S2继续执行,否则结束。 流程图 C语言程序 #include stdio.h void main() { int y=2000; while (y=2500) { if((y%4)==0) { if(y%100!=0) printf( %d 年是闰年\n,y); else if(y%400==0) printf( %d 年是闰年\n,y); else printf( %d 年是非闰年\n,y); } else printf( %d 年是非闰年\n,y); y=y+1; } } 穷举法的应用举例2 百钱百鸡问题:相传我国南北朝时,京城有个卖鸡的张姓老汉,他有一个儿子非常聪明,尤其擅长算术,到十二三岁时已是远近闻名的“小神童”了。当朝宰相听说后想试探个究竟,于是派仆人到张老汉的店里打听鸡的价钱,张老汉告知“公鸡五文钱一只,母鸡三文一只,小鸡一文三只”。于是,仆人给他一百文钱,要求公鸡、母鸡、小鸡都要,数量不多不少正好一百只,命他次日送到府上。这可难为了张老汉,他怎么凑也凑不够这个数,只好问儿子。“小神童”不慌不忙,掐指一算就给出了答案,第二天照数送到宰相府。宰相见难不倒“小神童”,又让仆人给张老汉一百文钱,要求再买一百只鸡,搭配方法不能和上次一样。结果“小神童”又很快给出了答案,宰相暗暗称奇,想最后再试一次,谁知还是没有难倒“小神童”。 这个故事就是我国古代数学名著《张邱建算经》里的百鸡百钱问题。请用穷举法求解所有的组合方法。 自然语言描述: 题目分析与算法设计 设鸡翁、鸡母、鸡雏的个数分别为x,y,z,题意给定共100钱要买百鸡,若全买公鸡最多买20只,显然x的值在0~20之间;同理,y的取值范围在0~33之间,可得到下面的不定方程: ? 5x+3y+z/3=100? x+y+z=100? 所以此问题可归结为求这个不定方程的整数解。? 由程序设计实现不定方程的求解与手工计算不同。在分析确定方程中未数变化范围的前提下,可通过对未知数可变范围的穷举,验证方程在什么情况下成立,从而得到相应的解。 流程图 C语言程序 includestdio.h??main()??{?? int?x,y,z;?? for(x=0;x=20;x++)?? for(y=0;y=33;y++)??? {if(5*x+3*y+z/3==100z%3==0)?? printf(“cock=%d;hen=%d;chicken= %d\n,x,y,z);}??} 我们使用信用卡在柜员机上取钱时,为什么系统要限制输入密码的次数? 小结 1、穷举法分析: ⑴确定范围 ⑵验证条件 2、自觉遵守网络道德与法规 穷举法的作业 1、换零钱问题。将一元钱换成1分,2分或5分的零钱有多少种换法? C程序 #include stdio.h#include stdlib.hint main(){int one,two,five,num=0;for(one=0;one=100;one++)for(two=0;two=50;two++)for(five=0;five=20;five++)if(one+two*2+five*5==100){num++;printf(100=%d*1+%d*2+%d*5\n,one,two,five);}printf(\n%d possibilities\n,num);} * * 1.什么是穷举法? 也叫枚举法、列举法 ——将求解对象一一列举出来,然后逐一加以分析、处理,并验证结果是否满足给定的条件,穷举完所有
您可能关注的文档
- 第四编 国际民商事争议的解决.doc
- 第四章:风险分析.pptx
- 第四组地理文化遗产.ppt
- 第四章魏晋北朝.ppt
- 第四节 老子客观唯心主义的哲学思想.ppt
- 第四章经济管理报告文书.ppt
- 第四组学员制作的师德ppt下载 - 星期四.ppt
- 第四章第一节交通运输by stella.ppt
- 第四节 地域文化与人口-2013.ppt
- 第四章:内部招聘和外部招聘.ppt
- 2024年施工员自我提分评估及完整答案详解【历年真题】.docx
- 2024年施工员试题预测试卷附答案详解(完整版).docx
- 2024年施工员题库检测试题打印(综合卷)附答案详解.docx
- 2024年施工员过关检测试卷附参考答案详解(突破训练).docx
- 2024年施工员能力检测试卷及参考答案详解(培优).docx
- 2024年施工员题库附完整答案详解【夺冠系列】.docx
- 2024年施工员自我提分评估及完整答案详解.docx
- 制造业项目监理服务质量保障措施.docx
- 2022-2023学年安徽省阜阳市颍州区未来学校八年级(下)期末数学试卷.pdf
- 2024年施工员题库试题含完整答案详解【典优】.docx
最近下载
- 机械仿生狗设计说明书.doc
- 2025《西藏自治区建设工程计价定额》A房屋建筑与装饰工程.pdf
- 传送带同步运行功能使用说明书-北京迪基透科技有限公司.PDF
- 2025河北邯郸魏县选聘村级党务(村务)工作者490人笔试模拟试题参考答案详解.docx VIP
- 心脑血管疾病防治健康教育讲座课件PPT.ppt VIP
- 2025河北邯郸临漳县选聘农村党务(村务)工作者笔试模拟试题及答案解析.docx VIP
- 国开一网一 电子商务概论 实践任务(B2B电子商务网站调研报告).doc
- Siemens西门子工业SITRANS LR500 系列 (mA HART) SITRANS LR500 系列 (mA HART)使用手册.pdf
- 一种驻车空调和卡车启动共用锂电池模组.pdf VIP
- 电子商务学习记录.docx VIP
文档评论(0)