算法逻辑思维训练

1.谁是有毒的

2018-08-16  本文已影响87人  似奔跑的野马

有15个瓶子,其中最多有一瓶有毒,现在有四只老鼠,喝了有毒的水之后,第二天就会死。如何在第二天就可以判断出哪个瓶子有毒?

分析

首先明确,第二天判断出有毒的水,常规的让4个老鼠一瓶一瓶的试,到第2天,只能实验出4瓶。

现在,我将引出终究分析问题的方法:
先假定这个问题有解,必然需要检查出每一瓶水是否有毒?(注意:必然有一种方式至少不小于15种,否则,无解
老鼠喝完水可能会死,那么死1只、死2只、死3只、或者死4只的所有组合是15种。

如何算出15种呢?假定老鼠编号 a b c d.

死1只,共四只老鼠,那么就是4种。
a 、b、c、d
死2只,四只老鼠选2只,那么是6种。
ab、ac、ad、bc、bd、cd
死3只,四只老鼠选3只,那么是4种。
abc、abd、acd、bcd
死4只,四只老鼠选4只,那么只有1种。
abcd
总共就是6 + 4 + 1 = 15.
以下就是老鼠如何喝水的组合。

如何组合老鼠和水的组合
NOTE:1-15是瓶子的编号
如上图可知,
1.如果第2天,没有老鼠死去,那么没有水有毒。
2.如果死了1只,那么1、2、3、4水有毒,如图很容易看出,如果a死了,那么1有毒。同理退出其他水。
3.如果死了2只,有6种组合,如是ab老鼠死去,那么是5号,有毒。同理,可推出其他方式。
4.如果死了3只,有4种组合,如abc死去,那么11号水有毒。同理可推。
5.如果死了4只,直接推出15有毒。

扩展:

算老鼠的组合,可以通过排列组合很容易算出。


上一篇下一篇

猜你喜欢

热点阅读