我有一个问题,我认为它涉及信息理论领域的“条件熵” . 我试图绕过它,但可以使用一些帮助 . 考虑一个我们有四个房子的例子 . 在第一个房子里有八个人,四个人住在第二个房子里,第三个房子里有两个人,第四个房子里有两个人 . 所以,四个房子和十六个人 . 如果我只是随意选择这些人中的一个,那么该选择是从16个人中选择的,产生用于该选择的4比特的信息熵 .
但现在考虑两步选择,首先我随机选择一个房子,然后我选择所选房屋中的一个人 . 因此,从可用的四个房屋中挑选一个房屋的第一步,产生两位信息熵 . 但是现在,在我选择第一所房子的25%的时间里,第二步在第一宫的八个人中选择一个人时又增加了三个位 . 在另外25%的情况下,我只需要另外两位来从居住在第二宫的四个人中选择一个人 . 最后,在完全一半的情况下,我只需要一个位来从生活在第三或第四宫的一对中挑选一个人 .
不知何故,在我看来,两步法的比特计数的加权平均值应该产生与单步法所需的相同的四比特总和 . 但是我无法将这些数字加起来,所以显然我的数学比我考虑的更多 . 我期待你应该简单地将这样的概率加起来:
(picking a house) + (picking a person in that house) ==
log(4) + [(1/4)*log(8) + (1/4)*log(4) + (1/4)*log(2) + (1/4)*log(2)]
但是这会产生3.75位的结果,而不是我期望的4位 . 这是我用来评估这个的一些python .
from math import log
def log2(x):
return log(x,2)
x = log2(4) + ((1.0/4)*log2(8) + (1.0/4)*log2(4) + (1.0/4)*log2(2) + (1.0/4)*log2(2))
print x
所以,我的数字中缺少一些东西 . 谁能指出我正确的方向?