我解 zhyindividual (空幻闲人) 的面世题

yangbc 2004-08-05 02:14:47
应为不能回帖,只好发新贴了:
-----------------------------------------------------
问题:村里有50个人,每个人有一条狗,即有50只狗,这些狗中有病狗(不是传染病),每个人可以看除了自己的狗以外的所有狗,即49只狗。有病的狗一看就知道了,当有人推断出自己的狗是病狗的话则开枪打死自己的狗(当天知道),每人看后不准相互交流!第一天,没有枪响,第二天也没枪响,第三天,听见一阵枪响,请问村里有几只病狗,如何推算出来的?用程序实现解题~~
----------------------------------------------------

解答:一个人:
条件:如果看到病狗,则不能肯定自己的狗是否的病。(这个条件很重要)

分析:[个人注解:其实所有人第一天看完后,记下看到的数据后就可以回家等枪声做自己的判断了,不必再出来看]
他如果在外边看不到病狗,那么他当天可以确信自己的狗是病狗并杀死他,但第一天没有杀狗发生,可以证明每个人都看到了病狗,这么说病狗不是一只,>1,即=2只以上。“至少有2只病狗”的事实这个时候会被所有的人推断出来,他们各自会结合今天看到的病狗数来推断自己的狗是不是病狗,如果病狗真的只有两只,那么第二天就会有看到一只病狗的人意识到昨天没人杀狗而病狗2只自己却看到一只,那么毫无疑问自己的狗是病狗,杀之。
然而第二天仍然没有杀狗发生,可以说明一个问题:每个人都看到了至少2只病狗。这样,才可以推翻“看到一只病狗、肯定有2只病狗,然后杀自己病狗”的人必然发生的行为这个结论。
现在可以知道病狗数>2,即=3只,“病狗数至少3只”这个结论会刷新所有人的脑子。
到了第三天,其实也就是检验第二天的情况,这个时候,看到2只病狗的人肯定会毫不犹豫举枪杀死自己的狗,以此来证明“病狗数=3”这个真理。如果还没有人来杀狗,只能说明每个人都看到了至少3条病狗。恰好此时有人开了枪,可以说明有人看到了2只病狗,那么加上他杀的那只,正好是3只。太幸运了,只有3只,而且全部在第二天刚结束的时候同时被杀。:(
...全文
418 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
世界因你而小 2004-08-06
  • 打赏
  • 举报
回复
如果开始就知道有多少条病狗,那么第一天就会有枪响了!
huhanshan013 2004-08-06
  • 打赏
  • 举报
回复
感觉应该是: 病狗数目其实村民已经知道。
加上这个前提,我想3只是对的,
要不我们可以想象,为什么有病狗的村民看见外面两只病狗,又在没有听见枪响的情况下,可以判断自己的狗是病狗了?只有一个,因为她知道村里有几条病狗。
对不对?
active99 2004-08-06
  • 打赏
  • 举报
回复
题目有明显的问题,居然还有这么多人在推!!!!!
可悲啊~~~~~~~~~~~
chyb1000 2004-08-06
  • 打赏
  • 举报
回复
有点错误,应该是:初始化函数:B(int i,int j) //第i个人看到第j只狗,病狗返回1,否则为0;
K //杀狗,返回值1;
参数: T //时间,其值为3
a[50]//50人;b[50]//50狗,其中b为带50个元素的vector;
for(n=0;n<3;n++){
if(i!=j){
for(i=0;i<50;i++){
for(j=0;j<b.size();j++){
B(i,j,n);

if(B(i,j,n)=1){
print j;并break里面的循环;
remove(j);//java中的vector可以做到
}else{
if(j=49){
k;
print i;
}
}
}
}
}
}
最终结果是(50 - (a.size()-(k返回的次数)))
xitianjile 2004-08-06
  • 打赏
  • 举报
回复
第一天里

病狗的数目基本是已经确定范围了

如果有病狗的人看到n只病狗狗。
他不知道自己的狗是有病。他会把范围是n-n+1只
无病狗的人看到n+1只病狗。
病狗的范围是n+1-n+2;

如果是1只病狗的时候,
第一天应该有人看到的49只狗全是好狗。情况是看到1只病狗的49人。他们确定病狗的范围就是1-2只,看到0只病狗的人他已经确定一只病狗了,他就可以杀狗了。。但是第一天没有枪声。那么其他人也能确定只有一只病狗,自己的狗是没事。。

第1天没人杀狗导致第2的情况的发生,因此第一天里每人看到的狗是2只以上。。
如果是2只,那么有48个人是看到2只病狗,他们心目中的范围就是2-3只;2个人是看到1条病狗的,他们心目中的范围就是1-2只。首先肯定的是不是一只了。第一天的情况已经推翻了。。所以答案是2只。看到一只的人就可以杀狗了。

以此类推。
3天的时候已经根据第2天的情况推论出不是2只病狗了。。。
明了了吧??
flyingdog 2004-08-06
  • 打赏
  • 举报
回复
基本上看懂了。程序不错。
chyb1000 2004-08-05
  • 打赏
  • 举报
回复
注解:java中的vector类似堆栈,不过次序相反
chyb1000 2004-08-05
  • 打赏
  • 举报
回复
最综结果应该就是50 - [a.length - (k返回的次数)],这就是三天之内查出的病狗;哈哈
前提,50条狗可以辨认出来不同
chyb1000 2004-08-05
  • 打赏
  • 举报
回复
初始化函数:B(int i,int j) //第i个人看到第j只狗,病狗返回1,否则为0;
K //杀狗,返回值1;
参数: T //时间,其值为3
a[50]//50人;b[50]//50狗,其中b为带50个元素的vector;
for(n=0;n<3;n++){
if(i!=j){
for(i=0;i<50;i++){
for(j=0;j<b.size();j++){
B(i,j,n);

if(B(i,j,n)=1){
print j;并break里面的循环;
remove(i);//java中的vector可以做到
}else{
if(j=49){
k;
print i;
}
}
}
}
}
}
//不知道,狗能不能认出来
超级大笨狼 2004-08-05
  • 打赏
  • 举报
回复
太复杂了,迷糊了
blues-star 2004-08-05
  • 打赏
  • 举报
回复
随便一搜索多的不是,就不用另外再贴了吧
wwwasp 2004-08-05
  • 打赏
  • 举报
回复
感觉题目有问题,假如有10只病狗,而有病狗的人,肯定看到9只,那么就算到了第10天,有病狗的人就怎么能发现呢?又没规定一天杀一只狗...
  • 打赏
  • 举报
回复
要不我说是杀了所有的狗呢,跟天数无关的,此题有且仅有唯一解
chengbo1983 2004-08-05
  • 打赏
  • 举报
回复
好复杂!看得我头都晕了

怎么感觉有点像数学题中?
ycted 2004-08-05
  • 打赏
  • 举报
回复
下面是楼主给我发的短信:

发送者 yangbc 发送时间 2004-8-5 17:12:49 删除 回复
内容 看到10只病狗的人在前10天都不会肯定到底有多少病狗,只有在第10天还没有枪声的时候,他才会知道有11只病狗,而且这只病狗肯定是自己这只,然后在第11天一开始,他会毫不犹豫杀死自己的狗。

不好意思,我这里只能开新贴,不能回帖了:)



