|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
已知一个文件中仅有10个不同的字符,各字符出现的个数分别为100,150,180,200,260,300,350,390,400,500。试对这些符号重新编码,以压缩文件的规模,并求出其压缩后的规模以及压缩比(压缩前后的规模比)。
由于仅有10个不同的字符,我们可以使用3位二进制数字(000到101)来对其进行重新编码。这样可以表示2^3=8个可能的组合,正好可以覆盖10个字符。
以下是一种可能的重新编码方式:字符 原始编码 重新编码
A 00000001 000
B 00000010 001
C 00000011 010
D 00000100 011
E 00000101 100
F 00000110 101
G 00000111 110
H 00001000 111000
I 00001001 111001
J 00001010 111010
其中最后三个字符的编码都使用了7位二进制数字,以确保所有字符都能得到唯一的编码。这样,每个字符的重新编码长度为3至7位之间。
对于原始数据中的每个字符,则替换为其对应的重新编码,并计算新文件的长度。这里假设将重新编码后的二进制数拼接成一个连续的字符串。
例如,如果原始数据为:ABCDAAAAACCCCGGGGIIIIIJIBBBBEFGHIJCFGEFGHGHHHDDDDDDDGGCCCIAAAAJJJJ
则替换后的编码为:0010111001111000000000100101011110110111101010101011110111111101100111011110101111001010101000111110111111011111101111101111001110101001100100010111011110
新文件的长度为1003 + 1503 + 1803 + 2003 + 2603 + 3003 + 3503 + 3903 + 4007 + 5007 = 9130位(1141.25字节)。
如果使用原始编码,则文件大小为10100 + 10150 + 10180 + 10200 + 10260 + 10300 + 10350 + 10 * 390 + 10400 + 10*500 = 3700字节。
因此,压缩比 (compression ratio) 约为 3700/1141.25 ≈ 3.24,即将原始数据压缩为大约三分之一的大小。
|
|