c语言穷举法举例,C语言穷举法经典例题.ppt
《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相关推荐
- c语言变量相等问题穷举法,C语言穷举法经典例题.ppt
<C语言穷举法经典例题.ppt>由会员分享,可在线阅读,更多相关<C语言穷举法经典例题.ppt(18页珍藏版)>请在人人文库网上搜索. 1.枚举法(穷举法),"笨人之 ...
- c语言格式字符使用举例,c语言char怎么用
C语言中char用于定义字符类型变量或字符指针变量,例如"char a;"则定义了变量a是字符类型,"char *a;"则定义了变量a是字符指针类型. C语言中 ...
- c语言怎样定义函数举例,c语言怎样定义函数?
#include "math.h" #include "stdio.h" void l(float h, float g ,float j)//要有函数申明 m ...
- c语言while break用法举例,C语言 关于while,for,break
这里的while语句没什么作用,只是把i=n的纯清情况排除了而已. 如果要排除n的情况应该这样写: for(i=2;i 当你输入12,i=2,进入while循环,输出2*之后,n变成了6 因为n!=i ...
- psm倾向得分匹配法举例_倾向得分匹配法(PSM)举例及stata实现
倾向得分匹配法 (PSM) 举例及 stata 实现 偏好分数匹配法 (PSM) 和 stata 实施 - 阅读注释 [ 示例 ] 政策背景 : 国家支持的工作,新南威尔士州 ) 研究目标 : 测试接 ...
- psm倾向得分匹配法举例_倾向得分匹配法(PSM)举例和stata实现.pdf
倾向得分匹配法(PSM )举例及stata 实现 --读书笔记 1 [例]培训对工资的效应 政策背景:国家支持工作示范项目(National Supported Work,NSW ) 研究目的:检验接 ...
- psm倾向得分匹配法举例_倾向得分匹配法(PSM)举例及stata实现.pdf
倾向得分匹配法(PSM)举例及stata实现.pdf 倾向得分匹配法(PSM )举例及stata 实现 --读书笔记 1 [例]培训对工资的效应 政策背景:国家支持工作示范项目(National Su ...
- psm倾向得分匹配法举例_倾向得分匹配法 PSM
PSM的定义 在医疗.经济.金融学等领域中,当某项公共政策实施后,我们通常希望通过一些方法去评估该项政策产生的影响,即政策的作用及效应,以更好的指导政策实施,服务于公共决策.比如研究某个劳动者接受某种 ...
- java穷举法解方程_枚举法(穷举法)_Java语言程
枚举法(穷举法)_Java语言程 3.5.1 枚举法(穷举法) 枚举法就是把所有可能的情况一一测试,筛选出符合条件的各种结果进行输出. [例3-20] 百元买百鸡:用一百元钱买一百只鸡.已知公鸡5元/ ...
最新文章
- 《3ds Max疯狂设计学院》——1.5节怎样才能学好3ds Max,你要听好
- javafx官方文档学习之二Scene体系学习一
- XamarinSQLite教程创建数据表
- C++ - 编写一个从字符串转变成长整型的函数
- HDU OJ Super Jumping! Jumping! Jumping!
- 线性一致性与全序广播------《Designing Data-Intensive Applications》读书笔记12
- matlab给0数组赋值,MATLAB中怎么把一个函数的一部分赋值给一个变量或数组,比如怎么把sin(x)大于0的部分赋值给f....
- Pandas中的 transform() 结合 groupby() 用法示例
- 《修改代码的艺术》读书笔记一
- Dockerfile语法
- layui表头样式_js相关:layui中table表头样式修改方法
- Git基础知识与常用命令
- python中的scipy基础知识_python3 scipy 入门
- 【Linux】很实用的 Linux 高级命令,老码农一定要懂
- 理解EMM:是更好地管理移动性的关键所在
- yagmail发送邮件
- python 文件操作新姿势 pathlib模块的详细使用
- G代码表《G代码大全》
- docker部署redies高可用集群实战
- linux命令高亮显示,linux命令行高亮显示
热门文章
- 推荐三个下载器(其中一个可以在网页上下载、两个百度网盘上不限速,真实简单操作)
- 百济神州生物岛创新中心揭幕;朱秀轩博士出任天境生物总裁及董事 | 医药健闻...
- 称重传感器安装好后的调整与测试
- 谷歌云请更正这张卡片的信息_如何在Android的Google键盘上改进自动更正
- 极限存在、连续、可导、可微和可积之间关系-----专升本
- php mockery单元测试,php – mockery重载类缺少方法
- 苹果发力人工智能大举招兵买马 Google利用AI治理网络喷子
- Java 打怪升级路线图,大佬是这样炼成的!一定要收藏
- 学福爱牛牛的博客之旅启航
- SQL 语句中的 (+)