![数据压缩入门](https://wfqqreader-1252317822.image.myqcloud.com/cover/817/31594817/b_31594817.jpg)
上QQ阅读APP看书,第一时间看更新
3.2 熵有什么用处呢
因为的熵
,所以我们可以大致认为平均每个值用2个二进制位(通过向上取整运算获得)就可以对
进行编码。
可以像下面这样赋给每个符号2个二进制位的编码值:
![](https://epubservercos.yuewen.com/4B5BC6/17103751004613106/epubprivate/OEBPS/Images/41.jpg?sign=1739297307-Uy3hJAsorTgGIwNRn3ETdlqveIPucVPd-0-a2ea5ef415930c88cdf010fca5b9e2a1)
这样一来,用二进制编码表示的就会是下面这样:
![](https://epubservercos.yuewen.com/4B5BC6/17103751004613106/epubprivate/OEBPS/Images/43.jpg?sign=1739297307-3rtDuJgBMyWTlFnjRdWfIMVxpj8PrOOv-0-8a2a7d7296fe635747468aadb697e5f2)
这样编码之后,得到的大小就是20个二进制位(在大多数教科书中表示为
)。
下面是很有趣的部分:为了得出的最终大小,实际上不需要进行编码这一步,只需要将熵
的值向上取整
再乘以
的长度(即
)就能得出结果:
个二进制位
根据香农的熵的定义,这就是表示这一数据集所需要的最小二进制位数。
因此,总结起来就是,为了使表示某个数据集所需的二进制位数最少,数据集中的每个符号平均所需的最小二进制位数就是熵。