coding everyday

编程面试题 https://interview.codeplex.com

C++博客 首页 新随笔 联系 聚合 管理
  12 Posts :: 2 Stories :: 7 Comments :: 0 Trackbacks
#面试思考题#可怜的小老鼠:有11瓶酒,只有一瓶有毒。喝酒之后,三天会死,只有三天时间。请问至少需要多少只老鼠,可以找出9瓶没有毒的酒。关注微信公众账号“待字闺中”,了解和讨论参考分析。

http://www.weibo.com/1915548291/A2QpWmhUH

分析:
直觉上应该是4只鼠可以找出那瓶有毒的。如果要找出9瓶没有毒的,肯定不大于4嘛。这个大家能想明白吗?有人想看分析就回复哦。:P

最多需要3只就够了,9宫格。ABC 和 ABC,每只鼠负责一横一竖,这样每一瓶都至少有2只喝过,除了对角线上,如果是对角线上只会死一只,其余都是2只,那2只就能定位到哪一瓶了。额。。不知道还有没有更少的,只需要2只或者1只就搞定的?

  A B C
A 1 2 3
B 4 5 6
C 7 8 9

A需要喝的是1,2,3,4,7
B需要喝的是2,4,5,6,8
C需要喝的是3,6,7,8,9

现在可以通过死掉老鼠的情况推断出哪一瓶有问题了,对吧。

更新:
多谢@geagle9。的提醒,确实存在问题,2和4都是A和B死。呜呜!!之前的算法错误喽。。

看起来我的9宫格是走不通了,不知道老罗是不是还走的下去。

其实我一直有个不明白的是,一共11个瓶子,为啥只要找出9个没有毒的就可以了。答案是要2个一组,分6组,这样的话,用3个老鼠能定位到每一组,这个时候肯定是有一组有问题的,但不管是哪一组,至少能有9瓶是好的。哎呀妈呀。终于弄出来了。
1,2 -> A
3,4 -> B
5,6 -> C
7,8 -> A+B
9,10 -> A+C
11 ->B+C
posted on 2013-08-02 17:26 everyday 阅读(269) 评论(0)  编辑 收藏 引用 所属分类: 面试

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理