社区
C语言
帖子详情
简单的算法,搞定马上结分!!!!
xcz1943
2005-11-26 07:34:31
题目:
五位跳水高手将参加十米高台跳水决赛,有好事者让五个人根据实力预测比赛结果。
A选手说;B第二,我第三
B选手说 我第二,E第四
C选手说 我第一,D第而
D选手说 c最后,我第三
e选手说 我第四,A第一
决赛成绩公布之后,每位选手的预测都只说对了一半,即一对一错,请写出分析过程 并编程出比赛的实际名次
提示 将五个人的预测写成逻辑表达方式
写个代码下来,谢谢!
...全文
727
24
打赏
收藏
简单的算法,搞定马上结分!!!!
题目: 五位跳水高手将参加十米高台跳水决赛,有好事者让五个人根据实力预测比赛结果。 A选手说;B第二,我第三 B选手说 我第二,E第四 C选手说 我第一,D第而 D选手说 c最后,我第三 e选手说 我第四,A第一 决赛成绩公布之后,每位选手的预测都只说对了一半,即一对一错,请写出分析过程 并编程出比赛的实际名次 提示 将五个人的预测写成逻辑表达方式 写个代码下来,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
24 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
manplus
2005-11-29
打赏
举报
回复
mark
bestlife
2005-11-29
打赏
举报
回复
我没看懂,脑袋还晕了!
zhouxiangsen
2005-11-28
打赏
举报
回复
厉害,看来离散数学也不能丢啊!
对吗?
bekars
2005-11-28
打赏
举报
回复
Mark
夏天的大蝎子
2005-11-28
打赏
举报
回复
牛
liweiswin
2005-11-28
打赏
举报
回复
这么多高手。小弟见识了。谢谢各位!!!!
NKNM
2005-11-28
打赏
举报
回复
main()
{
int a,b,c,d,e;
for(a=1; a<=5; a++)
for(b=1; b<=5; b++)
for(c=1; c<=5; c++)
for(d=1; d<=5; d++)
for(e=1; e<=5; e++)
{
if(((b==2||a==3)==1)&&((b==2&&a==3)!=1))
{
if(((b==2||e==4)==1)&&((b==2&&e==4)!=1))
{
if(((c==1||d==2)==1)&&((c==1&&d==2)!=1))
{
if(((c==5||d==3)==1)&&((c==5&&d==3)!=1))
{
if(((e==4||a==1)==1)&&((e==4&&a==1)!=1))
{
if(a!=b&&a!=c&&a!=d&&a!=e&&b!=c&&b!=d&&b!=e&&c!=d&&c!=e&&d!=e)
printf("%d--%d--%d--%d--%d\n",a,b,c,d,e);
}
}
}
}
}
}
}
flyskywz
2005-11-28
打赏
举报
回复
没看懂,就是一个字,牛!!
wotur
2005-11-28
打赏
举报
回复
强人阿,佩服
nipcdll
2005-11-28
打赏
举报
回复
佩服
tin1908
2005-11-27
打赏
举报
回复
帮我把今天的题目也搞定一下拉!!
tin1908
2005-11-27
打赏
举报
回复
shishaguo(江大沙锅)我放进去怎么运行不了啊??
iostream.h在里面好象显示什么不允许啊?
blufo
2005-11-27
打赏
举报
回复
代码就不写了。 我比较喜欢shishaguo(江大沙锅)所写 。
guogang9527
2005-11-27
打赏
举报
回复
真是牛啊,实在是佩服啊。。xiaocai0001(萧筱雨) I 服 U 咯
aimt
2005-11-27
打赏
举报
回复
长见识了,xiaocai0001(萧筱雨) 真牛!!
xiaocai0001
2005-11-27
打赏
举报
回复
程序实现上述推导.
运行结果(TC, VC下调试通过):
0x36
D -- 2nd
A -- 3rd
E -- 4th
C -- 5th
Press any key to continue
------------------------------
#include <stdio.h>
typedef union PropSet
{
struct
{
unsigned int p1:1;
unsigned int p2:1;
unsigned int p3:1;
unsigned int p4:1;
unsigned int p5:1;
unsigned int p6:1;
unsigned int p7:1;
unsigned int p8:1;
}prop;
#define p1 prop.p1
#define p2 prop.p2
#define p3 prop.p3
#define p4 prop.p4
#define p5 prop.p5
#define p6 prop.p6
#define p7 prop.p7
#define p8 prop.p8
unsigned short val;
}Propositions;
int Judge(Propositions p);
void Show(Propositions p);
int main()
{
Propositions p;
for(p.val=0; p.val<=255; ++p.val)
{
if(Judge(p))
Show(p);
}
return 0;
}
int Judge(Propositions p)
{
/* // p1: B 第二
// p2: A 第三
// p3: E 第四
// p4: C 第一
// p5: D 第二
// p6: C 第五
// p7: D 第三
// p8: A 第一
// A说对了一半: p1(!p2)∨(!p1)p2 ......①
*/ if((p.p1^p.p2) == 0)
return 0;
/* // B说对了一半: p1(!p3)∨(!p1)p3 ......②
*/ if((p.p1^p.p3) == 0)
return 0;
/* // C说对了一半: p4(!p5)∨(!p4)p5 ......③
*/ if((p.p4^p.p5) == 0)
return 0;
/* // D说对了一半: p6(!p7)∨(!p6)p7 ......④
*/ if((p.p6^p.p7) == 0)
return 0;
/* // E说对了一半: p3(!p8)∨(!p3)p8 ......⑤
*/ if((p.p3^p.p8) == 0)
return 0;
/* // A名次不能同时为第三和第一
*/ if(p.p2 && p.p8)
return 0;
/* // D名次不能同时为第二和第三
*/ if(p.p5 && p.p7)
return 0;
/* // C名次不能同时为第一和第五
*/ if(p.p4 && p.p6)
return 0;
/* // A, C不能同时第一名
*/ if(p.p4 && p.p8)
return 0;
/* // B, D不能同时第二名
*/ if(p.p1 && p.p5)
return 0;
/* // A, D不能同时第三名
*/ if(p.p2 && p.p7)
return 0;
return 1;
}
void Show(Propositions p)
{
printf("0x%X\n", p.val);
if(p.p4)
puts("C -- 1st");
if(p.p8)
puts("A -- 1st");
if(p.p1)
puts("B -- 2nd");
if(p.p5)
puts("D -- 2nd");
if(p.p2)
puts("A -- 3rd");
if(p.p7)
puts("D -- 3rd");
if(p.p3)
puts("E -- 4th");
if(p.p6)
puts("C -- 5th");
return;
}
xiaocai0001
2005-11-27
打赏
举报
回复
标记如下原子命题:
p1: B 第二
p2: A 第三
p3: E 第四
p4: C 第一
p5: D 第二
p6: C 第五
p7: D 第三
p8: A 第一
符号说明:
!: 逻辑否运算, ∧: 逻辑与运算, ∨: 逻辑或运算
(Ⅰ)由各个人只说对了一半可得如下约束条件:
A说对了一半: (p1∧!p2)∨(!p1∧p2)
简记为: p1(!p2)∨(!p1)p2 ......① (下同)
B说对了一半: p1(!p3)∨(!p1)p3 ......②
C说对了一半: p4(!p5)∨(!p4)p5 ......③
D说对了一半: p6(!p7)∨(!p6)p7 ......④
E说对了一半: p3(!p8)∨(!p3)p8 ......⑤
(Ⅱ)同一名次不能有两个人, 得如下约束条件:
p4与p8不能同时成立, 得: !p4∨!p8 ......⑥
p1与p5不能同时成立, 得: !p1∨!p5 ......⑦
p2与p7不能同时成立, 得: !p2∨!p7 ......⑧
(Ⅲ)同一个人不能有两个名次, 得如下约束条件:
p2与p8不能同时成立, 得: !p2∨!p8 ......⑨
p4与p6不能同时成立, 得: !p4∨!p6 ......⑩
p5与p7不能同时成立, 得: !p5∨!p7 ......⑾
最后的答案需要满足如下的命题:
①∧②∧③∧④∧⑤∧⑥∧⑦∧⑧∧⑨∧⑩∧⑾
将上式化为析取范式, 即可得到命题的约束条件的最简形式.
由①∧②得(根据与运算的分配律):
p1(!p2)(!p3)∨(!p1)p2p3 ......⑿
同理对其他表达式进行合并运算
......
最后得到如下结果:
(!p1)(p2)(p3)(!p4)(p5)(p6)(!p7)(!p8)
即: 2,3,5,6原子命题为真, 1,4,7,8为假
p2: A 第三
p3: E 第四
p5: D 第二
p6: C 第五
为真
可以推出比赛结果的名次排列如下:
①B ②D ③A ④E ⑤C
Mr_Yang
2005-11-27
打赏
举报
回复
学习。
deuso
2005-11-27
打赏
举报
回复
上面江大沙锅的程序部分应该加一个括号改成
A1=((B==2||A==3)&&!(B==2&&A==3));
B1=((B==2||E==4)&&!(B==2&&E==4));
C1=((C==1||D==2)&&!(C==1&&D==2));
D1=((C==5||D==3)&&!(C==5&&D==3));
E1=((E==4||A==1)&&!(E==4&&A==1));
就对了
liusdream
2005-11-26
打赏
举报
回复
刚学C,试着写了一个,不对的地方请高手们指点一下:
#include <stdio.h>
void main ( void )
{
int iFori=3125,iA=0,iB=0,iC=0,iD=0,iE=0;
printf("\tA\tB\tC\tD\tE\n");
for (iFori=1;iFori<3126;iFori++)
{
iA=iFori%5;
iB=(iFori/5)%5;
iC=((iFori/5)/5)%5;
iD=(((iFori/5)/5)/5)%5;
iE=((((iFori/5)/5)/5)/5)%5;
if ((1==((2==iB)+(3==iA))) &&
(1==((2==iB)+(4==iC))) &&
(1==((1==iC)+(2==iD))) &&
(1==((0==iC)+(3==iD))) &&
(1==((4==iE)+(1==iD))) &&
(iA!=iB) && (iA!=iC) && (iA!=iD) && (iA!=iE) &&
(iB!=iC) && (iB!=iD) && (iB!=iE) &&
(iC!=iD) && (iC!=iE) &&
(iD!=iE))
{
printf("\t%d\t%d\t%d\t%d\t%d\n",
iA+5>5?iA:iA+5,iB+5>5?iB:iB+5,iC+5>5?iC:iC+5,iD+5>5?iD:iD+5,iE+5>5?iE:iE+5);
}//end if
}//end for
return;
}
加载更多回复(4)
算法
基础入门:90分钟
搞定
动态规划
为什么人人都要学
算法
? 程序员对
算法
通常怀有复杂情感,
算法
很重要是共识,但是否每个程序员都必须学
算法
是主要的分歧点。很多人觉得像人工智能、数据搜索与挖掘这样高薪的工作才用得上
算法
,觉得
算法
深不可测。...
资料分享:送你一本《数据结构与
算法
JavaScript描述》电子书!
数据结构 是掌握计算机编程必须具备的技能。通常情况下,我想掌握一门编程语言所用的方法就是利用这门语言把数据结构中线性表、栈、队列、字符串、动态数字、整数集合、树、图、搜索、排序等涉及的
算法
全部写一遍。写完之后,基本上就把这门语言
搞定
了。 今天给大家分享的就是我从网上找到的利用 JavaScript 语言来实现各种数据结构的
算法
,希望这本电子书对学习 JavaScript 想从事前端工作的读者有益。...
给我十分钟,
搞定
二叉树的遍历!
二叉树定义 二叉树是一种树形结构(感觉是废话),它有如下特点: 每个节点最多只有两棵子树,即不存在度大于2的节点(度就是树结点的直接子结点数) 二叉树的子树有左右之分,其次序不能任意颠倒 二叉树有什么用? 那用处可就大了,就拿我们前端熟悉的来说,抽象语法树(BST)听过吧,babel在编译的时候构建的BST就是一棵二叉树,vue里面的diff,虚拟dom听过吧,这些都离不开二叉树。二叉树的威力远不止如此,利用二叉树前序遍历显示目录结构,利用二叉树中序遍历实现表达式树,在编译器里十分有用,利用二叉树后续遍
算法
工程师的深度经验总结!
点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达来源丨https://zhuanlan.zhihu.com/p/453800419导读作者对自己的成长和思路进行了总结,总共分了三个角度:模型策略、工作思路以及个人成长来总结自己在
算法
岗位三年的心得体会。目录:模型策略篇。讨论
算法
方案的思考。工作思路篇。工作思维,结果导向。个人成长篇。如何让自己更好地解决更多问题。模型策略篇从...
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章