一道逻辑题,但是用数学办法却更好理解,大家来看看

  • 木月
    一个村子里住了许多户人家,每家都养了一条狗,有一天他们接到通知说村子里有狗生病了,并要求所有主人在发现自己家狗生病的当天就要把狗枪杀掉。他们能做的只是通过窗户观察别人家的狗是否生病从而判断自己的狗是否得病。注意:不能和其他人交流,也不能看自己的狗,可是所有人都足够聪明,能做出正确的判断并第一时间杀狗,由于已经被隔离,狗瘟不会传染。
    第一天、第二天都没有枪声,第三天传出零散的枪声,问有多少条狗得病


    正确答案是三条,这是一道逻辑题,似乎是要用假设的办法,但是我觉得这么更好理解,用数学归纳法:
    假设有N条狗得病,则在第N天会被杀死。
    1、如果只有一条狗得病,那么它的主人会在第一天晚上杀狗。
    2、当有n+1条狗得病时,必然在第n+1被杀死,因为第n天时,病狗的主人A都会看到外边有n条病狗,根据假设,这一天A认为:假设自己的狗要是没病,则这天那n条狗的主人应该发现自己的狗得病;但当天没有枪声,则必定是其他的N个人也和自己一样想,所以可知自己狗也有病。所以在第 n+1天病狗的主人都会知道自己的狗有病,故有n+1声枪响。
    即证。
  • O
    ORICONF
    posted by wap

    Mark
  • 见风
    老题了,不过记得当时的一般解法有漏洞。
  • 木月
    是啊,能给说说么?
  • 小飞侠彼德胖
    还有海盗分金也很经典。谁给一并讲讲。
  • Z
    ZATO_1one
    是我语文太渣么。。为何我觉得看不懂。。。
  • 粉色吃人怪
    假设有一条病狗的情况,我看完所有人就知道,我的是病狗,所以第一天就应该有枪响才对

    假设是两条的话,假如我有病狗的话,我看到A有病狗不杀,第二天A的狗还在,那么我就知道A之外还有一条病狗存在,让A不去杀狗,那么第二天我就能知道自己的是病狗了,同理A也应该知道,所以第二天就有枪响才对。
    假如我没病狗的话,看到A和B第二天杀狗我就知道,我没病狗,如果我有的话,他们是不会杀自己的。

    假设三条的话,第一天我看到A与B都有病狗,第二天两条病狗都没死,第三天根据两条病狗的情况,证明还有一条病狗的存在,那么就是我的了。所以直到第三天大家都猜到了,枪声才出来。

    同理,根据这样的推理,第几天杀狗,其实就是有几条狗存在

    我是这么想的

    [本帖最后由 粉色吃人怪 于 2011-3-24 14:17 编辑]