文章目录
今天分享一个吴军在他的信息论课程中提到过的一道题,硅谷的很多公司都考过这道题,原理也很简单,只是运用了信息熵公式和两个基本的编码原则。
问题描述
有64瓶药,其中63瓶是无毒的,一瓶是有毒的。如果做实验的小白鼠喝了有毒的药,3天后会死掉,当然喝了其它的药,包括同时喝几种就没事。现在只剩下3天时间,请问最少需要多少只小白鼠才能试出哪瓶药有毒?
给你个空白让你思考几秒钟
思考……
……
……
……
……
……
……
答案
最少需要六只小白鼠。
解题步骤如下:
这是一个64选1的题目,根据信息熵公式,需要的信息量就是log264 = 6,也就是6比特。现在我们进行验证。
- 我们将这些药从0 ~ 63按照二进制编号,获得64个六位数的二进制编码,也就是00 0000 到 11 1111, 每个二进制编号的最左边是第一位,最右边是第六位。
- 然后选六只小白鼠,从左到右排开,和二进制的