参考书《数据压缩导论(第4版)》 Page 121 7,8

7、使用LZ77算法对一个序列进行编码。给定C(a)=1,C(p)=2,C(r)=3,C(t)=4。对已下三元组序列进行解码:

<0,0,3> <0,0,1> <0,0,4> <2,8,2> <3,1,2> <0,0,3> <6,4,4> <9,5,4>

假定窗口的大小为20,先行缓冲区的大小为10.对解码所得到的序列进行编码,确保得到相同的三元组序列。

解:窗口大小为20,前向缓冲区大小为10,搜索窗口大小10。

C(a) = 1, C( ) = 2, C(r) = 3, C(t) = 4

解码过程:

输入                                       输出:

<0, 0, 3>                              r

<0, 0, 1>                              ra

<0, 0, 4>                              rat

<2, 8, 2>                              ratatatatat

<3, 1, 2>                              ratatatatat a

<0, 0, 3>                              ratatatatat a r

<6, 4, 4>                              ratatatatat a rat at

<9, 5, 4>                              ratatatatat a rat at a rat

编码过程:输入序列:ratatatatat a rat at a rat

输入                                          输出:

||ratatatatat a rat at a rat            <0, 0, 3>

|r|atatatatat a rat at a rat            <0, 0, 1>

|ra|tatatatat a rat at a rat            <0, 0, 4>

|rat|atatatat a rat at a rat            <2, 8, 2>

ra|tatatatat |a rat at a rat            <3, 1, 2>

rata|tatatat a |rat at a rat                 <0, 0, 3>

ratat|atatat a r|at at a rat                 <6, 4, 4>

ratatatata|t a rat at|a rat            <9, 5, 4>

编码输出的三元组与解码输入的三元组完全一样。

8、给定以下初始词典和接收序列,构建一个LZW词典,并对所发送的序列进行解码。

接收序列:4,5,3,1,2,8,2,7,9,7,4

初始词典:


索引



1


S


2


P


3


I


4


T


5


H

接收到的序列:4, 5, 3, 1, 2, 8, 2, 7, 9, 7, 4

输入:4, 5, 3, 1, 2, 8, 2, 7, 9, 7, 4

字典:                                              解码出的序列:T


1


S


2


3


I


4


T


5


H

输入:4, 5, 3, 1, 2, 8, 2, 7, 9, 7, 4

字典:                                              解码出的序列:TH


1


S


2


3


I


4


T


5


H


6


TH

输入:4, 5, 3, 1, 2, 8, 2, 7, 9, 7, 4

字典:                                              解码出的序列:THI


1


S


2


3


I


4


T


5


H


6


TH


7


HI

输入:4, 5, 3, 1, 2, 8, 2, 7, 9, 7, 4

字典:                                              解码出的序列:THIS


1


S


2


3


I


4


T


5


H


6


TH


7


HI


8


IS

输入:4, 5, 3, 1, 2, 8, 2, 7, 9, 7, 4

字典:                                              解码出的序列:THIS


1


S


2


3


I


4


T


5


H


6


TH


7


HI


8


IS


9


S

输入:4, 5, 3, 1, 2, 8, 2, 7, 9, 7, 4

字典:                                              解码出的序列:THIS IS


1


S


2


3


I


4


T


5


H


6


TH


7


HI


8


IS


9


S


10


I

输入:4, 5, 3, 1, 2, 8, 2, 7, 9, 7, 4

字典:                                              解码出的序列:THIS IS


1


S


2


3


I


4


T


5


H


6


TH


7


HI


8


IS


9


S


10


I


11


IS

输入:4, 5, 3, 1, 2, 8, 2, 7, 9, 7, 4

字典:                                              解码出的序列:THIS IS HI


1


S


2


3


I


4


T


5


H


6


TH


7


HI


8


IS


9


S


10


I


11


IS


12


H

输入:4, 5, 3, 1, 2, 8, 2, 7, 9, 7, 4

字典:                                              解码出的序列:THIS IS HIS


1


S


2


3


I


4


T


5


H


6


TH


7


HI


8


IS


9


S


10


I


11


IS


12


H


13


HIS

输入:4, 5, 3, 1, 2, 8, 2, 7, 9, 7, 4

字典:                                              解码出的序列:THIS IS HIS HI


1


S


2


3


I


4


T


5


H


6


TH


7


HI


8


IS


9


S


10


I


11


IS


12


H


13


HIS


14


S H

输入:4, 5, 3, 1, 2, 8, 2, 7, 9, 7, 4

字典:                                              解码出的序列:THIS IS HIS HIT


1


S


2


3


I


4


T


5


H


6


TH


7


HI


8


IS


9


S


10


I


11


IS


12


H


13


HIS


14


S H


15


HIT

时间: 2024-10-10 08:16:07

参考书《数据压缩导论(第4版)》 Page 121 7,8的相关文章

算法导论 第三版 中文版

