杀狗问题(帽子问题)

说IBM 、微软都曾用过该题做面试题,觉得经典,就收藏之。

原题如下:某村50户、每户养一犬,其必有瘟者,令每朝观犬,发现瘟者,立毙之,非犬主不可弑之。然主唯己犬不辨,且互默。首日,平;翌日,平;三日,枪声四起。问犬死几何?
  意思是某村50户,每户养一只狗,现在知道其中有狗生病了,要将病狗杀掉。只有主人才能杀自己的狗,但主人不能看自己的狗,且各主人之间不能互想交流。前两天平静,第三天枪声四起,问杀死了多少只狗?

===============================
先给出引理:如果存在 n 只病犬,必在第 n 天被杀
下面用数学归纳法证明:

① 令 n = 1(存在 1 条病狗)
     对于病犬主人,第一天,能看到49只正常狗
     因“必有瘟者”,断定自己的狗为瘟者,杀之
     所以,当存在 1 条病狗时结论成立

② 假设病狗数为 K 时,必在第 K 天被杀

③ 病狗数为 k+1 时
     第 K+1 天,因前 K 天未杀狗,根据 ② 知病狗数 > k
     而此时每个主人已看到 50-(K+1) 条好狗, 且主人能看到 K 条病狗(自己的一条看不到),所以病狗数 <= K+1
     由此得知病狗数为 K+1
     因有看到的只有 K 条,故断定自己的狗为病狗,可杀之
     所以病狗会在第 K+1 天被杀

由 ①、②、③ 可知“如果存在 n 只病犬,必在第 n 天被杀”结论成立。

因该结论为可逆命题,故得出:如果在第n天杀狗,必存在n只病狗。
所以原题中第3天杀狗,定存在3只病狗,故杀死3只狗。解毕。

 

另注帽子问题:一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少有一顶。
每个人都能看到其它人帽子的颜色,却看不到自己的。
主持人先让大家看看别人头上戴的是什么帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自己一个耳光。
第一次关灯,没有声音。
于是再开灯,大家再看一遍,关灯时仍然鸦雀无声。
一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。
-----------------------问有多少人戴着黑帽子?

解法类似上面所答。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值