ggzhiwang
发表于 2003-12-9 01:02:00
是3条
推理很简单
如果是四条的话,设定病狗主人是ABCD,他们均发现了三条狗。到了第二天,A(泛指)发现BCD并没有把狗杀掉,他会自己分析:bcd都发现了两个,而B(泛指)认为CD都只发现了一个病狗,那么到第三天b应该会发现自己的狗是病狗,但到了第三天并没有三声枪响,于是a认为应该还有病狗,而根据自己的调查结果,只有自己的狗符合条件——四声枪响发生在第四天,以此类推,如果是五条病狗则会在第五天有五声枪响,几条病狗就会在第几天有几声枪响。
这问题出的不好
既然疾病不会传染,又何必大动干戈的又是查又是杀的,再说了子弹一个只好几大块呢,最不济狗也是我们人类的“知心朋友”,让它安享剩下不多的岁月有多好,对了,又病就应该被枪杀掉吗,真他妈的,合了那个“奥美”给IBM的评语了:没人情味(你以为你是什么)
dylldy
发表于 2003-12-14 20:10:00
答案:3只 解答过程如下:
设时间为t(可以按二元法给t设值,无人开枪,t=false,有人开枪,t=truth。当t为false时,t会一直增长,即第1天、第2天、第3天….这样保持下去,直到t=truth有人开枪时,t停止增长)。同时,为叙述方便,设病狗总数为s(s≥1),则病狗主人A(通指)所看到的病狗数n=s-1。
在本题中,t是唯一的客观变量,有两种情况:
1:若第一天有人开枪,即t=truth=1,说明有人看到了0条病狗并确定自己是A(唯一的A);此时,n=0,s=1。
2:若第一天没人开枪,即t=truth发生在>1的某一天(2,3,4,5….)。逻辑过程如下:
如果第一天无人开枪,则说明n>0,s>1,因此必然会出现t=s的情况(因为s>1,t=2,3,4….直到t=truth即有人开枪时t停止增长)。当t=s时,那么n=s-1<t,此时,所有看到n的人都知道自己少看到了一条病狗,换言之,自己就是病狗的主人,因而会在t=s那天开枪。
t=s之前,没有人会开枪!而t=s那天,所有的病狗主人都会开枪!
为什么t=s之前无人开枪?——从t=2开始说起(如果t=1则说明第一天就开枪了,不需要解释了):
随便抽取一个样本主人甲,甲如何确定自己身份呢?甲如此推理:
1:群体分为两类,一类看到了n(病狗主人们A),一类看到了s(好狗主人们),而n=s-1<s;
2:第一天无人开枪,说明n>0,s>1,那么t在停止增长前(即有人在第t日开枪前)会出现t>n的情况;
3:对于所有的A而言,如果自己看到的病狗数量还没有小于t时,都不会知道自己看到的是n,只有当t大于自己看到的病狗数量时,他们才会推论自己属于看到n的群体A;
4:在t>n那天,所有的A会动手开枪,此时t=truth,停止了增长,而此时刚好是t=s的时刻。
[此贴子已经被作者于2003-12-14 20:16:50编辑过]
风心自由
发表于 2003-12-14 22:59:00
晕呀。脑袋不够用了。还好没想去IBM呵呵
dylldy
发表于 2003-12-15 13:09:00
:)
其实如果简化推理过程,可以这样想:
除了有人没看到病狗的情况外(说明只有那个人的狗是病狗,则第一天就开枪),那么所有的人都会至少看到一只病狗,而每一个人在开始时都不知道自己的狗是否病狗,怎么办呢,只能等,希望别人能开枪。而这样等下去的结果是到了有人(病狗主人们)看到的数量小于天数时,还是无人开枪,于是这些看到小数量病狗的人们知道了,别人还有耐心等是因为别人看到的病狗数量大于自己看到的,而自己则肯定是病狗的主人了,于是开枪。
这里面的关键是为什么每个人都会等——因为在无法确认自己身份前(是否为病狗主人),每个人都不会行动,直到病狗主人们看到的数量已经小于天数了,而其他人都还没有行动,那么可以推论自己看到的一定是小数量的n(病狗数-1),而不是s(病狗总数),因此可以推证自己的狗是病狗喽!
这种思维就是根据别人的行动来推论自己的情况,是一个严格的数学逻辑过程,当然条件是不能存在欺诈——商业中可就不能这样去想了,否则会死的很惨,可能会白白杀掉了自己家的好狗:)
unartist
发表于 2003-12-15 22:53:00
0只
yegen
发表于 2003-12-18 19:19:00
我不去IBM了
seven930
发表于 2003-12-20 23:45:00
3