《C语言穷举法经典例题.ppt》由会员分享,可在线阅读,更多相关《C语言穷举法经典例题.ppt(18页珍藏版)》请在人人文库网上搜索。

1、枚举法(穷举法),“笨人之法”: 把所有可能的情况一一测试,筛选出符合条件的各种结果进行输出。,分析: 这是个不定方程三元一次方程组问题 (三个变量,两个方程) xyz=100 5x3yz/3=100 设公鸡为x只,母鸡为y只,小鸡为z只。,百元买百鸡问题分析,xyz=100 5x3yz/3=100,三重循环,void main() int x,y,z; for (x=0;x=100;x+) for (y=0;y=100;y+) for (z=0;z=100;z+) if (x+y+z=100 ,结果:x=0,y=25,z=75 x=4,y=18,z=78 x=8,y=11,z=81 x=12。

2、,y=4,z=84,【讨论】为什么多了几组解?,?,百元买百鸡问题分析,void main() int x,y,z; for (x=0;x=100;x+) for (y=0;y=100;y+) for (z=0;z=100;z+) if (z%3=0 ,结果:x=0,y=25,z=75 x=4,y=18,z=78 x=8,y=11,z=81 x=12,y=4,z=84,【讨论】 此为“最笨”之法要进行101101101= 1030301次(100多万次)运算。,优化,void main() int x,y,z; for (x=0;x=100;x+) for (y=0;y=100;y+) z=1。

3、00-x-y; if (z%3=0 ,【讨论】 令z=100-x-y 只进行101101= 10201 次运算(前者的1%),取x=20,y=33 只进行2134= 714 次运算(第1种运算的6.9e-4),继续优化,void main() int x,y,z; for (x=0;x=14;x+) for (y=0;y=25;y+) if (7*x+4*y=100 ) z=100-x-y; printf(cocks=%d,hens=%d,chickens=%dn,x,y,z); ,取x=14,y=25 只进行1526= 390 次运算,课堂讨论:谁做的好事? 有四位同学中的一位做了好事,不留。

4、名,表扬信来了之后,校长问这四位是谁做的好事。 A说:不是我。 B说:是C。 C说:是D。 D说:C胡说。 已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。,编程思路: 如何找到该人,一定是“先假设该人是做好事者,然后到每句话中去测试看有几句是真话”。“有三句是真话就确定是该人,否则换下一人再试”。 比如,先假定是A同学,让 thisman=A; 代入到四句话中 A说:thisman!=A;A!=A假,值为0。 B说:thisman=C;A=C假,值为0。 C说:thisman=D;A=D假,值为0。 D说:thisman!=D;A!=D真,值为1。 显然,不是A。

5、做的好事(四个关系表达式值的和为1),再试B同学,让thisman=B; 代入到四句话中 A说:thisman!=A;B!=A真,值为1。 B说:thisman=C;B=C假,值为0。 C说:thisman=D;B=D假,值为0。 D说:thisman!=D;B!=D真,值为1。 显然,不是B所为(四个关系表达式值的和为2),再试C同学,让thisman=C; 代入到四句话中 A说:thisman!=A;C!=A真,值为1。 B说:thisman=C;C=C真,值为1。 C说:thisman=D;C=D假,值为0。 D说:thisman!=D; C!=D真,值为1。 显然,就是C做了好事(四个。

6、关系表达式值之和为3) 这时,我们可以理出头绪,要用枚举法,一个人一个人地去试,四句话中有三句为真,该人即所求。,#include void main( ) char thisman; int sa,sb,sc,sd,cond; for (thisman=A; thisman=D; thisman+) sa=(thisman != A); sb=(thisman = C); sc=(thisman = D); sd=(thisman != D); cond=sa+sb+sc+sd; if (cond=3) printf(做好事的人是:%cn, thisman); ,利用穷举法求解趣味智力题,(。

7、韩信点兵) 韩信有一队兵,他想知道有多少人,便让士兵排队报数。按从1至5报数,最末一个士兵报的数为1;按从1至6报数,最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10。你知道韩信至少有多少兵吗? 设兵数为x,则x应满足: x%5 = 1 for (x=1; x 5000 ;x+) if (x%5=1 /*属于“瞎猫碰死耗子”的做法*/,穷举法求解韩信点兵,#include void main() int x; for (x=1; ;x+) if (x%5=1 /*死循环永远不会退出的循环*/,穷举法求解韩信点兵,穷举法求解韩信点兵:方案1-goto,#include void main() int x; for (x=1; ;x+) if (x%5=1 ,穷举法求解韩信点兵:方案2-break,#include void main() int x; for (x=1; ;x+) if (x%5=1 ,穷举法求解韩信点兵:方案3-标志变量,#include void main() int x; int find = 0; /*设置找到标志为假*/ for (x=1; !find ;x+) if (x%5=1。

c语言穷举法举例,C语言穷举法经典例题.ppt相关推荐

  1. c语言变量相等问题穷举法,C语言穷举法经典例题.ppt

    <C语言穷举法经典例题.ppt>由会员分享,可在线阅读,更多相关<C语言穷举法经典例题.ppt(18页珍藏版)>请在人人文库网上搜索. 1.枚举法(穷举法),"笨人之 ...

  2. c语言格式字符使用举例,c语言char怎么用

    C语言中char用于定义字符类型变量或字符指针变量,例如"char a;"则定义了变量a是字符类型,"char *a;"则定义了变量a是字符指针类型. C语言中 ...

  3. c语言怎样定义函数举例,c语言怎样定义函数?

    #include "math.h" #include "stdio.h" void l(float h, float g ,float j)//要有函数申明 m ...

  4. c语言while break用法举例,C语言 关于while,for,break

    这里的while语句没什么作用,只是把i=n的纯清情况排除了而已. 如果要排除n的情况应该这样写: for(i=2;i 当你输入12,i=2,进入while循环,输出2*之后,n变成了6 因为n!=i ...

  5. psm倾向得分匹配法举例_倾向得分匹配法(PSM)举例及stata实现

    倾向得分匹配法 (PSM) 举例及 stata 实现 偏好分数匹配法 (PSM) 和 stata 实施 - 阅读注释 [ 示例 ] 政策背景 : 国家支持的工作,新南威尔士州 ) 研究目标 : 测试接 ...

  6. psm倾向得分匹配法举例_倾向得分匹配法(PSM)举例和stata实现.pdf

    倾向得分匹配法(PSM )举例及stata 实现 --读书笔记 1 [例]培训对工资的效应 政策背景:国家支持工作示范项目(National Supported Work,NSW ) 研究目的:检验接 ...

  7. psm倾向得分匹配法举例_倾向得分匹配法(PSM)举例及stata实现.pdf

    倾向得分匹配法(PSM)举例及stata实现.pdf 倾向得分匹配法(PSM )举例及stata 实现 --读书笔记 1 [例]培训对工资的效应 政策背景:国家支持工作示范项目(National Su ...

  8. psm倾向得分匹配法举例_倾向得分匹配法 PSM

    PSM的定义 在医疗.经济.金融学等领域中,当某项公共政策实施后,我们通常希望通过一些方法去评估该项政策产生的影响,即政策的作用及效应,以更好的指导政策实施,服务于公共决策.比如研究某个劳动者接受某种 ...

  9. java穷举法解方程_枚举法(穷举法)_Java语言程

    枚举法(穷举法)_Java语言程 3.5.1 枚举法(穷举法) 枚举法就是把所有可能的情况一一测试,筛选出符合条件的各种结果进行输出. [例3-20] 百元买百鸡:用一百元钱买一百只鸡.已知公鸡5元/ ...

最新文章

  1. 《3ds Max疯狂设计学院》——1.5节怎样才能学好3ds Max,你要听好
  2. javafx官方文档学习之二Scene体系学习一
  3. XamarinSQLite教程创建数据表
  4. C++ - 编写一个从字符串转变成长整型的函数
  5. HDU OJ Super Jumping! Jumping! Jumping!
  6. 线性一致性与全序广播------《Designing Data-Intensive Applications》读书笔记12
  7. matlab给0数组赋值,MATLAB中怎么把一个函数的一部分赋值给一个变量或数组,比如怎么把sin(x)大于0的部分赋值给f....
  8. Pandas中的 transform() 结合 groupby() 用法示例
  9. 《修改代码的艺术》读书笔记一
  10. Dockerfile语法
  11. layui表头样式_js相关:layui中table表头样式修改方法
  12. Git基础知识与常用命令
  13. python中的scipy基础知识_python3 scipy 入门
  14. 【Linux】很实用的 Linux 高级命令,老码农一定要懂
  15. 理解EMM:是更好地管理移动性的关键所在
  16. yagmail发送邮件
  17. python 文件操作新姿势 pathlib模块的详细使用
  18. G代码表《G代码大全》
  19. docker部署redies高可用集群实战
  20. linux命令高亮显示,linux命令行高亮显示

热门文章

  1. 推荐三个下载器(其中一个可以在网页上下载、两个百度网盘上不限速,真实简单操作)
  2. 百济神州生物岛创新中心揭幕;朱秀轩博士出任天境生物总裁及董事 | 医药健闻...
  3. 称重传感器安装好后的调整与测试
  4. 谷歌云请更正这张卡片的信息_如何在Android的Google键盘上改进自动更正
  5. 极限存在、连续、可导、可微和可积之间关系-----专升本
  6. php mockery单元测试,php – mockery重载类缺少方法
  7. 苹果发力人工智能大举招兵买马 Google利用AI治理网络喷子
  8. Java 打怪升级路线图,大佬是这样炼成的!一定要收藏
  9. 学福爱牛牛的博客之旅启航
  10. SQL 语句中的 (+)