轉自知乎 https://www.zhihu.com/question/22178202/answer/223017546
本科學的時候是院長教的,當時他說這個東西很有用,也仔細聽了沒懂什么意思,現在回過頭來看,還真有用。
信息熵的定義與上述這個熱力學的熵,雖然不是一個東西,但是有一定的聯系。熵在信息論中代表隨機變量不確定度的度量。一個離散型隨機變量 
 的熵 
 定義為:

這個定義的特點是,有明確定義的科學名詞且與內容無關,而且不隨信息的具體表達式的變化而變化。是獨立於形式,反映了信息表達式中統計方面的性質。是統計學上的抽象概念。
所以這個定義如題主提到的可能有點抽象和晦澀,不易理解。那么下面讓我們從直覺出發,以生活中的一些例子來闡述信息熵是什么,以及有什么用處。
直覺上,信息量等於傳輸該信息所用的代價,這個也是通信中考慮最多的問題。比如說:賭馬比賽里,有4匹馬 
 ,獲勝概率分別為 
 。
接下來,讓我們將哪一匹馬獲勝視為一個隨機變量 
 。假定我們需要用盡可能少的二元問題來確定隨機變量 
 的取值。
例如:問題1:A獲勝了嗎?問題2:B獲勝了嗎?問題3:C獲勝了嗎?最后我們可以通過最多3個二元問題,來確定 
 的取值,即哪一匹馬贏了比賽。
如果 
 ,那么需要問1次(問題1:是不是A?),概率為 
 ;
如果 
 ,那么需要問2次(問題1:是不是A?問題2:是不是B?),概率為 
 ;
如果 
 ,那么需要問3次(問題1,問題2,問題3),概率為 
 ;
如果 
 ,那么同樣需要問3次(問題1,問題2,問題3),概率為 
 ;
那么很容易計算,在這種問法下,為確定 
 取值的二元問題數量為:

那么我們回到信息熵的定義,會發現通過之前的信息熵公式,神奇地得到了:

在二進制計算機中,一個比特為0或1,其實就代表了一個二元問題的回答。也就是說,在計算機中,我們給哪一匹馬奪冠這個事件進行編碼,所需要的平均碼長為1.75個比特。
平均碼長的定義為: 
很顯然,為了盡可能減少碼長,我們要給發生概率 
 較大的事件,分配較短的碼長 
 。這個問題深入討論,可以得出霍夫曼編碼的概念。
那么 
 四個實踐,可以分別由 
 表示,那么很顯然,我們要把最短的碼 
 分配給發生概率最高的事件 
 ,以此類推。而且得到的平均碼長為1.75比特。如果我們硬要反其道而行之,給事件 
 分配最長的碼 
 ,那么平均碼長就會變成2.625比特。
