当前位置 :
【大侠们帮我解决这个难题最佳字符编码用freepascal做,急求!在电文传输中,需要将电文中出现的每个字符进行二进制编码。在设计编码时需要遵守两个原则:(1)发送方传输的二进制】
 更新时间:2024-04-26 07:51:47
1人问答
问题描述:

大侠们帮我解决这个难题最佳字符编码用freepascal做,急求!

在电文传输中,需要将电文中出现的每个字符进行二进制编码。在设计编码时需要遵守两个原则:

(1)发送方传输的二进制编码,到接收方解码后必须具有唯一性,即解码结果与发送方发送的电文完全一样;

(2)发送的二进制编码尽可能地短。

下面我们介绍两种编码的方式。

1.等长编码

这种编码方式的特点是每个字符的编码长度相同(编码长度就是每个编码所含的二进制位数)。假设字符集只含有4个字符A,B,C,D,用二进制两位表示的编码分别为00,01,10,11。若现在有一段电文为:ABACCDA,则应发送二进制序列:00010010101100,总长度为14位。当接收方接收到这段电文后,将按两位一段进行译码。这种编码的特点是译码简单且具有唯一性,但编码长度并不是最短的。

2.不等长编码

在传送电文时,为了使其二进制位数尽可能地少,可以将每个字符的编码设计为不等长的,使用频度较高的字符分配一个相对比较短的编码,使用频度较低的字符分配一个比较长的编码。例如,可以为A,B,C,D四个字符分别分配0,00,1,01,并可将上述电文用二进制序列:000011010发送,其长度只有9个二进制位,但随之带来了一个问题,接收方接到这段电文后无法进行译码,因为无法断定前面4个0是4个A,1个B、2个A,还是2个B,即译码不唯一,因此这种编码方法不可使用。

假设有一个电文字符集中有n个字符,每个字符的使用频率分别为a1,a2,...,an,现在要求设计一个二进制编码,使得总的编码长度最短。

输入文件格式:

第一行为一个整数n,表示有n个字符。

第二行为以空格格开的n个整数,分别表示对应字符的出现频度,数字均大于0,小于100。

输出格式:

输出只有一行,为对应的n个二进制编码,每个编码之间用空格格开。

例如输入:

8

529781423311

输出应为

00011011101111110010000001

谭璐回答:
  去查找哈夫曼编码相关知识,再数据结构中有一个最优二叉树(哈夫曼树),我记得这个好像是哈夫曼树的例题
最新更新
查询网(393r.com)汇总了汉语字典,新华字典,成语字典,组词,词语,在线查字典,中文字典,英汉字典,在线字典,康熙字典等等,是学生查询学习资料的好帮手,是老师教学的好助手。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。

邮箱:  联系方式:

Copyright©2009-2021 查询网 393r.com 版权所有 闽ICP备2021002823号-6