import math
Sump = [0] # 累加概率
codeLen = [] # 香农码长
fcodeLen = [] # 费诺码长
shonCode = [] # 香农码
FanoCode = [] # 费诺码
def initList(handleStr): # 初始化列表
for i in range(0, len(handleStr), 2):
FanoCode.append(handleStr[i])
FanoCode.append('')
def FindListIndex(str_list, x): # 寻找列表某字符序号
for i, item in enumerate(str_list):
if item == x:
return i
def sortList(List_1): # 排序 得到一个排序好的概率分布
for i in range(1, len(List_1), 2):
for j in range(1, len(List_1) - i, 2):
if List_1[j] < List_1[j + 2]:
List_1[j - 1], List_1[j + 1] = List_1[j + 1], List_1[j - 1]
List_1[j], List_1[j + 2] = List_1[j + 2], List_1[j]
return List_1
def averageCodeLen(codeList, codelenlist): # 计算平均码长
sumLen = 0.0
for i
Python实现香农编码和费诺编码
最新推荐文章于 2022-12-23 17:33:09 发布
本文通过Python展示了如何实现香农编码和费诺编码这两种数据压缩方法。通过代码,读者可以理解这两种编码的基本原理及其在信息论中的应用。
摘要由CSDN通过智能技术生成