游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4357|回复: 13

微软的老题,关于狗的,不知道的来看看

[复制链接]

37

主题

587

帖子

587

积分

高级会员

Rank: 4

积分
587
发表于 2004-11-23 08:37:00 | 显示全部楼层 |阅读模式
一个大院子里住了50户人家,每家都养了一条狗,有一天他们接到通知说院子里有狗生病了,并要求所有主人在发现自己家狗生病的当天就要把狗枪杀掉。然而所有主人和他们的狗都不能够离开自己的房子,主人与主人之间也不能通过任何方式进行沟通,他们能做的只是通过窗户观察别人家的狗是否生病从而判断自己的狗病否。(就是说,每个主人只能看出其他49家的狗是不是生病,单独看自己的狗是看不出来的)
第一天没有枪声,第二天还是没有枪声,第三天传出一阵枪声,问有多少条狗被枪杀 [em7]

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2004-11-23 09:58:00 | 显示全部楼层

Re:微软的老题,关于狗的,不知道的来看看

这道题少了条件,应该有关于“每一天”的条件,否则这个第一天,第二天没有枪声完全的条件几乎没有用处。或者是每天只准观察一次?

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2004-11-23 10:35:00 | 显示全部楼层

Re:微软的老题,关于狗的,不知道的来看看

如果每天只能观察一次的话。。
则如果只有一条狗,那么那条狗的主人在第一天就会把自己的狗杀了。
如果有两条狗,那么两条狗其中一个主人就会在第一天没有听到枪声的情况下,在第二天把自己的狗杀了,也就是说,在第二天会出现枪声。
如果有三条狗,那么三条狗其中的一个主人就会在前两天没有听到枪声的情况下,在第三天把自己的狗杀了。

其实挺好推测的,当某个人A看到周围的49只狗都是正常的时候,他肯定会杀自己的狗。
假设任意一个人看到的生病的狗为n个。。
那么实际的生病的狗就有n个或者n+1个(自己的狗也病了)
当n = 0的时候,只有n + 1才会 >= 1,所以病狗一定是自己的。
当n = 1的时候,在第一天里有人会杀自己的狗,或者自己的狗也病了,所以如果第一天没人杀狗的话,第二天就该杀自己的狗了。
当n = 2的时候,按照前面的理论,假设所有的病狗就是为2,那么两天的时间就应该有人杀狗了,如果没有的话,那么实际的病狗应该为3,所以自己的狗也是病狗。

这样推下来,当某个人观察到的病狗为n的时候。
就需要消耗n天或者n + 1天才能清除所有的病狗。


回到题目,假设第三天传出一阵枪声的话,那么假如观察者的狗不是病的,那么他观察到的就应该是三条病狗,因为在三天之后,确实有狗被杀死了。
如果观察者的狗是病的话,那么他观察到的就是两条病狗,因为在他等了两天之后,还没有发现病狗,那么自己的狗必然是病狗。同样也是三天发现。

其实博弈论范畴的题目最大的假设就是要假设每个人都一样聪明。

13

主题

153

帖子

153

积分

注册会员

Rank: 2

积分
153
QQ
发表于 2004-11-23 13:07:00 | 显示全部楼层

Re:微软的老题,关于狗的,不知道的来看看

第几天传出枪声就有几条狗被杀。
nowpaper 该用户已被删除
发表于 2004-11-23 14:44:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

9

主题

290

帖子

290

积分

中级会员

Rank: 3Rank: 3

积分
290
发表于 2004-11-23 15:43:00 | 显示全部楼层

Re:微软的老题,关于狗的,不知道的来看看

嗯……什么时候我也能出个问题让人研究去,哈哈哈哈

248

主题

2674

帖子

2702

积分

金牌会员

Rank: 6Rank: 6

积分
2702
QQ
发表于 2004-11-23 20:09:00 | 显示全部楼层

Re:微软的老题,关于狗的,不知道的来看看

都死掉了。

因为3天了,不能出去很郁闷。杀了狗就能出去了,所以杀了。

109

主题

1451

帖子

1475

积分

金牌会员

女神

Rank: 6Rank: 6

积分
1475
发表于 2004-11-23 22:03:00 | 显示全部楼层

Re:微软的老题,关于狗的,不知道的来看看

应该是死了49只,因为第49只狗死了以后,第50只狗就没了参考,所以死不了。对不对哦?

109

主题

1451

帖子

1475

积分

金牌会员

女神

Rank: 6Rank: 6

积分
1475
发表于 2004-11-23 22:03:00 | 显示全部楼层

Re:微软的老题,关于狗的,不知道的来看看

没有参考就看不出自己的狗有没有病。

50

主题

992

帖子

1012

积分

金牌会员

Rank: 6Rank: 6

积分
1012
发表于 2004-11-24 00:54:00 | 显示全部楼层

Re:微软的老题,关于狗的,不知道的来看看

应该是3只吧,因为第一天没有枪声说明病DOG不只一只,第二天没枪声说明不只两只,第三天有枪声说明正好有三只病DOG。也就是说第一天枪响应有一只是病的,第二天响说明有两只,第三天响有三只。。。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-12-23 10:30

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表