- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法举例 基本思想是,根据提出的问题,列举所有可能的情况,并 用问题中给定的条件检验哪些是需要的,哪些是不需要的。 教学进程 列举与试探 列举法常用于解决“是否存在”或“有多少种可能”等类型的问题,例如求解不定方程的问题。 ● 列举算法 【例】 某参观团按以下限制条件从A,B,C,D,E五个地方 中选定若干参观点: 1)如果去A地,则必须去B地; 2)D和E两地中只能去一地; 3)B和C两地中只能去一地; 4)C和D两地要么都去,要么都不去; 5)如果去E地,则必须去A和D地。问该参观团能去哪几个地方? 用a、b、c、d、e五个整型变量, 分别表示A、B、C、D、E是否去的 状态。若变量值为1,则表示该地去; 若变量值为0,则表示该地不去。 教学进程 #include stdio.h main() { int a,b,c,d,e; for (a=0; a<=1; a++) for (b=0; b<=1; b++) for (c=0; c<=1; c++) for (d=0; d<=1; d++) for (e=0; e<=1; e++) if ((a b || !a) d+e==1 b+c==1 (c+d==2 || c+d==0) (e a+d==2 || !e)) { printf(A will %s be go.\n,a?: not); printf(B will %s be go.\n,b?: not); printf(C will %s be go.\n,c?: not); printf(D will %s be go.\n,d?: not); printf(E will %s be go.\n,e?: not); } } 运行结果如下: A will not be go. (不去) B will not be go. (不去) C will be go. (去) D will be go. (去) E will not be go. (不去) 列举与试探 教学进程 在前面所讨论的列举算法中,一般总是知道列举量,其列 举的情况总是有限的。而在另外一些问题中,可能其列举量事 先并不知道,只能从初始情况开始,往后逐步进行试探,直到 满足给定的条件为止。这就是逐步试探的方法。 ● 试探算法 【例】 某幼儿园按如下方法依次给A、B、C、D、E五个小孩 发苹果。将全部苹果的一半再加二分之一个苹果发给第一个小孩; 将剩下苹果的三分之一再加三分之一个苹果发给第二个小孩;将剩 下苹果的四分之一再加四分之一个苹果发给第三个小孩;将剩下苹 果的五分之一再加五分之一个苹果发给第四个小孩;将最后剩下的 11个苹果发给第五个小孩。每个小孩得到的苹果数均为整数。 编制一个C程序,确定原来共有多少个苹果?每个小孩各得到 多少个苹果?P146 试探算法 教学进程 #include stdio.h main() { int n,flag,k,x,a,b,c,d,e; n=11; /*试探初值*/ flag=1; while(flag) /*进行试探*/ { x=n; /*保存当前试探值*/ flag=0;/*清标志值*/ for (k=1; k<=4 flag==0; k++) /*模拟四次发放过程*/ if ((n+1)%(k+1)==0) /*该小孩得到的是整数个苹果*/ n=n-(n+1)/(k+1); /*计算余下的苹果数*/ else flag=1; /*该小孩得到的不是整数个苹果,置标志值*/ if (flag==0 n!=11) flag=1;/*每次分配都得到整数个苹果,且最后剩下11个苹果*/ n=x+1; /*下一次的试探值*/ } 试探算法 教学进程 printf(Total number of apple=%d\n,x);/*输出总的苹果数*/ a=(x+1)/2; /*第一个小孩分到的苹果数*/ b=(x-a+1)/3; /*第二个小孩分到的苹果数*/ c=(x-a-b+1)/4; /*第三个小孩分到的苹果数*/ d=(x-a-b-c+1)/5;/*第四个小孩分到的苹果数*/
您可能关注的文档
最近下载
- 光伏项目送出工程受限空间空间作业专项施工方案.doc
- 深刻领会二十届三中全会精神,进一步全面深化改革-2025执业药师继续教育答案.docx VIP
- 苏教版五年级上册数学期中试卷.doc VIP
- 【33页PPT】班组长安全管理培训课件.ppt VIP
- 2025年北京通州区招聘社区工作者和社区专职党务工作者考试笔试试题.pdf VIP
- 《民用机场智能人像识别系统技术规范》(TCCAATB 0039-2023).pdf VIP
- 城市轨道交通ATO系统.ppt VIP
- 苏教版五年级数学上册期中试卷(含答案).pdf VIP
- 职业生涯开发与管理_南京邮电大学中国大学mooc课后章节答案期末考试题库2023年.pdf VIP
- 2025年亳州市社区工作者招聘笔试备考试题及答案解析.docx VIP
原创力文档


文档评论(0)