第五题答案:
其实2进制确实可以作为这道题的解题思路,但是因为很多人对2进制不了解,所以我这里通俗化一点
为什么我提示电灯开关的问题,就是因为抓住电灯拥有两个状态归类(1)亮,不亮(2)热,不热,所以我们可以将其(1)(2)互相交错分为4种电灯,(1)又亮又热的灯(2)不亮但热的灯(3)亮但不热的灯(4)不亮不热的灯
回到我们的问题,先抛弃庞大的1000,我们假设从简单的数字思考
(面对一个复杂问题,请记住一个思路:复杂的事情简单化,简单的事情流程化,流程的事情革命化)
(1) 2瓶酒找一瓶毒酒
只需要一个奴隶,如果他喝其中一瓶,20个小时后没死,那么另外一瓶就是毒酒,反之他喝的就是毒酒
(2) 如果1个人能找出两瓶酒中的毒酒,那么两个人能找出几瓶酒中的毒酒呢,我们再看看上面电灯的问题,于是自然就想到了那一定是2X2=4瓶,A喝第二瓶酒和第四瓶酒,B喝第三瓶酒和第四瓶酒,那么A不死B不死=第一瓶有毒,A死B不死=第二瓶有毒,A不死B死=第三瓶酒有毒,A死B死=第四瓶酒有毒
(3)我们继续延伸下去来到三个人,2X2X2=8,前面我们讲到一个奴隶只有喝与不喝一个状态,死与不死另外一个状态,那么8个人我借用一下原解答上的一个图来表示

左边ABC表示三个犯人,上面1-8分别表示8瓶酒,X表示喝了该酒,空白表示没喝
可以看到3个奴隶喝酒与否刚好可以组成8种不同的可能性,而从奴隶的死活也能找到中毒的是哪一瓶酒
(4)所以我们从奴隶喝与不喝这种可能出发,4个人就是2X2X2X2=16种可能,N个人就是2的N次方种可能,如果你想通了这一点,那么此题就好解决了,因为懂点计算机的人都知道2的10次方的1024,而答案肯定是最接近1000但大于1000的数
(5)这其实就是2进制思路,喝为1,不喝为0,那么每一瓶就都可被被10个1或者0来表示了,只要对应死的人1全部标注出来,其余没死的为0,组成的数字对应酒就可以找到答案了
其实2进制也是从复杂问题简单化,简单问题流程化,而最终从流程性的问题中革命化而最终发明出来的,所以不管你以后遇到再复杂的问题,只要从这个思路出发,结合你对简单问题的思考都是可以解决出来的
解释了这么多,不求让每一个人懂得其中的原委,只求让更多的人懂得思考的乐趣