首页 > 代码库 > 信息熵和称小球问题

信息熵和称小球问题

先简单说一下关于信息熵的东西:

信息熵是信息多少的量度,一个事件所携带的信息量跟它出现的概率反相关,直观上来说,一个事件出现的越频繁则每次该事件出现时携带的信息就少,反之如果一个事件非常少见,则该事件出现的时候携带的信息量就非常高。

具体公式是:

$$I= -log(p)$$ 也就是

$$I=log(p/1)$$

其中p为此事件的概率

其期望为:

$$E(I) = -\sum plog(p)$$

当log是以2为底的时候 I的单位为 bit,当log以e为底时,I的单位为nat,在信息论中他们对应有具体的应用。

 

我们可以用信息熵的理论来解决经常遇到的脑筋急转弯-称小球问题:

给定N个小球,和一台天平,如果知道其中有一个小球偏重,但是不知道是具体哪一个,现在想用天平去把这个小球找出来,最少需要用多少次天平?

(1)每一次使用天平,可以得到三种可能,左偏,右偏,平衡,而且这三种可能是概率相等的,所以每一次使用天平的结果都携带log3的信息量。

(2)要从N个小球中找到那个不一样,可以有2N种概率相同的可能,每个小球都可能偏重,这个事件所携带的信息量是 logN。

所以可以得到 最少可以使用 logN/log3次天平 就可以凑够信息量,指出哪一个是重的。

 

给定N个小球,和一台天平,如果知道其中有一个小球和别的不一样,但是不知道是具体哪一个,现在想用天平去把这个小球找出来,最少需要用多少次天平?

(1)每一次使用天平,可以得到三种可能,左偏,右偏,平衡,而且这三种可能是概率相等的,所以每一次使用天平的结果都携带log3的信息量。

(2)要从N个小球中找到那个不一样,可以有2N种概率相同的可能,每个小球都可能偏轻或者偏重,这个事件所携带的信息量是 log2N。

所以可以得到 最少可以使用 log2N/log3次天平 就可以凑够信息量,指出哪一个是不一样的。