下载地址:网盘下载 算法导论 第三版 中文版 清晰 PDF,全书共8部分35章节,内容涵盖基础知识.排序和顺序统计量.数据结构.高级设计和分析技术.高级数据结构.图算法.算法问题选编.以及数学基础知识.非常实用的参考书和工程实践手册.此外,其他资源也已经上传,全部免费,欢迎大家下载! 第3版的主要变化 1.新增了van Emde Boas树和多线程算法,并且将矩阵基础移至附录. 2.修订了递归式(现在称为"分治策略")那一章的内容,更广泛地覆盖分治法. 3.移除两章很少讲授的内容:二项

《Python编程导论第2版》源代码+学习资料参考

<Python编程导论第2版>适合对编程知之甚少但想要使用计算方法解决问题的读者:MIT Python编程教材,很系统. 下载:https://pan.baidu.com/s/1ONBCyBKB951fc-9Wwzlo8g <Python编程导论第2版>高清中文PDF,346页,带书签目录,文字可以复制.<Python编程导论第2版>高清英文PDF,466页,带书签目录,文字可以复制.配有所有章节源代码.配有测试题及解答. <Python编程导论第2版>基于

Python资料学习《疯狂Python讲义》+《教孩子学编程Python语言版》+《Python编程导论第2版》

适合初学者入门,适合Python就业,包含网络编程.数据分析.网络爬虫等大量企业实用的知识.建议学习<疯狂Python讲义>电子书和<教孩子学编程Python语言版>电子书,并进行配套的代码测试. <疯狂Python讲义>电子书适合初学者入门,适合Python就业,包含网络编程.数据分析.网络爬虫等大量企业实用的知识. <疯狂Python讲义>电子书第一部分系统讲解了Python的基本语法结构.Python的函数编程.Python的类和对象.模块和包.异常处

字符串匹配算法的C语言实现-算法导论第三版(1)

因为最近准备开始学习做一些小的Android项目练手,看上了系统级的三个应用,拨号盘,通讯录和短信,准备从最简单的拨号做起,但是因为这些应用中都不可避免的会有自动提示,我觉得设计到的就是字符串匹配问题,这里准备使用C语言来实现,将来通过JNI集成到应用当中. 1.首先是朴素匹配,实际上就是穷举: 用C语言实现的函数我放到这里: 1 void naive_string_match(char *t,char *p){ 2 int n = strlen(t); 3 int m = strlen(p);

算法导论第四版学习——习题五Kd-Tree

题目正文: http://coursera.cs.princeton.edu/algs4/assignments/kdtree.html 作业难点: 如何组织自己的数据结构是本道题的最难点,基本上有思路就肯定可以完成.题目一定要看仔细,基本上2dtree部分已经把实现原理说清楚了. 作业技巧: 1.逐步实现,实现完成后用insert.contain测试下,没问题再写draw,测试没问题再写其余的. 2.重复输入的问题不要忘了 3.range虽然api里写的是all point inside th

算法导论第四版学习——习题二Deques and Randomized Queues

题目正文: http://coursera.cs.princeton.edu/algs4/assignments/queues.html 作业难点: 1.选择使用链表还是数组,将会是第一个问题,选择合适会减少很多工作量. 2.并行从RandomizedQueue中取两个枚举,这两个枚举必须是不一样的,所以有很多偷懒的“伪随机”是行不通的. 3.SubSet仅需K存储而不是N存储,即可实现.(这个我也没想到方法实现) 作业技巧: 1.可遍数组和邻接节点两种数据结构都已经给你了,你只要改改,基本上实

算法导论第四版学习——习题三Collinear Points

题目正文: http://coursera.cs.princeton.edu/algs4/assignments/collinear.html 作业难点: 1.仔细思考会感觉有很多实现方法,但是如果没有适当使用排序,算法时间复杂度就会轻易超过要求.(包括暴力算法) 2.隐含需要实现自己的数据结构用来组织“线”的集合,当然也可以用Stack或者Queue或者LinkedList,但是我个人是自己实现的. 3.由于一条线段只能出现一次,所以有一个去重的问题.(最难) 作业技巧: 1.基本按照题目的先

算法导论第四版学习——习题四8 Puzzle

题目正文: http://coursera.cs.princeton.edu/algs4/assignments/8puzzle.html 作业难点: 1.如何验证Puzzle是否可解?题目中有提示,如果相邻两个格子交换后得到的“Twin Puzzle”进行求解,如果Twin有解那么原始Puzzle就无解. 作业技巧: 1.checklist提到把Twin Puzzle和Puzzle放在一个Priority Queue中,其实就是在设计自己的Node数据结构的时候加一个boolean类型标识是否

Python编程导论 第2版

百度网盘 出版社: 人民邮电出版社; 第1版 (2018年2月1日) 外文书名: Introduction to Computation and Programming Using Python,2E 丛书名: 图灵程序设计丛书 平装: 328页 语种: 简体中文 开本: 16 ISBN: 9787115473769 条形码: 9787115473769 商品尺寸: 23.4 x 18.6 x 1.8 cm 商品重量: 599 g 品牌: 人民邮电出版社 ASIN: B07BN4DRK7 原文地