=====================================================
这是我的回答:
那么是不是意味着死了10只狗啊?
ycted 2004-08-05
  • 打赏
  • 举报
回复
F为你的原句.Q为我的问句
F:那么第二天就会有看到一只病狗的人意识到昨天没人杀狗而病狗2只自己却看到一只,那么毫无疑问自己的狗是病狗,杀之。
Q:
1.那个看到病狗的人不一定就只看到2只啊.他也可以看到10只啊?
2.那么上面一句这样也可以: "那么第二天就会有看到10只病狗的人意识到昨天没人杀狗而病狗>2只自己却看到10只,"

下面的就不推了,先把上面的问题解决了.
hailang3275 2004-08-05
  • 打赏
  • 举报
回复
别人说得那么清楚了
你还说什么呢?
PowerPoint 2003 计算机应用基础 PowerPoint-2003-计算机应用基础全文共44页,当前为第1页。 第5章 PowerPoint 2003 PowerPoint 2003是微软Office 2003办公软件中的一款多媒体演示文稿制作软件,它秉承PowerPoint上手容易、效果直观、结构清晰的特点,特别是在动画效果、幻灯片切换效果等方面有了更大的提高。它所提供的许多便捷、高效的工具可以帮助你在短时间内创建专业、美观、实用的演示文稿,并以简明清晰的方式表达出文稿内容。 使用PowerPoint制作多媒体课件,教师不用掌握高深的编程技术,只需将展示的教学内容添加到一张张幻灯片上,然后设置好这些内容的动画显示效果,以及幻灯片的放映控制等属性,就可以制作出包含文字、图片、声音、视频、动画等多种媒体的课件来。 PowerPoint-2003-计算机应用基础全文共44页,当前为第2页。 第5章 PowerPoint 2003 认识PowerPoint 2003 在幻灯片中添加多媒体素材 版式、模板和动画 超链接和幻灯片的放映 PowerPoint-2003-计算机应用基础全文共44页,当前为第3页。 认识PowerPoint 2003 视图模式 创建演示文稿的方法 幻灯片的添加、移动和删除 PowerPoint 2003工作界面 PowerPoint-2003-计算机应用基础全文共44页,当前为第4页。 5.1.1 PowerPoint 2003工作界面 在任务栏上选择 【开始】| 【程序】 |【Mirosoft Office】 |【Microsoft Office PowerPoint 2003】 命令启动PowerPoint 2003软件,展现出一 个全新的软件工作界 面。 PowerPoint-2003-计算机应用基础全文共44页,当前为第5页。 5.1.2 视图模式 在制作幻灯片演示 文稿时,制作者特别希 望能在一个人性化的制 作环境中工作,以便于 演示文稿的开发。 PowerPoint 2003 满足了这种要求,它提 供了各种工作视图模式, 形成了集幻灯片的编辑、 管理、播放为一体的工 作环境 。 普通视图 幻灯片浏览视图 幻灯片放映视图 幻灯片编辑工作区 备注编辑区 大纲窗格 PowerPoint-2003-计算机应用基础全文共44页,当前为第6页。 5.1.3 创建演示文稿的方法 创建空演示文稿演示文稿 根据设计模板创建演示文稿 根据内容提示向导创建演示文稿 根据现有演示文稿创建新演示文稿 PowerPoint-2003-计算机应用基础全文共44页,当前为第7页。 5.1.4 幻灯片的添加、移动和删除 添加幻灯片 移动幻灯片 删除幻灯片幻灯片 插入空幻灯片 插入来自其他演示文稿中的幻灯片。 在【幻灯片普通视图】的【幻灯片】模式下和在【幻 灯片浏览视图】下,可以通过拖动幻灯片移动它的位 置;在【幻灯片普通视图】的【大纲】模式下,可以通 过【大纲】工具箱中的【上移】按钮和【下移】按钮移 动幻灯片的位置。 在【幻灯片普通视图】下,右击【大纲窗格】中要删 除的幻灯片,在弹出的快捷菜单中选择【删除幻灯片】命 令 。 PowerPoint-2003-计算机应用基础全文共44页,当前为第8页。 在幻灯片中添加文本和艺术字 在幻灯片中添加多媒体素材 在幻灯片中添加图形图像 在幻灯片中添加声音、影片和动画 在幻灯片中添加图表和知识结构图 PowerPoint-2003-计算机应用基础全文共44页,当前为第9页。 5.2.1 在幻灯片中添加文本和艺术字 在幻灯片中添加文本 在幻灯片中添加文本一般有3种方法:使用文 本占位符输入文字、插入文本框输入文字、直接 将文字复制粘贴到幻灯片上。如果是利用自动版 式创建的幻灯片,幻灯片上通常出现带有一定格 式的文本框,其中还有一些文字,称为文本占位 符。只要按照这些文字提示,单击此文本框,即 可在其中输入文字。下面以一个课件封面的制作 为例,讲解一下使用文本占位符输入文字的方法。 本实例完成以后的效果如图。 PowerPoint-2003-计算机应用基础全文共44页,当前为第10页。 在幻灯片中添加文本 PowerPoint-2003-计算机应用基础全文共44页,当前为第11页。 在幻灯片中添加文本 (1)根据设计模板新建演示文稿。 (2)在文本占位符中输入文字。 (3)将鼠标指针移到文本占位符外,单 击,取消其激活状态。 PowerPoint-2003-计算机应用基础全文共44页,当前为第12页。 在幻灯片中添加艺术字 (1)插入艺术字。选择【插入】"【图片】" 【艺术字】命令,或者单击【绘图】工 具栏中【插入艺术字】按钮,弹出【艺 术字库】对话框,在其中选择合适的艺 术字样式,单

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